summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-03-21 03:01:37 +0000
committerNorbert Preining <norbert@preining.info>2020-03-21 03:01:37 +0000
commit3e43bc594a14e8c4fc21d6a71f22a23dd78fe252 (patch)
tree19d1a8bb88da795b5317f91775f645e0b7bd9eb9
parentc720a4409b388fa706f3eb1ce275f76f7d49d996 (diff)
CTAN sync 202003210301
-rw-r--r--FILES.byname287
-rw-r--r--FILES.byname.gzbin2186720 -> 2186992 bytes
-rw-r--r--FILES.last07days242
-rw-r--r--fonts/erewhon/README5
-rw-r--r--fonts/erewhon/doc/OFL-FAQ.txt162
-rw-r--r--fonts/erewhon/doc/erewhon-doc.pdfbin719299 -> 724600 bytes
-rw-r--r--fonts/erewhon/doc/erewhon-doc.tex2
-rw-r--r--fonts/erewhon/opentype/Erewhon-Bold.otfbin211176 -> 217232 bytes
-rw-r--r--fonts/erewhon/opentype/Erewhon-BoldItalic.otfbin189588 -> 196368 bytes
-rw-r--r--fonts/erewhon/opentype/Erewhon-BoldSlanted.otfbin211236 -> 218540 bytes
-rw-r--r--fonts/erewhon/opentype/Erewhon-Regular.otfbin233828 -> 239008 bytes
-rw-r--r--fonts/erewhon/opentype/Erewhon-RegularSlanted.otfbin234892 -> 241284 bytes
-rw-r--r--info/biblio/typeset.bib143
-rw-r--r--info/biblio/typeset.ltx12
-rw-r--r--macros/latex/contrib/csbulletin/README2
-rw-r--r--macros/latex/contrib/csbulletin/csbulacronym.sty4
-rw-r--r--macros/latex/contrib/csbulletin/csbulletin.cls4
-rw-r--r--macros/latex/contrib/csbulletin/csbulletin.pdfbin262115 -> 264133 bytes
-rw-r--r--macros/latex/contrib/csbulletin/csbulletin.tex15
-rw-r--r--macros/latex/contrib/csbulletin/csbulobalka.sty6
-rw-r--r--macros/latex/contrib/glosmathtools/README.md2
-rw-r--r--macros/latex/contrib/glosmathtools/glosmathtools.sty51
-rw-r--r--macros/latex/contrib/glosmathtools/sample_glosmathtools.pdfbin369524 -> 322662 bytes
-rw-r--r--macros/latex/contrib/glosmathtools/sample_glosmathtools.tex13
-rw-r--r--macros/latex/contrib/scratch3/README4
-rw-r--r--macros/latex/contrib/scratch3/scratch3-fr.pdfbin508445 -> 508522 bytes
-rw-r--r--macros/latex/contrib/scratch3/scratch3-fr.tex3
-rw-r--r--macros/latex/contrib/scratch3/scratch3.sty10
-rw-r--r--macros/latex/contrib/xltabular/Changes1
-rw-r--r--macros/latex/contrib/xltabular/xltabular-doc.pdfbin70975 -> 71369 bytes
-rw-r--r--macros/latex/contrib/xltabular/xltabular.sty25
-rw-r--r--macros/luatex/generic/luatexko/ChangeLog7
-rw-r--r--macros/luatex/generic/luatexko/README2
-rw-r--r--macros/luatex/generic/luatexko/luatexko-doc.pdfbin324950 -> 325270 bytes
-rw-r--r--macros/luatex/generic/luatexko/luatexko-doc.tex2
-rw-r--r--macros/luatex/generic/luatexko/luatexko-normalize.lua4
-rw-r--r--macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua4
-rw-r--r--macros/luatex/generic/luatexko/luatexko.lua236
-rw-r--r--macros/luatex/generic/luatexko/luatexko.sty59
-rw-r--r--macros/luatex/optex/README3
-rw-r--r--macros/luatex/optex/alloc.opm2
-rw-r--r--macros/luatex/optex/basics-macros.opm2
-rw-r--r--macros/luatex/optex/bib-iso690.opm2
-rw-r--r--macros/luatex/optex/bib-simple.opm2
-rw-r--r--macros/luatex/optex/cite-bib.opm1
-rw-r--r--macros/luatex/optex/colors.opm14
-rw-r--r--macros/luatex/optex/doc/op-ring.pngbin421951 -> 0 bytes
-rw-r--r--macros/luatex/optex/doc/optex-doc.pdfbin156310 -> 163979 bytes
-rw-r--r--macros/luatex/optex/doc/optex-doc.tex609
-rw-r--r--macros/luatex/optex/fams-ini.opm2
-rw-r--r--macros/luatex/optex/fnotes.opm19
-rw-r--r--macros/luatex/optex/fonts-catalog.opm2
-rw-r--r--macros/luatex/optex/fonts-opmac.opm2
-rw-r--r--macros/luatex/optex/fonts-preload.opm2
-rw-r--r--macros/luatex/optex/fonts-resize.opm4
-rw-r--r--macros/luatex/optex/fonts-select.opm19
-rw-r--r--macros/luatex/optex/graphics.opm146
-rw-r--r--macros/luatex/optex/hyperlinks.opm6
-rw-r--r--macros/luatex/optex/hyphen-lan.opm2
-rw-r--r--macros/luatex/optex/if-macros.opm2
-rw-r--r--macros/luatex/optex/languages.opm41
-rw-r--r--macros/luatex/optex/lists.opm5
-rw-r--r--macros/luatex/optex/logos.opm2
-rw-r--r--macros/luatex/optex/luatex-ini.opm4
-rw-r--r--macros/luatex/optex/makeindex.opm40
-rw-r--r--macros/luatex/optex/maketoc.opm2
-rw-r--r--macros/luatex/optex/margins.opm6
-rw-r--r--macros/luatex/optex/math-macros.opm2
-rw-r--r--macros/luatex/optex/math-preload.opm2
-rw-r--r--macros/luatex/optex/math-unicode.opm2
-rw-r--r--macros/luatex/optex/more-macros.opm (renamed from macros/luatex/optex/op-macros.opm)6
-rw-r--r--macros/luatex/optex/multicolumns.opm2
-rw-r--r--macros/luatex/optex/op-demo.tex8
-rw-r--r--macros/luatex/optex/op-letter.tex41
-rw-r--r--macros/luatex/optex/op-ring.pngbin421951 -> 512984 bytes
-rw-r--r--macros/luatex/optex/op-slides.tex288
-rw-r--r--macros/luatex/optex/opmac-rest.opm65
-rw-r--r--macros/luatex/optex/optex.ini4
-rw-r--r--macros/luatex/optex/others.opm2
-rw-r--r--macros/luatex/optex/outlines.opm2
-rw-r--r--macros/luatex/optex/output.opm17
-rw-r--r--macros/luatex/optex/parameters.opm9
-rw-r--r--macros/luatex/optex/pdfuni-string.opm2
-rw-r--r--macros/luatex/optex/plain-macros.opm2
-rw-r--r--macros/luatex/optex/prefixed.opm3
-rw-r--r--macros/luatex/optex/ref-file.opm3
-rw-r--r--macros/luatex/optex/references.opm21
-rw-r--r--macros/luatex/optex/sections.opm2
-rw-r--r--macros/luatex/optex/slides-bg.pngbin0 -> 62385 bytes
-rw-r--r--macros/luatex/optex/slides.opm211
-rw-r--r--macros/luatex/optex/styles.opm9
-rw-r--r--macros/luatex/optex/table.opm2
-rw-r--r--macros/luatex/optex/uni-lcuc.opm2
-rw-r--r--macros/luatex/optex/unimath-codes.opm4
-rw-r--r--macros/luatex/optex/usebib.opm5
-rw-r--r--macros/luatex/optex/verbatim.opm13
-rw-r--r--macros/musixtex/README2
-rw-r--r--macros/musixtex/doc/ChangeLog-130.txt5
-rw-r--r--macros/musixtex/doc/musixdoc.pdfbin1332076 -> 1373998 bytes
-rw-r--r--macros/musixtex/doc/musixdoc/barlines.tex2
-rw-r--r--macros/musixtex/doc/musixdoc/beams.tex4
-rw-r--r--macros/musixtex/doc/musixdoc/frontmatter.tex4
-rw-r--r--macros/musixtex/doc/musixdoc/layout.tex5
-rw-r--r--macros/musixtex/doc/musixdoc/miscellaneous.tex64
-rw-r--r--macros/musixtex/doc/musixdoc/parameters.tex80
-rw-r--r--macros/musixtex/doc/musixdoc/slurstiesTypeK.tex6
-rw-r--r--macros/musixtex/doc/musixdoc/writingnotes.tex31
-rw-r--r--macros/musixtex/doc/notationMistakes/coulhack.tex (renamed from macros/musixtex/doc/notationmistakes/coulhack.tex)0
-rw-r--r--macros/musixtex/doc/notationMistakes/sottieng.pdf (renamed from macros/musixtex/doc/notationmistakes/sottieng.pdf)bin126207 -> 126207 bytes
-rw-r--r--macros/musixtex/doc/notationMistakes/sottieng.tex (renamed from macros/musixtex/doc/notationmistakes/sottieng.tex)0
-rw-r--r--macros/musixtex/doc/notationMistakes/sottiger.pdf (renamed from macros/musixtex/doc/notationmistakes/sottiger.pdf)bin132877 -> 132877 bytes
-rw-r--r--macros/musixtex/doc/notationMistakes/sottiger.tex (renamed from macros/musixtex/doc/notationmistakes/sottiger.tex)0
-rw-r--r--macros/musixtex/doc/notationMistakes/sottigra.pdf (renamed from macros/musixtex/doc/notationmistakes/sottigra.pdf)bin191646 -> 191646 bytes
-rw-r--r--macros/musixtex/doc/notationMistakes/sottigra.tex (renamed from macros/musixtex/doc/notationmistakes/sottigra.tex)0
-rw-r--r--macros/musixtex/doc/scripts/musixtex.113
-rw-r--r--macros/musixtex/doc/scripts/musixtex.pdfbin7305 -> 23215 bytes
-rwxr-xr-xmacros/musixtex/scripts/musixtex.lua20
-rw-r--r--macros/musixtex/tex/musixps.tex11
-rw-r--r--macros/musixtex/tex/musixtex.tex43
-rw-r--r--macros/musixtex/windows/musixflx.bat12
-rw-r--r--macros/musixtex/windows/musixtex.bat12
-rw-r--r--systems/win32/w32tex/ChangeLog4
-rw-r--r--timestamp2
123 files changed, 2256 insertions, 1041 deletions
diff --git a/FILES.byname b/FILES.byname
index 91430f6165..dbd3120e18 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5000,7 +5000,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2020/03/19 | 76669 | FILES.last07days
+2020/03/20 | 84051 | FILES.last07days
2018/06/27 | 99883 | fonts/academicons/academicons.pdf
2018/06/27 | 10779 | fonts/academicons/academicons.sty
2018/06/27 | 5774 | fonts/academicons/academicons.tex
@@ -35977,10 +35977,10 @@
2019/01/14 | 510716 | fonts/erewhon/afm/Erewhon-RegularSlanted.afm
2019/11/01 | 7940 | fonts/erewhon/afm/erewMI.afm
2019/11/02 | 4509 | fonts/erewhon/afm/erewMR.afm
-2019/11/07 | 719299 | fonts/erewhon/doc/erewhon-doc.pdf
-2019/11/07 | 10719 | fonts/erewhon/doc/erewhon-doc.tex
+2020/03/20 | 724600 | fonts/erewhon/doc/erewhon-doc.pdf
+2020/03/20 | 11060 | fonts/erewhon/doc/erewhon-doc.tex
2014/09/07 | 6654 | fonts/erewhon/doc/FontLog.txt
-2014/04/17 | 43780 | fonts/erewhon/doc/OFL-FAQ.txt
+2020/02/01 | 58513 | fonts/erewhon/doc/OFL-FAQ.txt
2014/09/07 | 4800 | fonts/erewhon/doc/OFL.txt
2019/01/14 | 6742 | fonts/erewhon/enc/erewhontlf-ot2.enc
2019/01/14 | 3638 | fonts/erewhon/enc/zut1_2d6v2a.enc
@@ -36136,13 +36136,13 @@
2020/02/29 | 16353 | fonts/erewhon-math/unimath-erewhon.ltx
2020/02/29 | 1347084 | fonts/erewhon-math/unimath-erewhon.pdf
2020/02/29 | 1679696 | fonts/erewhon-math.zip
-2019/01/14 | 189588 | fonts/erewhon/opentype/Erewhon-BoldItalic.otf
-2019/01/14 | 211176 | fonts/erewhon/opentype/Erewhon-Bold.otf
-2019/01/14 | 211236 | fonts/erewhon/opentype/Erewhon-BoldSlanted.otf
-2019/01/14 | 186912 | fonts/erewhon/opentype/Erewhon-Italic.otf
-2019/01/14 | 233828 | fonts/erewhon/opentype/Erewhon-Regular.otf
-2019/01/14 | 234892 | fonts/erewhon/opentype/Erewhon-RegularSlanted.otf
-2019/11/13 | 7572 | fonts/erewhon/README
+2020/03/20 | 196368 | fonts/erewhon/opentype/Erewhon-BoldItalic.otf
+2020/03/20 | 217232 | fonts/erewhon/opentype/Erewhon-Bold.otf
+2020/03/20 | 218540 | fonts/erewhon/opentype/Erewhon-BoldSlanted.otf
+2019/01/13 | 186912 | fonts/erewhon/opentype/Erewhon-Italic.otf
+2020/03/20 | 239008 | fonts/erewhon/opentype/Erewhon-Regular.otf
+2020/03/20 | 241284 | fonts/erewhon/opentype/Erewhon-RegularSlanted.otf
+2020/03/20 | 7649 | fonts/erewhon/README
2016/02/04 | 348 | fonts/erewhon/tex/erewhon.fontspec
2019/11/13 | 5423 | fonts/erewhon/tex/erewhon.sty
2019/06/09 | 1323 | fonts/erewhon/tex/LY1erewhon-Dnom.fd
@@ -36835,7 +36835,7 @@
2019/01/14 | 1696 | fonts/erewhon/vf/Erewhon-Regular-tosf-sc-t1.vf
2019/01/14 | 1724 | fonts/erewhon/vf/Erewhon-Regular-tosf-t1.vf
2019/01/14 | 564 | fonts/erewhon/vf/Erewhon-Regular-tosf-ts1.vf
-2019/11/13 | 4733570 | fonts/erewhon.zip
+2020/03/20 | 4769484 | fonts/erewhon.zip
2014/12/12 | 28168 | fonts/esrelation/esrelation10.pfb
2015/05/06 | 23676 | fonts/esrelation/esrelation.dtx
2015/05/06 | 867 | fonts/esrelation/esrelation.ins
@@ -161946,7 +161946,7 @@
2019/06/24 | 4801373 | install/fonts/droid.tds.zip
2020/01/05 | 343107 | install/fonts/dsserif.tds.zip
2020/02/27 | 16404378 | install/fonts/ebgaramond.tds.zip
-2019/11/13 | 4803086 | install/fonts/erewhon.tds.zip
+2020/03/20 | 4839000 | install/fonts/erewhon.tds.zip
2020/02/18 | 2717923 | install/fonts/etbb.tds.zip
2017/09/11 | 2838552 | install/fonts/fbb.tds.zip
2012/05/28 | 1585477 | install/fonts/fdsymbol.tds.zip
@@ -162477,7 +162477,7 @@
2019/01/31 | 197751 | install/macros/luatex/latex/lualatex-math.tds.zip
2010/12/14 | 322044 | install/macros/luatex/latex/luatextra.tds.zip
2018/04/25 | 5009580 | install/macros/luatex/latex/novel.tds.zip
-2018/08/04 | 3327954 | install/macros/musixtex.tds.zip
+2020/03/20 | 2430654 | install/macros/musixtex.tds.zip
2013/07/02 | 153964 | install/macros/plain/contrib/plstmary.tds.zip
2008/05/18 | 22279 | install/macros/plain/plnfss.tds.zip
2016/05/14 | 185871 | install/macros/xetex/generic/zhspacing.tds.zip
@@ -183432,16 +183432,16 @@
2018/11/11 | 123034 | macros/latex/contrib/cryptocode/cryptocode.tex
2018/11/11 | 546 | macros/latex/contrib/cryptocode/README
2018/11/11 | 714208 | macros/latex/contrib/cryptocode.zip
-2017/02/18 | 3804 | macros/latex/contrib/csbulletin/csbulacronym.sty
-2019/01/12 | 18017 | macros/latex/contrib/csbulletin/csbulletin.cls
-2019/01/12 | 262115 | macros/latex/contrib/csbulletin/csbulletin.pdf
-2019/01/12 | 6745 | macros/latex/contrib/csbulletin/csbulletin.tex
-2017/02/18 | 874 | macros/latex/contrib/csbulletin/csbulobalka.cls
-2019/01/12 | 17448 | macros/latex/contrib/csbulletin/csbulobalka.sty
-2017/02/18 | 1126 | macros/latex/contrib/csbulletin/csbulv1.cls
-2017/02/18 | 19110 | macros/latex/contrib/csbulletin/LICENSE.txt
-2019/01/12 | 532 | macros/latex/contrib/csbulletin/README
-2019/01/12 | 286102 | macros/latex/contrib/csbulletin.zip
+2020/03/20 | 3739 | macros/latex/contrib/csbulletin/csbulacronym.sty
+2020/03/20 | 18016 | macros/latex/contrib/csbulletin/csbulletin.cls
+2020/03/20 | 264133 | macros/latex/contrib/csbulletin/csbulletin.pdf
+2020/03/20 | 7273 | macros/latex/contrib/csbulletin/csbulletin.tex
+2020/03/20 | 874 | macros/latex/contrib/csbulletin/csbulobalka.cls
+2020/03/20 | 17473 | macros/latex/contrib/csbulletin/csbulobalka.sty
+2020/03/20 | 1126 | macros/latex/contrib/csbulletin/csbulv1.cls
+2020/03/20 | 19110 | macros/latex/contrib/csbulletin/LICENSE.txt
+2020/03/20 | 532 | macros/latex/contrib/csbulletin/README
+2020/03/20 | 288252 | macros/latex/contrib/csbulletin.zip
2019/12/06 | 3753 | macros/latex/contrib/csquotes/csq-compat.def
2019/11/11 | 7068 | macros/latex/contrib/csquotes/csquotes.cfg
2019/12/06 | 20661 | macros/latex/contrib/csquotes/csquotes.def
@@ -188655,12 +188655,12 @@
2019/02/06 | 2696 | macros/latex/contrib/globalvals/globalvals.tex
2019/02/06 | 757 | macros/latex/contrib/globalvals/README.md
2019/02/06 | 158994 | macros/latex/contrib/globalvals.zip
-2019/08/02 | 15872 | macros/latex/contrib/glosmathtools/glosmathtools.sty
-2019/08/02 | 751 | macros/latex/contrib/glosmathtools/README.md
-2019/08/02 | 4467 | macros/latex/contrib/glosmathtools/sample_glosmathtools_glos.tex
-2019/08/02 | 369524 | macros/latex/contrib/glosmathtools/sample_glosmathtools.pdf
-2019/08/02 | 8961 | macros/latex/contrib/glosmathtools/sample_glosmathtools.tex
-2019/08/03 | 375964 | macros/latex/contrib/glosmathtools.zip
+2020/03/20 | 16718 | macros/latex/contrib/glosmathtools/glosmathtools.sty
+2020/03/20 | 751 | macros/latex/contrib/glosmathtools/README.md
+2019/10/08 | 4467 | macros/latex/contrib/glosmathtools/sample_glosmathtools_glos.tex
+2020/03/20 | 322662 | macros/latex/contrib/glosmathtools/sample_glosmathtools.pdf
+2020/03/20 | 9340 | macros/latex/contrib/glosmathtools/sample_glosmathtools.tex
+2020/03/20 | 329377 | macros/latex/contrib/glosmathtools.zip
2020/03/19 | 41185 | macros/latex/contrib/glossaries/CHANGES
2014/11/24 | 4848 | macros/latex/contrib/glossaries-danish/glossaries-danish.dtx
2014/11/24 | 1179 | macros/latex/contrib/glossaries-danish/glossaries-danish.ins
@@ -200223,11 +200223,11 @@
2020/01/21 | 2224 | macros/latex/contrib/scontents/scontents.ins
2020/01/21 | 373717 | macros/latex/contrib/scontents/scontents.pdf
2020/01/21 | 389273 | macros/latex/contrib/scontents.zip
-2020/03/05 | 610 | macros/latex/contrib/scratch3/README
-2020/03/05 | 508445 | macros/latex/contrib/scratch3/scratch3-fr.pdf
-2020/03/05 | 31569 | macros/latex/contrib/scratch3/scratch3-fr.tex
-2020/03/05 | 45882 | macros/latex/contrib/scratch3/scratch3.sty
-2020/03/05 | 526106 | macros/latex/contrib/scratch3.zip
+2020/03/20 | 611 | macros/latex/contrib/scratch3/README
+2020/03/20 | 508522 | macros/latex/contrib/scratch3/scratch3-fr.pdf
+2020/03/20 | 31732 | macros/latex/contrib/scratch3/scratch3-fr.tex
+2020/03/20 | 46184 | macros/latex/contrib/scratch3/scratch3.sty
+2020/03/20 | 526284 | macros/latex/contrib/scratch3.zip
2017/07/28 | 224175 | macros/latex/contrib/scratchx/Explanations_ScratchX.pdf
2017/07/28 | 33624 | macros/latex/contrib/scratchx/Explanations_ScratchX.tex
2017/07/28 | 226721 | macros/latex/contrib/scratchx/Explications_ScratchX.pdf
@@ -206112,16 +206112,16 @@
2014/12/03 | 217683 | macros/latex/contrib/xkeyval/xkeyval.dtx
2014/12/03 | 492265 | macros/latex/contrib/xkeyval/xkeyval.pdf
2014/12/03 | 446525 | macros/latex/contrib/xkeyval.zip
-2019/01/29 | 411 | macros/latex/contrib/xltabular/Changes
-2019/01/29 | 379 | macros/latex/contrib/xltabular/README.md
+2020/03/20 | 473 | macros/latex/contrib/xltabular/Changes
+2018/05/23 | 379 | macros/latex/contrib/xltabular/README.md
2017/10/23 | 657 | macros/latex/contrib/xltabular/xltabular-doc.bib
-2019/02/04 | 70975 | macros/latex/contrib/xltabular/xltabular-doc.pdf
-2017/10/25 | 11060 | macros/latex/contrib/xltabular/xltabular-doc.tex
-2019/01/29 | 226 | macros/latex/contrib/xltabular/xltabular-example-hyp.tex
-2019/01/29 | 1963 | macros/latex/contrib/xltabular/xltabular-example.inp
-2019/01/29 | 204 | macros/latex/contrib/xltabular/xltabular-example.tex
-2019/01/30 | 3134 | macros/latex/contrib/xltabular/xltabular.sty
-2019/02/04 | 75503 | macros/latex/contrib/xltabular.zip
+2020/03/20 | 71369 | macros/latex/contrib/xltabular/xltabular-doc.pdf
+2017/10/24 | 11060 | macros/latex/contrib/xltabular/xltabular-doc.tex
+2019/06/01 | 226 | macros/latex/contrib/xltabular/xltabular-example-hyp.tex
+2018/12/16 | 1963 | macros/latex/contrib/xltabular/xltabular-example.inp
+2019/06/01 | 204 | macros/latex/contrib/xltabular/xltabular-example.tex
+2020/03/20 | 3297 | macros/latex/contrib/xltabular/xltabular.sty
+2020/03/20 | 75807 | macros/latex/contrib/xltabular.zip
2018/12/31 | 1817 | macros/latex/contrib/xltxtra/README.md
2018/12/31 | 16823 | macros/latex/contrib/xltxtra/xltxtra.dtx
2018/12/31 | 935 | macros/latex/contrib/xltxtra/xltxtra.ins
@@ -207854,15 +207854,15 @@
2020/03/01 | 3100 | macros/luatex/generic/luatexja/tool/table_jisx0208.tex
2020/03/01 | 11335 | macros/luatex/generic/luatexja/tool/unicodeBlocks.tex
2020/03/01 | 3506439 | macros/luatex/generic/luatexja.zip
-2020/03/14 | 7024 | macros/luatex/generic/luatexko/ChangeLog
-2020/03/14 | 324950 | macros/luatex/generic/luatexko/luatexko-doc.pdf
-2020/03/14 | 31671 | macros/luatex/generic/luatexko/luatexko-doc.tex
-2020/03/14 | 66090 | macros/luatex/generic/luatexko/luatexko.lua
-2020/03/14 | 16457 | macros/luatex/generic/luatexko/luatexko-normalize.lua
-2020/03/14 | 30593 | macros/luatex/generic/luatexko/luatexko.sty
-2020/03/14 | 3783 | macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
-2020/03/14 | 3720 | macros/luatex/generic/luatexko/README
-2020/03/14 | 361195 | macros/luatex/generic/luatexko.zip
+2020/03/19 | 7164 | macros/luatex/generic/luatexko/ChangeLog
+2020/03/19 | 325270 | macros/luatex/generic/luatexko/luatexko-doc.pdf
+2020/03/19 | 31671 | macros/luatex/generic/luatexko/luatexko-doc.tex
+2020/03/19 | 65958 | macros/luatex/generic/luatexko/luatexko.lua
+2020/03/19 | 16457 | macros/luatex/generic/luatexko/luatexko-normalize.lua
+2020/03/19 | 31204 | macros/luatex/generic/luatexko/luatexko.sty
+2020/03/19 | 3783 | macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
+2020/03/19 | 3720 | macros/luatex/generic/luatexko/README
+2020/03/20 | 361658 | macros/luatex/generic/luatexko.zip
2019/01/07 | 73328 | macros/luatex/generic/lua-visual-debug/doc/lvdebugdetail1-num.png
2019/01/07 | 209760 | macros/luatex/generic/lua-visual-debug/doc/lvdebug-doc.pdf
2019/01/07 | 2420 | macros/luatex/generic/lua-visual-debug/doc/lvdebug-doc.tex
@@ -208672,18 +208672,17 @@
2017/10/17 | 704910 | macros/luatex/latex/wallcalendar/wallcalendar-layouts.png
2017/10/17 | 2896302 | macros/luatex/latex/wallcalendar/wallcalendar.pdf
2017/10/21 | 9209120 | macros/luatex/latex/wallcalendar.zip
-2020/02/16 | 4403 | macros/luatex/optex/alloc.opm
-2020/02/29 | 3209 | macros/luatex/optex/basics-macros.opm
-2020/03/10 | 34094 | macros/luatex/optex/bib-iso690.opm
-2020/03/10 | 6462 | macros/luatex/optex/bib-simple.opm
-2020/03/11 | 11511 | macros/luatex/optex/cite-bib.opm
-2020/03/08 | 16098 | macros/luatex/optex/colors.opm
-2020/03/14 | 421951 | macros/luatex/optex/doc/op-ring.png
+2020/03/19 | 4422 | macros/luatex/optex/alloc.opm
+2020/03/19 | 3228 | macros/luatex/optex/basics-macros.opm
+2020/03/19 | 34123 | macros/luatex/optex/bib-iso690.opm
+2020/03/19 | 6491 | macros/luatex/optex/bib-simple.opm
+2020/03/15 | 11532 | macros/luatex/optex/cite-bib.opm
+2020/03/19 | 16173 | macros/luatex/optex/colors.opm
2020/02/17 | 1460 | macros/luatex/optex/doc/optex.1
-2020/03/14 | 156310 | macros/luatex/optex/doc/optex-doc.pdf
-2020/03/14 | 65092 | macros/luatex/optex/doc/optex-doc.tex
+2020/03/20 | 163979 | macros/luatex/optex/doc/optex-doc.pdf
+2020/03/20 | 67382 | macros/luatex/optex/doc/optex-doc.tex
2020/02/20 | 727 | macros/luatex/optex/f-adventor.opm
-2020/02/28 | 4447 | macros/luatex/optex/fams-ini.opm
+2020/03/19 | 4533 | macros/luatex/optex/fams-ini.opm
2020/02/25 | 1211 | macros/luatex/optex/f-antt.opm
2020/02/20 | 727 | macros/luatex/optex/f-baskerville.opm
2020/02/20 | 742 | macros/luatex/optex/f-bonum.opm
@@ -208694,57 +208693,60 @@
2020/02/20 | 2233 | macros/luatex/optex/f-libertine-s.opm
2020/02/24 | 1595 | macros/luatex/optex/f-lido.opm
2020/03/10 | 8901 | macros/luatex/optex/f-lmfonts.opm
-2020/03/12 | 7042 | macros/luatex/optex/fnotes.opm
-2020/02/26 | 4209 | macros/luatex/optex/fonts-catalog.opm
-2020/02/29 | 3470 | macros/luatex/optex/fonts-opmac.opm
-2020/02/09 | 1276 | macros/luatex/optex/fonts-preload.opm
-2020/03/05 | 8260 | macros/luatex/optex/fonts-resize.opm
-2020/03/03 | 23250 | macros/luatex/optex/fonts-select.opm
+2020/03/19 | 7729 | macros/luatex/optex/fnotes.opm
+2020/03/19 | 4303 | macros/luatex/optex/fonts-catalog.opm
+2020/03/19 | 3489 | macros/luatex/optex/fonts-opmac.opm
+2020/03/19 | 1295 | macros/luatex/optex/fonts-preload.opm
+2020/03/19 | 8295 | macros/luatex/optex/fonts-resize.opm
+2020/03/19 | 23384 | macros/luatex/optex/fonts-select.opm
2020/02/20 | 760 | macros/luatex/optex/f-pagella.opm
2020/02/20 | 754 | macros/luatex/optex/f-schola.opm
2020/02/25 | 1178 | macros/luatex/optex/f-technika.opm
2020/02/20 | 749 | macros/luatex/optex/f-termes.opm
2020/02/25 | 819 | macros/luatex/optex/f-xcharter.opm
-2020/03/06 | 1597 | macros/luatex/optex/graphics.opm
-2020/03/09 | 6659 | macros/luatex/optex/hyperlinks.opm
-2020/03/10 | 8314 | macros/luatex/optex/hyphen-lan.opm
-2020/02/27 | 4870 | macros/luatex/optex/if-macros.opm
-2020/03/08 | 3213 | macros/luatex/optex/languages.opm
-2020/03/14 | 2947 | macros/luatex/optex/lists.opm
-2020/02/28 | 2176 | macros/luatex/optex/logos.opm
-2020/02/21 | 7358 | macros/luatex/optex/luatex-ini.opm
-2020/03/12 | 17520 | macros/luatex/optex/makeindex.opm
-2020/03/12 | 4537 | macros/luatex/optex/maketoc.opm
-2020/02/09 | 5598 | macros/luatex/optex/margins.opm
+2020/03/19 | 8025 | macros/luatex/optex/graphics.opm
+2020/03/19 | 6684 | macros/luatex/optex/hyperlinks.opm
+2020/03/19 | 8338 | macros/luatex/optex/hyphen-lan.opm
+2020/03/19 | 4892 | macros/luatex/optex/if-macros.opm
+2020/03/19 | 5147 | macros/luatex/optex/languages.opm
+2020/03/19 | 3001 | macros/luatex/optex/lists.opm
+2020/03/19 | 2198 | macros/luatex/optex/logos.opm
+2020/03/19 | 7380 | macros/luatex/optex/luatex-ini.opm
+2020/03/19 | 18316 | macros/luatex/optex/makeindex.opm
+2020/03/19 | 4559 | macros/luatex/optex/maketoc.opm
+2020/03/19 | 5622 | macros/luatex/optex/margins.opm
2020/02/18 | 13569 | macros/luatex/optex/mathclass.opm
-2020/03/14 | 33845 | macros/luatex/optex/math-macros.opm
-2020/02/25 | 5980 | macros/luatex/optex/math-preload.opm
-2020/02/25 | 5187 | macros/luatex/optex/math-unicode.opm
-2020/03/08 | 4515 | macros/luatex/optex/multicolumns.opm
-2020/03/13 | 3399 | macros/luatex/optex/op-demo.tex
-2020/03/14 | 1884 | macros/luatex/optex/opmac-rest.opm
-2020/03/03 | 4670 | macros/luatex/optex/op-macros.opm
-2020/03/14 | 421951 | macros/luatex/optex/op-ring.png
-2020/03/14 | 5113 | macros/luatex/optex/optex.ini
-2020/03/14 | 2275 | macros/luatex/optex/others.opm
-2020/03/12 | 4275 | macros/luatex/optex/outlines.opm
-2020/03/13 | 9354 | macros/luatex/optex/output.opm
-2020/03/14 | 19449 | macros/luatex/optex/parameters.opm
-2020/03/12 | 2873 | macros/luatex/optex/pdfuni-string.opm
-2020/03/14 | 11330 | macros/luatex/optex/plain-macros.opm
-2020/02/29 | 6160 | macros/luatex/optex/prefixed.opm
-2020/03/14 | 1189 | macros/luatex/optex/README
-2020/03/12 | 2766 | macros/luatex/optex/references.opm
-2020/03/12 | 4476 | macros/luatex/optex/ref-file.opm
-2020/03/14 | 15185 | macros/luatex/optex/sections.opm
-2020/03/13 | 3257 | macros/luatex/optex/styles.opm
-2020/03/13 | 9895 | macros/luatex/optex/table.opm
-2020/02/09 | 121075 | macros/luatex/optex/uni-lcuc.opm
-2020/03/14 | 12829 | macros/luatex/optex/unimath-codes.opm
+2020/03/19 | 33868 | macros/luatex/optex/math-macros.opm
+2020/03/19 | 6003 | macros/luatex/optex/math-preload.opm
+2020/03/19 | 5209 | macros/luatex/optex/math-unicode.opm
+2020/03/19 | 4612 | macros/luatex/optex/more-macros.opm
+2020/03/19 | 4537 | macros/luatex/optex/multicolumns.opm
+2020/03/19 | 3514 | macros/luatex/optex/op-demo.tex
+2020/03/19 | 1187 | macros/luatex/optex/op-letter.tex
+2020/03/17 | 512984 | macros/luatex/optex/op-ring.png
+2020/03/19 | 8901 | macros/luatex/optex/op-slides.tex
+2020/03/19 | 5113 | macros/luatex/optex/optex.ini
+2020/03/19 | 2297 | macros/luatex/optex/others.opm
+2020/03/19 | 4297 | macros/luatex/optex/outlines.opm
+2020/03/19 | 9294 | macros/luatex/optex/output.opm
+2020/03/19 | 19600 | macros/luatex/optex/parameters.opm
+2020/03/19 | 2895 | macros/luatex/optex/pdfuni-string.opm
+2020/03/19 | 11352 | macros/luatex/optex/plain-macros.opm
+2020/03/19 | 6181 | macros/luatex/optex/prefixed.opm
+2020/03/19 | 1334 | macros/luatex/optex/README
+2020/03/19 | 3297 | macros/luatex/optex/references.opm
+2020/03/19 | 4521 | macros/luatex/optex/ref-file.opm
+2020/03/19 | 15207 | macros/luatex/optex/sections.opm
+2020/03/17 | 62385 | macros/luatex/optex/slides-bg.png
+2020/03/19 | 8175 | macros/luatex/optex/slides.opm
+2020/03/19 | 3332 | macros/luatex/optex/styles.opm
+2020/03/19 | 9917 | macros/luatex/optex/table.opm
+2020/03/19 | 121097 | macros/luatex/optex/uni-lcuc.opm
+2020/03/19 | 12820 | macros/luatex/optex/unimath-codes.opm
2020/02/18 | 241265 | macros/luatex/optex/unimath-table.opm
-2020/03/11 | 13252 | macros/luatex/optex/usebib.opm
-2020/03/12 | 10322 | macros/luatex/optex/verbatim.opm
-2020/03/14 | 1248071 | macros/luatex/optex.zip
+2020/03/19 | 13317 | macros/luatex/optex/usebib.opm
+2020/03/19 | 10415 | macros/luatex/optex/verbatim.opm
+2020/03/20 | 994304 | macros/luatex/optex.zip
1993/02/12 | 2330 | macros/mathematica/CHANGES
1993/02/12 | 7699 | macros/mathematica/README
1993/02/12 | 40574 | macros/mathematica/tex-mma-j.ps.gz
@@ -208850,9 +208852,10 @@
2017/07/25 | 413 | macros/musixtex/doc/ChangeLog-124.txt
2017/07/25 | 155 | macros/musixtex/doc/ChangeLog-125.txt
2017/11/15 | 136 | macros/musixtex/doc/ChangeLog-126.txt
-2017/12/25 | 343 | macros/musixtex/doc/ChangeLog-127.txt
+2017/12/26 | 343 | macros/musixtex/doc/ChangeLog-127.txt
2018/05/07 | 212 | macros/musixtex/doc/ChangeLog-128.txt
2018/08/04 | 159 | macros/musixtex/doc/ChangeLog-129.txt
+2020/03/20 | 111 | macros/musixtex/doc/ChangeLog-130.txt
2017/07/25 | 861 | macros/musixtex/doc/ChangeLog-musixdoc.txt
2017/07/25 | 16264 | macros/musixtex/doc/examples/adagio.tex
2017/07/25 | 25036 | macros/musixtex/doc/examples/albinoni.tex
@@ -208934,37 +208937,37 @@
2017/07/25 | 31284 | macros/musixtex/doc/examples/widor.tex
2017/07/25 | 178150 | macros/musixtex/doc/musixcrd/doc.pdf
2017/07/25 | 3193 | macros/musixtex/doc/musixdoc/accidentals.tex
-2017/07/25 | 10254 | macros/musixtex/doc/musixdoc/barlines.tex
+2019/10/27 | 10333 | macros/musixtex/doc/musixdoc/barlines.tex
2017/07/25 | 4562 | macros/musixtex/doc/musixdoc/barnumbering.tex
-2017/12/14 | 22606 | macros/musixtex/doc/musixdoc/beams.tex
+2020/01/27 | 22693 | macros/musixtex/doc/musixdoc/beams.tex
2017/07/25 | 19225 | macros/musixtex/doc/musixdoc/changing.tex
2017/07/25 | 9512 | macros/musixtex/doc/musixdoc/embedding.tex
2017/07/25 | 5752 | macros/musixtex/doc/musixdoc/examples.tex
2017/07/25 | 66865 | macros/musixtex/doc/musixdoc/extensions.tex
2017/07/25 | 4087 | macros/musixtex/doc/musixdoc/extracting.tex
2017/07/25 | 11619 | macros/musixtex/doc/musixdoc/fonts.tex
-2018/08/04 | 5450 | macros/musixtex/doc/musixdoc/frontmatter.tex
+2018/08/09 | 5450 | macros/musixtex/doc/musixdoc/frontmatter.tex
2017/07/25 | 274 | macros/musixtex/doc/musixdoc/index.tex
2017/07/25 | 36757 | macros/musixtex/doc/musixdoc/introduction.tex
-2017/07/25 | 9014 | macros/musixtex/doc/musixdoc/layout.tex
+2018/08/09 | 9079 | macros/musixtex/doc/musixdoc/layout.tex
2017/07/25 | 17525 | macros/musixtex/doc/musixdoc/lyrics.tex
-2018/08/02 | 34247 | macros/musixtex/doc/musixdoc/miscellaneous.tex
-2018/07/15 | 1978 | macros/musixtex/doc/musixdoc/musixdoc.ltx
-2018/05/04 | 4778 | macros/musixtex/doc/musixdoc/musixdoc.sty
-2017/07/25 | 8135 | macros/musixtex/doc/musixdoc/parameters.tex
-2018/08/04 | 1332076 | macros/musixtex/doc/musixdoc.pdf
+2019/07/01 | 36040 | macros/musixtex/doc/musixdoc/miscellaneous.tex
+2019/05/21 | 1978 | macros/musixtex/doc/musixdoc/musixdoc.ltx
+2020/02/12 | 4778 | macros/musixtex/doc/musixdoc/musixdoc.sty
+2019/05/01 | 10935 | macros/musixtex/doc/musixdoc/parameters.tex
+2020/01/27 | 1373998 | macros/musixtex/doc/musixdoc.pdf
2017/12/25 | 12902 | macros/musixtex/doc/musixdoc/preparing.tex
2018/03/04 | 8282 | macros/musixtex/doc/musixdoc/repeats.tex
2017/07/25 | 7249 | macros/musixtex/doc/musixdoc/restsdoc.tex
2018/05/21 | 15269 | macros/musixtex/doc/musixdoc/settingup.tex
2018/07/09 | 22657 | macros/musixtex/doc/musixdoc/slurstiesfont.tex
-2018/05/11 | 16654 | macros/musixtex/doc/musixdoc/slurstiesTypeK.tex
+2019/06/17 | 16754 | macros/musixtex/doc/musixdoc/slurstiesTypeK.tex
2017/07/25 | 6180 | macros/musixtex/doc/musixdoc/smaller.tex
2017/12/20 | 4347 | macros/musixtex/doc/musixdoc/spacing.tex
2017/07/25 | 3916 | macros/musixtex/doc/musixdoc/staffsize.tex
2017/07/25 | 9617 | macros/musixtex/doc/musixdoc/summary.tex
2017/07/25 | 9443 | macros/musixtex/doc/musixdoc/transposition.tex
-2017/12/16 | 13820 | macros/musixtex/doc/musixdoc/writingnotes.tex
+2019/05/22 | 14074 | macros/musixtex/doc/musixdoc/writingnotes.tex
2017/07/25 | 11229 | macros/musixtex/doc/musixlyr/examples/nonmoriar.pdf
2017/07/25 | 627 | macros/musixtex/doc/musixlyr/examples/nonmoriar.tex
2017/07/25 | 245264 | macros/musixtex/doc/musixlyr/mxlyrdoc.pdf
@@ -208972,30 +208975,30 @@
2017/07/25 | 2619 | macros/musixtex/doc/musixlyr/README.musixlyr
2017/07/25 | 93845 | macros/musixtex/doc/musixtex-install.pdf
2017/07/25 | 6901 | macros/musixtex/doc/musixtex-install.tex
-2017/07/25 | 2435 | macros/musixtex/doc/notationmistakes/coulhack.tex
-2017/07/25 | 126207 | macros/musixtex/doc/notationmistakes/sottieng.pdf
-2017/07/25 | 29043 | macros/musixtex/doc/notationmistakes/sottieng.tex
-2017/07/25 | 132877 | macros/musixtex/doc/notationmistakes/sottiger.pdf
-2017/07/25 | 30527 | macros/musixtex/doc/notationmistakes/sottiger.tex
-2017/07/25 | 191646 | macros/musixtex/doc/notationmistakes/sottigra.pdf
-2017/07/25 | 32050 | macros/musixtex/doc/notationmistakes/sottigra.tex
+2017/07/25 | 2435 | macros/musixtex/doc/notationMistakes/coulhack.tex
+2017/07/25 | 126207 | macros/musixtex/doc/notationMistakes/sottieng.pdf
+2017/07/25 | 29043 | macros/musixtex/doc/notationMistakes/sottieng.tex
+2017/07/25 | 132877 | macros/musixtex/doc/notationMistakes/sottiger.pdf
+2017/07/25 | 30527 | macros/musixtex/doc/notationMistakes/sottiger.tex
+2017/07/25 | 191646 | macros/musixtex/doc/notationMistakes/sottigra.pdf
+2017/07/25 | 32050 | macros/musixtex/doc/notationMistakes/sottigra.tex
2017/07/25 | 1589 | macros/musixtex/doc/psslurs/README.psslurs
2017/07/25 | 16083 | macros/musixtex/doc/psslurs/slurs.pdf
2017/07/25 | 1964 | macros/musixtex/doc/psslurs/slurs.tex
2017/07/25 | 85655 | macros/musixtex/doc/reference/musixre1.pdf
-2018/06/15 | 1157 | macros/musixtex/doc/scripts/musixflx.1
+2018/06/16 | 1157 | macros/musixtex/doc/scripts/musixflx.1
2017/06/13 | 4074 | macros/musixtex/doc/scripts/musixflx.pdf
-2018/07/27 | 4206 | macros/musixtex/doc/scripts/musixtex.1
-2018/07/27 | 7305 | macros/musixtex/doc/scripts/musixtex.pdf
+2020/03/20 | 4310 | macros/musixtex/doc/scripts/musixtex.1
+2020/03/20 | 23215 | macros/musixtex/doc/scripts/musixtex.pdf
2017/07/25 | 7434 | macros/musixtex/dvips/psslurs.pro
2017/07/25 | 27 | macros/musixtex/latex/musixcpt.sty
2017/07/25 | 620 | macros/musixtex/latex/musixcrd.sty
2017/07/25 | 30 | macros/musixtex/latex/musixfll.sty
2017/07/25 | 1199 | macros/musixtex/latex/musixltx.tex
2017/07/25 | 42 | macros/musixtex/latex/musixtex.sty
-2018/08/04 | 3067 | macros/musixtex/README
-2017/06/13 | 34855 | macros/musixtex/scripts/musixflx.lua
-2018/08/04 | 18926 | macros/musixtex/scripts/musixtex.lua
+2020/03/20 | 3067 | macros/musixtex/README
+2019/05/19 | 34855 | macros/musixtex/scripts/musixflx.lua
+2020/03/20 | 19280 | macros/musixtex/scripts/musixtex.lua
2017/07/25 | 863 | macros/musixtex/source/doc.tex
2017/07/25 | 1224 | macros/musixtex/source/makefile
2017/07/25 | 29212 | macros/musixtex/source/musixcrd.dtx
@@ -209032,21 +209035,21 @@
2017/07/25 | 5049 | macros/musixtex/tex/musixplt.tex
2017/07/25 | 2680 | macros/musixtex/tex/musixpoi.tex
2017/07/25 | 5832 | macros/musixtex/tex/musixppff.tex
-2017/07/25 | 38289 | macros/musixtex/tex/musixps.tex
+2019/06/17 | 38895 | macros/musixtex/tex/musixps.tex
2017/07/25 | 9750 | macros/musixtex/tex/musixref.tex
2017/07/25 | 140 | macros/musixtex/tex/musixslu.tex
2017/07/25 | 106 | macros/musixtex/tex/musixsqr.tex
2017/07/25 | 3097 | macros/musixtex/tex/musixste.tex
2017/07/25 | 621 | macros/musixtex/tex/musixstf.tex
2017/07/25 | 1505 | macros/musixtex/tex/musixstr.tex
-2017/07/25 | 13876 | macros/musixtex/tex/musixsty.tex
-2018/08/04 | 188062 | macros/musixtex/tex/musixtex.tex
+2019/01/15 | 13876 | macros/musixtex/tex/musixsty.tex
+2020/03/20 | 188516 | macros/musixtex/tex/musixtex.tex
2017/07/25 | 5379 | macros/musixtex/tex/musixtmr.tex
2017/07/25 | 2071 | macros/musixtex/tex/musixtri.tex
2017/07/25 | 946 | macros/musixtex/tex/tuplet.tex
-2017/07/25 | 248 | macros/musixtex/windows/musixflx.bat
-2017/07/25 | 238 | macros/musixtex/windows/musixtex.bat
-2018/08/05 | 2380454 | macros/musixtex.zip
+2017/07/25 | 254 | macros/musixtex/windows/musixflx.bat
+2020/03/20 | 265 | macros/musixtex/windows/musixtex.bat
+2020/03/20 | 2414903 | macros/musixtex.zip
2016/01/31 | 1043 | macros/musixtnt/doc/msxlint.1
2016/01/31 | 4148 | macros/musixtnt/doc/msxlint.pdf
2016/01/31 | 3604 | macros/musixtnt/doc/TransformNotes.3
@@ -271126,7 +271129,7 @@
2020/03/13 | 4937896 | systems/win32/w32tex/aleph-w32.tar.xz
2020/03/15 | 64811544 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2020/03/18 | 610949 | systems/win32/w32tex/ChangeLog
+2020/03/18 | 611022 | systems/win32/w32tex/ChangeLog
2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0
2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1
2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2
@@ -271149,7 +271152,7 @@
2020/03/13 | 41264260 | systems/win32/w32tex/latex-dev.tar.xz
2020/02/29 | 29401516 | systems/win32/w32tex/latex.tar.xz
2020/01/20 | 996420 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz
-2020/03/07 | 393114744 | systems/win32/w32tex/ltxpkgdocs.tar.xz
+2020/03/18 | 393157860 | systems/win32/w32tex/ltxpkgdocs.tar.xz
2020/03/16 | 34505792 | systems/win32/w32tex/ltxpkgs.tar.xz
2020/03/14 | 3887684 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
2020/03/14 | 3884552 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
@@ -271171,7 +271174,7 @@
2020/03/17 | 75709416 | systems/win32/w32tex/pgfcontrib.tar.xz
2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz
2020/03/02 | 2970172 | systems/win32/w32tex/platex.tar.xz
-2020/02/07 | 1599100 | systems/win32/w32tex/pmx.tar.xz
+2020/03/18 | 1599104 | systems/win32/w32tex/pmx.tar.xz
2020/01/20 | 1168532 | systems/win32/w32tex/pstoedit-w32.tar.xz
2020/03/17 | 278956092 | systems/win32/w32tex/pstricks.tar.xz
2020/01/20 | 517548 | systems/win32/w32tex/psutils-w32.tar.xz
@@ -271340,7 +271343,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2020/03/20 | 186 | timestamp
+2020/03/21 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index f47c62b8c1..12ecc03f7c 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index e599936e8b..c6c20962b2 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,3 +1,51 @@
+2020/03/20 | 994304 | macros/luatex/optex.zip
+2020/03/20 | 9340 | macros/latex/contrib/glosmathtools/sample_glosmathtools.tex
+2020/03/20 | 874 | macros/latex/contrib/csbulletin/csbulobalka.cls
+2020/03/20 | 7649 | fonts/erewhon/README
+2020/03/20 | 75807 | macros/latex/contrib/xltabular.zip
+2020/03/20 | 751 | macros/latex/contrib/glosmathtools/README.md
+2020/03/20 | 7273 | macros/latex/contrib/csbulletin/csbulletin.tex
+2020/03/20 | 724600 | fonts/erewhon/doc/erewhon-doc.pdf
+2020/03/20 | 71369 | macros/latex/contrib/xltabular/xltabular-doc.pdf
+2020/03/20 | 67382 | macros/luatex/optex/doc/optex-doc.tex
+2020/03/20 | 611 | macros/latex/contrib/scratch3/README
+2020/03/20 | 532 | macros/latex/contrib/csbulletin/README
+2020/03/20 | 526284 | macros/latex/contrib/scratch3.zip
+2020/03/20 | 508522 | macros/latex/contrib/scratch3/scratch3-fr.pdf
+2020/03/20 | 4839000 | install/fonts/erewhon.tds.zip
+2020/03/20 | 4769484 | fonts/erewhon.zip
+2020/03/20 | 473 | macros/latex/contrib/xltabular/Changes
+2020/03/20 | 46184 | macros/latex/contrib/scratch3/scratch3.sty
+2020/03/20 | 4310 | macros/musixtex/doc/scripts/musixtex.1
+2020/03/20 | 3739 | macros/latex/contrib/csbulletin/csbulacronym.sty
+2020/03/20 | 361658 | macros/luatex/generic/luatexko.zip
+2020/03/20 | 3297 | macros/latex/contrib/xltabular/xltabular.sty
+2020/03/20 | 329377 | macros/latex/contrib/glosmathtools.zip
+2020/03/20 | 322662 | macros/latex/contrib/glosmathtools/sample_glosmathtools.pdf
+2020/03/20 | 31732 | macros/latex/contrib/scratch3/scratch3-fr.tex
+2020/03/20 | 3067 | macros/musixtex/README
+2020/03/20 | 288252 | macros/latex/contrib/csbulletin.zip
+2020/03/20 | 265 | macros/musixtex/windows/musixtex.bat
+2020/03/20 | 264133 | macros/latex/contrib/csbulletin/csbulletin.pdf
+2020/03/20 | 2430654 | install/macros/musixtex.tds.zip
+2020/03/20 | 2414903 | macros/musixtex.zip
+2020/03/20 | 241284 | fonts/erewhon/opentype/Erewhon-RegularSlanted.otf
+2020/03/20 | 239008 | fonts/erewhon/opentype/Erewhon-Regular.otf
+2020/03/20 | 23215 | macros/musixtex/doc/scripts/musixtex.pdf
+2020/03/20 | 218540 | fonts/erewhon/opentype/Erewhon-BoldSlanted.otf
+2020/03/20 | 217232 | fonts/erewhon/opentype/Erewhon-Bold.otf
+2020/03/20 | 196368 | fonts/erewhon/opentype/Erewhon-BoldItalic.otf
+2020/03/20 | 19280 | macros/musixtex/scripts/musixtex.lua
+2020/03/20 | 19110 | macros/latex/contrib/csbulletin/LICENSE.txt
+2020/03/20 | 188516 | macros/musixtex/tex/musixtex.tex
+2020/03/20 | 18016 | macros/latex/contrib/csbulletin/csbulletin.cls
+2020/03/20 | 17473 | macros/latex/contrib/csbulletin/csbulobalka.sty
+2020/03/20 | 16718 | macros/latex/contrib/glosmathtools/glosmathtools.sty
+2020/03/20 | 163979 | macros/luatex/optex/doc/optex-doc.pdf
+2020/03/20 | 1126 | macros/latex/contrib/csbulletin/csbulv1.cls
+2020/03/20 | 111 | macros/musixtex/doc/ChangeLog-130.txt
+2020/03/20 | 11060 | fonts/erewhon/doc/erewhon-doc.tex
+2020/03/19 | 9917 | macros/luatex/optex/table.opm
2020/03/19 | 98406 | macros/latex/contrib/glossaries/samples/sampleNtn.pdf
2020/03/19 | 96319 | macros/latex/contrib/glossaries/samples/sample-noidxapp-utf8.pdf
2020/03/19 | 96281 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
@@ -10,6 +58,7 @@
2020/03/19 | 93392 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
2020/03/19 | 932387 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2020/03/19 | 929 | support/texloganalyser/README
+2020/03/19 | 9294 | macros/luatex/optex/output.opm
2020/03/19 | 92919 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
2020/03/19 | 927 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-369636.tex
2020/03/19 | 92746 | macros/latex/contrib/glossaries/samples/sampleAcrDesc.pdf
@@ -17,6 +66,7 @@
2020/03/19 | 91368 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2020/03/19 | 91227 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2020/03/19 | 894 | macros/latex/contrib/xsim/doc/examples/xsim.grade-distribution.tex
+2020/03/19 | 8901 | macros/luatex/optex/op-slides.tex
2020/03/19 | 8892 | macros/latex/contrib/turabian-formatting/turabian-researchpaper.cls
2020/03/19 | 8843 | macros/latex/contrib/glossaries/samples/samplexdy3.tex
2020/03/19 | 8835 | macros/latex/contrib/xsim/code/xsim.base.code.tex
@@ -32,11 +82,15 @@
2020/03/19 | 84613 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2020/03/19 | 8458 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2020/03/19 | 84290 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2020/03/19 | 8338 | macros/luatex/optex/hyphen-lan.opm
+2020/03/19 | 8295 | macros/luatex/optex/fonts-resize.opm
2020/03/19 | 828212 | graphics/pgf/contrib/dynkin-diagrams.zip
2020/03/19 | 821 | macros/latex/contrib/xsim/doc/examples/xsim.listings.tex
2020/03/19 | 82179 | macros/latex/contrib/glossaries/samples/sample-custom-acronym.pdf
+2020/03/19 | 8175 | macros/luatex/optex/slides.opm
2020/03/19 | 81351 | macros/latex/contrib/glossaries/samples/sampleaccsupp.pdf
2020/03/19 | 80519 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2020/03/19 | 8025 | macros/luatex/optex/graphics.opm
2020/03/19 | 798375 | graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf
2020/03/19 | 7935 | macros/latex/contrib/glossaries/samples/sampleEqPg.tex
2020/03/19 | 785 | macros/latex/contrib/glossaries/samples/sample4col.tex
@@ -45,11 +99,13 @@
2020/03/19 | 7793 | macros/latex/contrib/glossaries/makeglossaries.1
2020/03/19 | 776 | macros/latex/contrib/xsim/doc/examples/xsim.description-list.tex
2020/03/19 | 77414 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2020/03/19 | 7729 | macros/luatex/optex/fnotes.opm
2020/03/19 | 765702 | macros/latex/contrib/glossaries/glossaries-user.tex
2020/03/19 | 7587 | macros/latex/contrib/glossaries/makeglossaries-lite.1
2020/03/19 | 7504 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2020/03/19 | 74333 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
2020/03/19 | 73938 | macros/latex/contrib/glossaries/glossariesbegin.tex
+2020/03/19 | 7380 | macros/luatex/optex/luatex-ini.opm
2020/03/19 | 73548 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2020/03/19 | 7268 | macros/latex/contrib/xsim/code/xsim.verbwrite.code.tex
2020/03/19 | 72580 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
@@ -57,6 +113,7 @@
2020/03/19 | 718 | macros/latex/contrib/glossaries/samples/sample-entryfmt.tex
2020/03/19 | 716 | macros/latex/contrib/glossaries/samples/sample-FnDesc.tex
2020/03/19 | 71652 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2020/03/19 | 7164 | macros/luatex/generic/luatexko/ChangeLog
2020/03/19 | 7155709 | systems/win32/miktex/tm/packages/latex2nemeth.tar.lzma
2020/03/19 | 7149301 | install/macros/latex/contrib/glossaries.tds.zip
2020/03/19 | 7136 | macros/latex/contrib/xsim/code/xsim.auxfile.code.tex
@@ -73,8 +130,10 @@
2020/03/19 | 67257 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2020/03/19 | 67184 | macros/latex/contrib/glossaries/samples/sample-noidxapp.pdf
2020/03/19 | 669729 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2020/03/19 | 6684 | macros/luatex/optex/hyperlinks.opm
2020/03/19 | 66532 | macros/latex/contrib/extarrows.zip
2020/03/19 | 6642 | macros/latex/contrib/xsim/code/xsim.tags.code.tex
+2020/03/19 | 65958 | macros/luatex/generic/luatexko/luatexko.lua
2020/03/19 | 65721 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-369065.pdf
2020/03/19 | 65663 | macros/latex/contrib/glossaries/samples/sampleSec.pdf
2020/03/19 | 65501 | macros/latex/contrib/glossaries/samples/sampleAcr.pdf
@@ -82,6 +141,7 @@
2020/03/19 | 65379 | macros/latex/contrib/xsim/doc/examples/xsim.golatex-91339.pdf
2020/03/19 | 652 | systems/win32/miktex/tm/packages/next/pr.ini
2020/03/19 | 65072 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2020/03/19 | 6491 | macros/luatex/optex/bib-simple.opm
2020/03/19 | 6434 | macros/latex/contrib/glossaries/samples/glossary-lipsum-examples.tex
2020/03/19 | 64292 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2020/03/19 | 6358 | macros/latex/contrib/glossaries/samples/sampleEq.tex
@@ -91,6 +151,7 @@
2020/03/19 | 62928 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2020/03/19 | 62836 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
2020/03/19 | 621 | macros/latex/contrib/glossaries/samples/sample-ignored.tex
+2020/03/19 | 6181 | macros/luatex/optex/prefixed.opm
2020/03/19 | 61695 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2020/03/19 | 615 | macros/latex/contrib/glossaries/samples/mwe-acr-desc.tex
2020/03/19 | 61547 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
@@ -99,6 +160,7 @@
2020/03/19 | 613 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-299534.tex
2020/03/19 | 61032 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2020/03/19 | 60191 | macros/latex/contrib/glossaries/samples/sampletree.pdf
+2020/03/19 | 6003 | macros/luatex/optex/math-preload.opm
2020/03/19 | 59916 | graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex
2020/03/19 | 59416 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64-2.9.tar.lzma
2020/03/19 | 590 | macros/latex/contrib/glossaries/samples/sampleDB.tex
@@ -119,6 +181,7 @@
2020/03/19 | 56417 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
2020/03/19 | 563108 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2020/03/19 | 5629 | macros/latex/contrib/glossaries/glossaries.ins
+2020/03/19 | 5622 | macros/luatex/optex/margins.opm
2020/03/19 | 56153 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-199360.pdf
2020/03/19 | 560541 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2020/03/19 | 553 | macros/latex/contrib/glossaries/samples/sample-si.tex
@@ -137,10 +200,13 @@
2020/03/19 | 529488 | systems/win32/miktex/tm/packages/files.csv.lzma
2020/03/19 | 52797 | macros/latex/contrib/glossaries/samples/sample-dot-abbr.pdf
2020/03/19 | 5277 | macros/xetex/latex/xepersian-hm/xepersian-hm.sty
+2020/03/19 | 5209 | macros/luatex/optex/math-unicode.opm
2020/03/19 | 5208 | macros/latex/contrib/glossaries/samples/sample-custom-acronym.tex
2020/03/19 | 52019 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2020/03/19 | 51928 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2020/03/19 | 5148 | macros/latex/contrib/glossaries/samples/sample-inline.tex
+2020/03/19 | 5147 | macros/luatex/optex/languages.opm
+2020/03/19 | 5113 | macros/luatex/optex/optex.ini
2020/03/19 | 50857 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
2020/03/19 | 50786 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2020/03/19 | 50704 | macros/latex/contrib/glossaries/samples/sample-font-abbr.pdf
@@ -150,6 +216,7 @@
2020/03/19 | 49662 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2020/03/19 | 49318 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2020/03/19 | 49022 | macros/latex/contrib/glossaries/samples/minimalgls.pdf
+2020/03/19 | 4892 | macros/luatex/optex/if-macros.opm
2020/03/19 | 48390 | macros/latex/contrib/glossaries/samples/sampleDesc.pdf
2020/03/19 | 4837 | support/texloganalyser.zip
2020/03/19 | 4826 | macros/latex/contrib/xsim/code/xsim.translations.code.tex
@@ -166,6 +233,7 @@
2020/03/19 | 46504 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-369636.pdf
2020/03/19 | 46308 | macros/latex/contrib/xsim/doc/examples/xsim.golatex-80640.pdf
2020/03/19 | 46274 | macros/latex/contrib/glossaries/samples/sample-prefix.pdf
+2020/03/19 | 4612 | macros/luatex/optex/more-macros.opm
2020/03/19 | 46008 | macros/latex/contrib/xsim/doc/examples/xsim.texwelt-23968.pdf
2020/03/19 | 45765 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2020/03/19 | 45764 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
@@ -173,19 +241,26 @@
2020/03/19 | 457385 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2020/03/19 | 45719 | macros/latex/contrib/xsim/doc/examples/xsim.hints.pdf
2020/03/19 | 45600 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2020/03/19 | 4559 | macros/luatex/optex/maketoc.opm
2020/03/19 | 455702 | systems/win32/miktex/tm/packages/latexgit.tar.lzma
2020/03/19 | 45493 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2020/03/19 | 4537 | macros/luatex/optex/multicolumns.opm
+2020/03/19 | 4533 | macros/luatex/optex/fams-ini.opm
+2020/03/19 | 4521 | macros/luatex/optex/ref-file.opm
2020/03/19 | 451375 | systems/win32/miktex/tm/packages/next/miktex-doc-2.9.tar.lzma
2020/03/19 | 44940 | macros/latex/contrib/glossaries/samples/sampleutf8.pdf
2020/03/19 | 44870 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2020/03/19 | 443 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-155630.tex
2020/03/19 | 44395 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
+2020/03/19 | 4422 | macros/luatex/optex/alloc.opm
2020/03/19 | 43899 | macros/latex/contrib/xsim/doc/examples/xsim.texwelt-6698.pdf
2020/03/19 | 43620 | macros/latex/contrib/glossaries/makeglossaries
2020/03/19 | 43427 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2020/03/19 | 43377 | macros/latex/contrib/glossaries/samples/sample-index.pdf
2020/03/19 | 43324 | macros/latex/contrib/glossaries/samples/sample4col.pdf
+2020/03/19 | 4303 | macros/luatex/optex/fonts-catalog.opm
2020/03/19 | 429 | macros/xetex/latex/xepersian-hm/README.txt
+2020/03/19 | 4297 | macros/luatex/optex/outlines.opm
2020/03/19 | 42901 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
2020/03/19 | 42575 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2020/03/19 | 42513 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-498299.pdf
@@ -213,9 +288,11 @@
2020/03/19 | 387341 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-x64-2.9.tar.lzma
2020/03/19 | 38376 | macros/latex/contrib/xsim/doc/examples/xsim.boxed-headings.pdf
2020/03/19 | 37957 | macros/latex/contrib/glossaries/samples/mwe-acr-desc.pdf
+2020/03/19 | 3783 | macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
2020/03/19 | 37708 | macros/latex/contrib/xsim/doc/examples/xsim.floating.pdf
2020/03/19 | 37660 | macros/latex/contrib/glossaries/samples/sample-storage-abbr.pdf
2020/03/19 | 3724 | macros/latex/contrib/glossaries/samples/sampleCustomAcr.tex
+2020/03/19 | 3720 | macros/luatex/generic/luatexko/README
2020/03/19 | 37201 | macros/latex/contrib/glossaries/samples/sampleacronyms.pdf
2020/03/19 | 36968 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-305110.pdf
2020/03/19 | 36834 | macros/latex/contrib/glossaries/samples/sample-entrycount.pdf
@@ -227,28 +304,38 @@
2020/03/19 | 356260 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2020/03/19 | 3547 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-350028.tex
2020/03/19 | 354450 | systems/win32/miktex/tm/packages/next/miktex-omega-bin-2.9.tar.lzma
+2020/03/19 | 3514 | macros/luatex/optex/op-demo.tex
+2020/03/19 | 3489 | macros/luatex/optex/fonts-opmac.opm
2020/03/19 | 34899 | macros/latex/contrib/glossaries/samples/sample-entryfmt.pdf
2020/03/19 | 34827 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
2020/03/19 | 34813 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2020/03/19 | 3462 | macros/latex/contrib/glossaries/samples/sample-noidxapp-utf8.tex
2020/03/19 | 3442 | macros/latex/contrib/xsim/doc/examples/xsim.golatex-80640.tex
2020/03/19 | 3419 | macros/latex/contrib/xsim/code/xsimverb.sty
+2020/03/19 | 34123 | macros/luatex/optex/bib-iso690.opm
2020/03/19 | 340 | graphics/pgf/contrib/dynkin-diagrams/README
+2020/03/19 | 33868 | macros/luatex/optex/math-macros.opm
2020/03/19 | 33839 | macros/latex/contrib/turabian-formatting/turabian-formatting-doc.tex
2020/03/19 | 3372 | macros/latex/contrib/glossaries/samples/sample-noidxapp.tex
2020/03/19 | 33649 | macros/latex/contrib/glossaries/samples/mwe-acr.pdf
2020/03/19 | 33542 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
2020/03/19 | 33356 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2020/03/19 | 3332 | macros/luatex/optex/styles.opm
2020/03/19 | 33206 | macros/latex/contrib/xsim/doc/examples/xsim.collections.pdf
+2020/03/19 | 3297 | macros/luatex/optex/references.opm
2020/03/19 | 328530 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2020/03/19 | 325270 | macros/luatex/generic/luatexko/luatexko-doc.pdf
2020/03/19 | 32355 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2020/03/19 | 3230964 | support/pmx.zip
+2020/03/19 | 3228 | macros/luatex/optex/basics-macros.opm
2020/03/19 | 32225 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2020/03/19 | 321557 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2020/03/19 | 31808 | macros/latex/contrib/glossaries/samples/sample-ignored.pdf
+2020/03/19 | 31671 | macros/luatex/generic/luatexko/luatexko-doc.tex
2020/03/19 | 31555 | macros/latex/contrib/xsim/doc/examples/xsim.difficulties.pdf
2020/03/19 | 3142 | macros/latex/contrib/xsim/doc/examples/xsim.texwelt-15093.tex
2020/03/19 | 31246 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2020/03/19 | 31204 | macros/luatex/generic/luatexko/luatexko.sty
2020/03/19 | 31140 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
2020/03/19 | 310223 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2020/03/19 | 31016 | macros/latex/contrib/xsim/doc/examples/xsim.multiplechoice.pdf
@@ -256,6 +343,7 @@
2020/03/19 | 30938 | macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.pdf
2020/03/19 | 30729 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
2020/03/19 | 30223 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2020/03/19 | 3001 | macros/luatex/optex/lists.opm
2020/03/19 | 29952 | macros/latex/contrib/xsim/doc/examples/xsim.blanks.pdf
2020/03/19 | 29939 | macros/latex/contrib/glossaries/samples/mwe-gls.pdf
2020/03/19 | 29665 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
@@ -265,6 +353,7 @@
2020/03/19 | 29252 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
2020/03/19 | 29061 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
2020/03/19 | 2902 | macros/latex/contrib/glossaries/makeglossaries-lite.pod
+2020/03/19 | 2895 | macros/luatex/optex/pdfuni-string.opm
2020/03/19 | 28739 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2020/03/19 | 28661 | macros/latex/contrib/glossaries/samples/samplexdy-mc.xdy
2020/03/19 | 2846 | macros/latex/contrib/glossaries/samples/minimalgls.tex
@@ -302,15 +391,18 @@
2020/03/19 | 2363 | macros/latex/contrib/glossaries/samples/sampleaccsupp.tex
2020/03/19 | 2361969 | macros/latex/contrib/glossaries/glossaries-user.html
2020/03/19 | 23475 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2020/03/19 | 23384 | macros/luatex/optex/fonts-select.opm
2020/03/19 | 2328 | macros/latex/contrib/glossaries/samples/sample-prefix.tex
2020/03/19 | 23204 | macros/latex/contrib/xsim/doc/examples/xsim.grade-distribution.pdf
2020/03/19 | 23102 | macros/latex/contrib/xsim/doc/examples/xsim.randomexercises.pdf
2020/03/19 | 2308 | macros/latex/contrib/glossaries/samples/sampleDesc.tex
+2020/03/19 | 2297 | macros/luatex/optex/others.opm
2020/03/19 | 22936 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
2020/03/19 | 2259 | macros/latex/contrib/xsim/doc/examples/xsim.golatex-91339.tex
2020/03/19 | 22238 | macros/latex/contrib/xsim/code/xsim.interface.code.tex
2020/03/19 | 221243 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
2020/03/19 | 22064 | macros/latex/contrib/xsim/code/xsim.exercises.code.tex
+2020/03/19 | 2198 | macros/luatex/optex/logos.opm
2020/03/19 | 2190 | macros/latex/contrib/glossaries/samples/sample-dot-abbr.tex
2020/03/19 | 21710 | macros/latex/contrib/glossaries/samples/sample-si.pdf
2020/03/19 | 21567 | macros/xetex/latex/xepersian-hm.zip
@@ -326,6 +418,7 @@
2020/03/19 | 197787 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
2020/03/19 | 1976507 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
2020/03/19 | 1969 | macros/latex/contrib/glossaries/samples/sampleSec.tex
+2020/03/19 | 19600 | macros/luatex/optex/parameters.opm
2020/03/19 | 195212 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
2020/03/19 | 193753 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2020/03/19 | 1929 | macros/latex/contrib/glossaries/samples/samplexdy2.tex
@@ -337,6 +430,7 @@
2020/03/19 | 185331 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2020/03/19 | 185192 | macros/latex/contrib/glossaries/glossariesbegin.html
2020/03/19 | 184246 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2020/03/19 | 18316 | macros/luatex/optex/makeindex.opm
2020/03/19 | 1828 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-338165.tex
2020/03/19 | 182706 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2020/03/19 | 17987 | macros/xetex/latex/xepersian-hm/test-kasida.pdf
@@ -361,6 +455,8 @@
2020/03/19 | 165364 | systems/win32/miktex/tm/packages/shortmathj.tar.lzma
2020/03/19 | 16513 | macros/latex/contrib/xsim/code/xsim.properties.code.tex
2020/03/19 | 164920 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2020/03/19 | 16457 | macros/luatex/generic/luatexko/luatexko-normalize.lua
+2020/03/19 | 16173 | macros/luatex/optex/colors.opm
2020/03/19 | 160907 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2020/03/19 | 16049 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
2020/03/19 | 15891 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
@@ -368,6 +464,7 @@
2020/03/19 | 1545 | macros/latex/contrib/glossaries/samples/samplePeople.tex
2020/03/19 | 153292 | macros/latex/contrib/srdp-mathematik.zip
2020/03/19 | 15212 | macros/latex/contrib/xsim/code/xsim.definitions.code.tex
+2020/03/19 | 15207 | macros/luatex/optex/sections.opm
2020/03/19 | 151953 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2020/03/19 | 1518 | macros/latex/contrib/xsim/doc/examples/xsim.texwelt-23968.tex
2020/03/19 | 151105 | macros/latex/contrib/glossaries/samples/sampleCustomAcr.pdf
@@ -398,6 +495,8 @@
2020/03/19 | 13440 | macros/latex/contrib/xsim/code/xsim.solutions.code.tex
2020/03/19 | 13396 | macros/latex/contrib/turabian-formatting/turabian-formatting.sty
2020/03/19 | 1337 | macros/latex/contrib/xsim/doc/examples/xsim.different-point-types.tex
+2020/03/19 | 1334 | macros/luatex/optex/README
+2020/03/19 | 13317 | macros/luatex/optex/usebib.opm
2020/03/19 | 133114 | macros/latex/contrib/glossaries/samples/samplexdy.pdf
2020/03/19 | 133013 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
2020/03/19 | 1313 | macros/latex/contrib/xsim/doc/examples/xsim.hints.tex
@@ -405,6 +504,8 @@
2020/03/19 | 13055 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2020/03/19 | 130498 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
2020/03/19 | 13024 | macros/latex/contrib/xsim/code/xsim.collections.code.tex
+2020/03/19 | 1295 | macros/luatex/optex/fonts-preload.opm
+2020/03/19 | 12820 | macros/luatex/optex/unimath-codes.opm
2020/03/19 | 12655 | support/texloganalyser/texloganalyser
2020/03/19 | 1257892 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2020/03/19 | 12538 | macros/latex/contrib/glossaries/makeglossaries-lite.lua
@@ -413,8 +514,10 @@
2020/03/19 | 1233842 | macros/latex/contrib/xsim/doc/xsim_manual.pdf
2020/03/19 | 1232801 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2020/03/19 | 1211 | macros/latex/contrib/glossaries/samples/sample-numberlist.tex
+2020/03/19 | 121097 | macros/luatex/optex/uni-lcuc.opm
2020/03/19 | 1198 | macros/latex/contrib/glossaries/samples/sampleacronyms.tex
2020/03/19 | 119797 | macros/latex/contrib/glossaries/samples/sample.pdf
+2020/03/19 | 1187 | macros/luatex/optex/op-letter.tex
2020/03/19 | 1183 | macros/latex/contrib/xsim/doc/examples/xsim.texsx-199360.tex
2020/03/19 | 1183573 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2020/03/19 | 1182869 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
@@ -423,6 +526,7 @@
2020/03/19 | 116923 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2020/03/19 | 115477 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2020/03/19 | 113704 | macros/latex/contrib/turabian-formatting/turabian-formatting-doc.pdf
+2020/03/19 | 11352 | macros/luatex/optex/plain-macros.opm
2020/03/19 | 110861 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
2020/03/19 | 1105231 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
2020/03/19 | 1103385 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
@@ -437,6 +541,7 @@
2020/03/19 | 1048 | macros/latex/contrib/xsim/doc/xsim.ideas
2020/03/19 | 1047538 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2020/03/19 | 1043396 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2020/03/19 | 10415 | macros/luatex/optex/verbatim.opm
2020/03/19 | 102449 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2020/03/19 | 1013 | macros/latex/contrib/xsim/doc/examples/xsim.floating.tex
2020/03/19 | 10083 | macros/latex/contrib/glossaries/samples/samplexdy.tex
@@ -459,7 +564,7 @@
2020/03/18 | 663917 | systems/win32/miktex/tm/packages/els-cas-templates.tar.lzma
2020/03/18 | 659025 | systems/win32/miktex/tm/packages/oscola.tar.lzma
2020/03/18 | 652 | macros/latex/contrib/shortmathj/package.json
-2020/03/18 | 610949 | systems/win32/w32tex/ChangeLog
+2020/03/18 | 611022 | systems/win32/w32tex/ChangeLog
2020/03/18 | 610116 | systems/win32/miktex/tm/packages/biblatex-ext.tar.lzma
2020/03/18 | 596 | macros/latex/contrib/shortmathj/shortmathj-biblatex-mwe.tex
2020/03/18 | 579238 | macros/latex/contrib/nwejm/doc/nwejm-fr.pdf
@@ -470,6 +575,7 @@
2020/03/18 | 439221 | macros/latex/contrib/shortmathj/shortmathj.sty
2020/03/18 | 435404 | macros/latex/contrib/latexgit/latexgit.pdf
2020/03/18 | 405237 | systems/win32/miktex/tm/packages/limecv.tar.lzma
+2020/03/18 | 393157860 | systems/win32/w32tex/ltxpkgdocs.tar.xz
2020/03/18 | 384288 | systems/win32/miktex/tm/packages/gbt7714.tar.lzma
2020/03/18 | 3825 | macros/xetex/latex/langsci/README.md
2020/03/18 | 382101 | macros/latex/contrib/nwejm/doc/examples/issue.pdf
@@ -503,6 +609,7 @@
2020/03/18 | 172223 | systems/win32/miktex/tm/packages/biblatex-german-legal.tar.lzma
2020/03/18 | 17055 | macros/latex/contrib/latexgit/latexgit.dtx
2020/03/18 | 1683177 | systems/win32/miktex/tm/packages/quran.tar.lzma
+2020/03/18 | 1599104 | systems/win32/w32tex/pmx.tar.xz
2020/03/18 | 1596082 | systems/win32/miktex/tm/packages/milsymb.tar.lzma
2020/03/18 | 1537746 | support/pmx/Windows64bit/pmxab.exe
2020/03/18 | 139785888 | systems/win32/w32tex/context.tar.xz
@@ -522,7 +629,9 @@
2020/03/17 | 748123 | install/macros/latex/contrib/gzt.tds.zip
2020/03/17 | 671 | macros/latex/contrib/beamer-contrib/themes/hitszbeamer/Makefile
2020/03/17 | 659 | macros/latex/contrib/gzt/README.md
+2020/03/17 | 62385 | macros/luatex/optex/slides-bg.png
2020/03/17 | 530283 | macros/latex/contrib/gzt/doc/gzt-fr.pdf
+2020/03/17 | 512984 | macros/luatex/optex/op-ring.png
2020/03/17 | 4768 | macros/latex/contrib/beamer-contrib/themes/hitszbeamer/main.tex
2020/03/17 | 4520 | macros/xetex/latex/langsci/langsci-lgr.sty
2020/03/17 | 4139 | macros/latex/contrib/beamer-contrib/themes/hitszbeamer/README.md
@@ -861,6 +970,7 @@
2020/03/15 | 1170152 | macros/latex/contrib/nicematrix.zip
2020/03/15 | 11700 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def
2020/03/15 | 11663 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx
+2020/03/15 | 11532 | macros/luatex/optex/cite-bib.opm
2020/03/15 | 112383 | macros/luatex/latex/arabluatex/samples/al-Jahiz.pdf
2020/03/15 | 11126900 | systems/win32/w32tex/win64/xetex-w64.tar.xz
2020/03/15 | 1089911 | macros/xetex/latex/quran/tex/qurantext-en.translation.def
@@ -873,20 +983,14 @@
2020/03/14 | 846098 | systems/win32/miktex/tm/packages/tugboat.tar.lzma
2020/03/14 | 765968 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
2020/03/14 | 7640 | systems/doc/luatex/luatex-harfbuzz.tex
-2020/03/14 | 7024 | macros/luatex/generic/luatexko/ChangeLog
2020/03/14 | 68812 | systems/doc/luatex/luatex-math.tex
2020/03/14 | 67921 | macros/latex/contrib/els-cas-templates/cas-common.sty
-2020/03/14 | 66090 | macros/luatex/generic/luatexko/luatexko.lua
-2020/03/14 | 65092 | macros/luatex/optex/doc/optex-doc.tex
2020/03/14 | 629768 | macros/generic/schemata/schemata.pdf
2020/03/14 | 6134 | biblio/bibtex/contrib/gbt7714/README.md
2020/03/14 | 566652 | systems/win32/miktex/tm/packages/hep-paper.tar.lzma
-2020/03/14 | 5113 | macros/luatex/optex/optex.ini
2020/03/14 | 5012 | systems/doc/luatex/luatex-preamble.tex
2020/03/14 | 48178 | systems/doc/luatex/luatex-modifications.tex
2020/03/14 | 431641 | macros/latex/contrib/beamer-contrib/themes/hitszbeamer/figures/hitlogo-mask.jpg
-2020/03/14 | 421951 | macros/luatex/optex/op-ring.png
-2020/03/14 | 421951 | macros/luatex/optex/doc/op-ring.png
2020/03/14 | 42120 | systems/doc/luatex/luatex-fonts.tex
2020/03/14 | 4165 | macros/latex/contrib/els-cas-templates/cas-sc.cls
2020/03/14 | 416081 | systems/win32/miktex/tm/packages/thesis-gwu.tar.lzma
@@ -894,158 +998,34 @@
2020/03/14 | 3892 | macros/generic/schemata/README
2020/03/14 | 3887684 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
2020/03/14 | 3884552 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
-2020/03/14 | 3783 | macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
2020/03/14 | 375475 | biblio/bibtex/contrib/gbt7714.zip
-2020/03/14 | 3720 | macros/luatex/generic/luatexko/README
2020/03/14 | 36373 | macros/latex/contrib/draftwatermark/draftwatermark.dtx
-2020/03/14 | 361195 | macros/luatex/generic/luatexko.zip
2020/03/14 | 35672 | systems/doc/luatex/luatex-backend.tex
2020/03/14 | 35529 | systems/doc/luatex/luatex-callbacks.tex
2020/03/14 | 3492068 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
2020/03/14 | 3482372 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
2020/03/14 | 344970 | language/korean/kotex-oblivoir.zip
2020/03/14 | 344133 | biblio/bibtex/contrib/gbt7714/gbt7714.pdf
-2020/03/14 | 33845 | macros/luatex/optex/math-macros.opm
-2020/03/14 | 324950 | macros/luatex/generic/luatexko/luatexko-doc.pdf
2020/03/14 | 3231 | macros/latex/contrib/draftwatermark/draftwatermark.ins
-2020/03/14 | 31671 | macros/luatex/generic/luatexko/luatexko-doc.tex
2020/03/14 | 3124 | systems/doc/luatex/luatex.tex
2020/03/14 | 3124556 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
2020/03/14 | 3124504 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
-2020/03/14 | 30593 | macros/luatex/generic/luatexko/luatexko.sty
2020/03/14 | 301132 | systems/win32/miktex/tm/packages/acronym.tar.lzma
-2020/03/14 | 2947 | macros/luatex/optex/lists.opm
2020/03/14 | 274931 | systems/win32/miktex/tm/packages/unicode-data.tar.lzma
2020/03/14 | 2606636 | systems/win32/w32tex/dvitools-w32.tar.xz
2020/03/14 | 2338108 | systems/win32/w32tex/win64/dvitools-w64.tar.xz
2020/03/14 | 230610 | language/korean/kotex-oblivoir/doc/oblivoir-simpledoc.pdf
-2020/03/14 | 2275 | macros/luatex/optex/others.opm
2020/03/14 | 22158 | language/korean/kotex-oblivoir/ChangeLog
2020/03/14 | 2057388 | systems/win32/miktex/tm/packages/scholax.tar.lzma
-2020/03/14 | 19449 | macros/luatex/optex/parameters.opm
2020/03/14 | 193879 | macros/latex/contrib/draftwatermark.zip
2020/03/14 | 1895 | macros/latex/contrib/els-cas-templates/manifest.txt
-2020/03/14 | 1884 | macros/luatex/optex/opmac-rest.opm
2020/03/14 | 187652 | systems/doc/luatex/graphics/luaharfbuzz.pdf
2020/03/14 | 182386 | macros/latex/contrib/draftwatermark/draftwatermark.pdf
2020/03/14 | 1756287 | systems/doc/luatex/luatex.pdf
2020/03/14 | 171572 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal.zip
2020/03/14 | 1652 | macros/latex/contrib/els-cas-templates/README
-2020/03/14 | 16457 | macros/luatex/generic/luatexko/luatexko-normalize.lua
-2020/03/14 | 156310 | macros/luatex/optex/doc/optex-doc.pdf
2020/03/14 | 1550 | macros/latex/contrib/draftwatermark/README
-2020/03/14 | 15185 | macros/luatex/optex/sections.opm
2020/03/14 | 1356 | language/korean/kotex-oblivoir/README
-2020/03/14 | 12829 | macros/luatex/optex/unimath-codes.opm
2020/03/14 | 1278925 | macros/latex/contrib/els-cas-templates.zip
-2020/03/14 | 1248071 | macros/luatex/optex.zip
-2020/03/14 | 1189 | macros/luatex/optex/README
-2020/03/14 | 11330 | macros/luatex/optex/plain-macros.opm
2020/03/14 | 1102 | biblio/bibtex/contrib/gbt7714/gbt7714.ins
2020/03/14 | 106804 | biblio/bibtex/contrib/gbt7714/gbt7714.dtx
-2020/03/13 | 9895 | macros/luatex/optex/table.opm
-2020/03/13 | 9808 | dviware/dvisvgm/src/PsSpecialHandler.hpp
-2020/03/13 | 9354 | macros/luatex/optex/output.opm
-2020/03/13 | 8986 | dviware/dvisvgm/src/options.xml
-2020/03/13 | 8936 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/german-legal-book.bbx
-2020/03/13 | 890 | macros/latex/contrib/thesis-gwu/tex/methods.tex
-2020/03/13 | 8909 | macros/latex/contrib/acronym/CHANGES
-2020/03/13 | 87078 | systems/doc/dvipng/dvipng.html
-2020/03/13 | 8690 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/german-legal-book.cbx
-2020/03/13 | 86868 | dviware/dvisvgm/libs/xxHash/xxh3.h
-2020/03/13 | 8407 | dviware/dvisvgm/configure.ac
-2020/03/13 | 8394232 | systems/win32/w32tex/uptex-w32.tar.xz
-2020/03/13 | 81004 | macros/latex/contrib/thesis-gwu/figures/picard_yes.jpg
-2020/03/13 | 804 | dviware/dvisvgm/doc/generate-dvisvgm-sty.xsl
-2020/03/13 | 7644 | dviware/dvisvgm/src/CommandLine.hpp
-2020/03/13 | 73301 | macros/latex/contrib/acronym/acronym.dtx
-2020/03/13 | 6894 | dviware/dvisvgm/src/PSInterpreter.hpp
-2020/03/13 | 68784 | dviware/dvisvgm/libs/xxHash/xxhash.h
-2020/03/13 | 682138 | dviware/dvisvgm/configure
-2020/03/13 | 6783 | macros/latex/contrib/thesis-gwu/tex/intro-example.tex
-2020/03/13 | 66263 | dviware/dvisvgm/doc/dvisvgm.1
-2020/03/13 | 6580 | macros/latex/contrib/thesis-gwu/tex/frontmatter.tex
-2020/03/13 | 6551 | fonts/scholax/tex/scholax.sty
-2020/03/13 | 59872 | dviware/dvisvgm/doc/dvisvgm.txt.in
-2020/03/13 | 59734 | dviware/dvisvgm/src/Makefile.in
-2020/03/13 | 59640 | macros/latex/contrib/hep-paper/hep-paper.dtx
-2020/03/13 | 56818 | dviware/dvisvgm/aclocal.m4
-2020/03/13 | 558444 | macros/latex/contrib/hep-paper.zip
-2020/03/13 | 5568 | dviware/dvisvgm/tests/HashFunctionTest.cpp
-2020/03/13 | 5501 | dviware/dvisvgm/src/utility.hpp
-2020/03/13 | 535697 | macros/latex/contrib/hep-paper/hep-paper.pdf
-2020/03/13 | 510423 | macros/latex/contrib/thesis-gwu.zip
-2020/03/13 | 50325 | dviware/dvisvgm/src/PsSpecialHandler.cpp
-2020/03/13 | 49511 | macros/latex/contrib/thesis-gwu/thesis-gwu.cls
-2020/03/13 | 4937896 | systems/win32/w32tex/aleph-w32.tar.xz
-2020/03/13 | 473 | macros/latex/contrib/thesis-gwu/tex/results.tex
-2020/03/13 | 451 | macros/latex/contrib/thesis-gwu/thesis-sample.tex
-2020/03/13 | 439 | macros/latex/contrib/thesis-gwu/tex/intro.tex
-2020/03/13 | 438607 | systems/doc/dvips/dvips.html
-2020/03/13 | 4369 | dviware/dvisvgm/config.h.in
-2020/03/13 | 41264260 | systems/win32/w32tex/latex-dev.tar.xz
-2020/03/13 | 412092 | systems/doc/dvips/dvips.pdf
-2020/03/13 | 40554 | dviware/dvisvgm/libs/ff-woff/Makefile.in
-2020/03/13 | 402661 | dviware/dvisvgm/ChangeLog
-2020/03/13 | 402446 | systems/doc/kpathsea/kpathsea.pdf
-2020/03/13 | 375 | macros/latex/contrib/thesis-gwu/tex/results-example.tex
-2020/03/13 | 363626 | systems/doc/kpathsea/kpathsea.html
-2020/03/13 | 35349 | dviware/dvisvgm/NEWS
-2020/03/13 | 3527 | dviware/dvisvgm/doc/Makefile.am
-2020/03/13 | 348 | macros/latex/contrib/thesis-gwu/tex/prevmethods.tex
-2020/03/13 | 3436334 | install/fonts/scholax.tds.zip
-2020/03/13 | 3399 | macros/luatex/optex/op-demo.tex
-2020/03/13 | 338 | macros/latex/contrib/thesis-gwu/tex/discussion.tex
-2020/03/13 | 3385086 | fonts/scholax.zip
-2020/03/13 | 3257 | macros/luatex/optex/styles.opm
-2020/03/13 | 32422 | macros/latex/contrib/thesis-gwu/LICENSE.md
-2020/03/13 | 320 | macros/xetex/latex/langsci/langsci-textipa.sty
-2020/03/13 | 31488 | dviware/dvisvgm/libs/brotli/Makefile.in
-2020/03/13 | 31299 | macros/latex/contrib/thesis-gwu/figures/tumblr_lrvyd1GuNe1r3aueno1_400.jpg
-2020/03/13 | 302475 | macros/latex/contrib/thesis-gwu/thesis-sample.pdf
-2020/03/13 | 295540 | macros/latex/contrib/acronym.zip
-2020/03/13 | 27672 | dviware/dvisvgm/Makefile.in
-2020/03/13 | 275685 | macros/latex/contrib/acronym/acronym.pdf
-2020/03/13 | 25666 | macros/xetex/latex/langsci/langsci-unified.bbx
-2020/03/13 | 256010 | dviware/dvisvgm/tests/Makefile.in
-2020/03/13 | 2541 | macros/latex/contrib/thesis-gwu/thesis-bib.bib
-2020/03/13 | 24681 | dviware/dvisvgm/libs/woff2/Makefile.in
-2020/03/13 | 22166 | dviware/dvisvgm/src/optimizer/Makefile.in
-2020/03/13 | 220376 | systems/doc/dvipng/dvipng.pdf
-2020/03/13 | 2165 | fonts/scholax/README
-2020/03/13 | 21142 | dviware/dvisvgm/doc/Makefile.in
-2020/03/13 | 20804 | dviware/dvisvgm/libs/potrace/Makefile.in
-2020/03/13 | 20620688 | systems/win32/w32tex/pdftex-w32.tar.xz
-2020/03/13 | 20338 | dviware/dvisvgm/libs/clipper/Makefile.in
-2020/03/13 | 19936 | dviware/dvisvgm/libs/Makefile.in
-2020/03/13 | 19935 | macros/latex/contrib/thesis-gwu/tex/manual-ex.tex
-2020/03/13 | 1979 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/README.md
-2020/03/13 | 19650 | dviware/dvisvgm/libs/xxHash/Makefile.in
-2020/03/13 | 19545 | dviware/dvisvgm/libs/md5/Makefile.in
-2020/03/13 | 19051 | macros/latex/contrib/thesis-gwu/figures/data.png
-2020/03/13 | 1859 | dviware/dvisvgm/libs/xxHash/xxhash.c
-2020/03/13 | 17749 | dviware/dvisvgm/src/dvisvgm.cpp
-2020/03/13 | 16895 | macros/latex/contrib/thesis-gwu/figures/orbital_mechanics.png
-2020/03/13 | 16848 | dviware/dvisvgm/src/Matrix.cpp
-2020/03/13 | 16801 | dviware/dvisvgm/src/PSInterpreter.cpp
-2020/03/13 | 16765 | macros/latex/contrib/thesis-gwu/tex/manual.tex
-2020/03/13 | 161299 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/biblatex-german-legal.pdf
-2020/03/13 | 15597 | dviware/dvisvgm/src/XMLNode.cpp
-2020/03/13 | 15593 | dviware/dvisvgm/libs/variant/Makefile.in
-2020/03/13 | 14993 | macros/latex/contrib/biblatex-contrib/biblatex-german-legal/biblatex-german-legal.tex
-2020/03/13 | 13688 | dviware/dvisvgm/tests/data/Makefile.in
-2020/03/13 | 13474 | dviware/dvisvgm/m4/Makefile.in
-2020/03/13 | 13436 | macros/latex/contrib/hep-paper/bibliography.bib
-2020/03/13 | 1291 | macros/latex/contrib/thesis-gwu/tex/litreview.tex
-2020/03/13 | 12555 | macros/generic/schemata/schematest.tex
-2020/03/13 | 12276 | macros/latex/contrib/thesis-gwu/figures/file_extensions.png
-2020/03/13 | 11910 | dviware/dvisvgm/src/psdefs.cpp
-2020/03/13 | 1185 | macros/latex/contrib/thesis-gwu/tex/appendix.tex
-2020/03/13 | 1185 | macros/latex/contrib/thesis-gwu/tex/appendix-ex.tex
-2020/03/13 | 112 | macros/latex/contrib/thesis-gwu/tex/conclusion.tex
-2020/03/13 | 10731 | macros/xetex/latex/langsci/langsci-optional.sty
-2020/03/13 | 10318884 | systems/win32/w32tex/ptex-w32.tar.xz
-2020/03/13 | 10274 | macros/xetex/latex/langsci/langsci-forest-setup.sty
-2020/03/13 | 1014 | macros/latex/contrib/hep-paper/README.md
-2020/03/13 | 1011 | macros/latex/contrib/acronym/README
-2020/03/13 | 10011 | macros/latex/contrib/thesis-gwu/README.md
diff --git a/fonts/erewhon/README b/fonts/erewhon/README
index 12836d4c19..b39e03630e 100644
--- a/fonts/erewhon/README
+++ b/fonts/erewhon/README
@@ -2,7 +2,10 @@ This package provides LaTeX support files for the Erewhon fonts, made up of font
http://www.ctan.org/license/lppl1.3
for the details of that license.
-Current version: 1.102, 2019-11-13
+Current version: 1.103, 2020-03-19
+
+Changes in version 1.103
+Added Fourier Greek symbols to the opentype fonts.
Changes in version 1.102
Corrected date string in erewhon.sty.
diff --git a/fonts/erewhon/doc/OFL-FAQ.txt b/fonts/erewhon/doc/OFL-FAQ.txt
index edb55c6107..24854178ec 100644
--- a/fonts/erewhon/doc/OFL-FAQ.txt
+++ b/fonts/erewhon/doc/OFL-FAQ.txt
@@ -1,11 +1,12 @@
OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL)
-Version 1.1-update2 - 23 August 2010
+Version 1.1-update5 - April 2017
+The OFL FAQ is copyright (c) 2005-2017 SIL International.
(See http://scripts.sil.org/OFL for updates)
CONTENTS OF THIS FAQ
1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL
-2 USING OFL FONTS FOR WEB PAGES AND ONLINE WEBFONT SERVICES
+2 USING OFL FONTS FOR WEB PAGES AND ONLINE WEB FONT SERVICES
3 MODIFYING OFL-LICENSED FONTS
4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL
5 CHOOSING RESERVED FONT NAMES
@@ -15,14 +16,19 @@ CONTENTS OF THIS FAQ
9 ABOUT SIL INTERNATIONAL
APPENDIX A - FONTLOG EXAMPLE
-
1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL
-1.1 Can I use the fonts for a book or other print publication?
-Yes. You can mention the font and author in the book's colophon if you wish, but that is not required.
+1.1 Can I use the fonts for a book or other print publication, to create logos or other graphics or even to manufacture objects based on their outlines?
+Yes. You are very welcome to do so. Authors of fonts released under the OFL allow you to use their font software as such for any kind of design work. No additional license or permission is required, unlike with some other licenses. Some examples of these uses are: logos, posters, business cards, stationery, video titling, signage, t-shirts, personalised fabric, 3D-printed/laser-cut shapes, sculptures, rubber stamps, cookie cutters and lead type.
+
+1.1.1 Does that restrict the license or distribution of that artwork?
+No. You remain the author and copyright holder of that newly derived graphic or object. You are simply using an open font in the design process. It is only when you redistribute, bundle or modify the font itself that other conditions of the license have to be respected (see below for more details).
+
+1.1.2 Is any kind of acknowledgement required?
+No. Font authors may appreciate being mentioned in your artwork's acknowledgements alongside the name of the font, possibly with a link to their website, but that is not required.
-1.2 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions?
-Yes! Fonts licensed under the OFL can be freely included alongside other software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are typically aggregated with, not merged into, existing software, there is little need to be concerned about incompatibility with existing software licenses. You may also repackage the fonts and the accompanying components in a .rpm or .deb package and include them in distribution CD/DVDs and online repositories. (Also see section 5.9 about rebuilding from source.)
+1.2 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions and repositories?
+Yes! Fonts licensed under the OFL can be freely included alongside other software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are typically aggregated with, not merged into, existing software, there is little need to be concerned about incompatibility with existing software licenses. You may also repackage the fonts and the accompanying components in a .rpm or .deb package (or other similar package formats or installers) and include them in distribution CD/DVDs and online repositories. (Also see section 5.9 about rebuilding from source.)
1.3 I want to distribute the fonts with my program. Does this mean my program also has to be Free/Libre and Open Source Software?
No. Only the portions based on the Font Software are required to be released under the OFL. The intent of the license is to allow aggregation or bundling with software under restricted licensing as well.
@@ -40,7 +46,7 @@ The intent is to keep people from making money by simply redistributing the font
You are very welcome to share open fonts with friends, family and colleagues through removable media. Just remember to include the full font package, including any copyright notices and licensing information as available in OFL.txt. In the case where you sell the font, it has to come bundled with software.
1.8 Can I host the fonts on a web site for others to use?
-Yes, as long as you make the full font package available. In most cases it may be best to point users to the main site that distributes the Original Version so they always get the most recent stable and complete version. See also discussion of webfonts in Section 2.
+Yes, as long as you make the full font package available. In most cases it may be best to point users to the main site that distributes the Original Version so they always get the most recent stable and complete version. See also discussion of web fonts in Section 2.
1.9 Can I host the fonts on a server for use over our internal network?
Yes. If the fonts are transferred from the server to the client computer by means that allow them to be used even if the computer is no longer attached to the network, the full package (copyright notices, licensing information, etc.) should be included.
@@ -58,10 +64,10 @@ Yes, either in full or a subset. The restrictions regarding font modification an
No. Referencing or embedding an OFL font in any document does not change the license of the document itself. The requirement for fonts to remain under the OFL does not apply to any document created using the fonts and their derivatives. Similarly, creating any kind of graphic using a font under OFL does not make the resulting artwork subject to the OFL.
1.14 If OFL fonts are extracted from a document in which they are embedded (such as a PDF file), what can be done with them? Is this a risk to author(s)?
-The few utilities that can extract fonts embedded in a PDF will typically output limited amounts of outlines - not a complete font. To create a working font from this method is much more difficult and time consuming than finding the source of the original OFL font. So there is little chance that an OFL font would be extracted and redistributed inappropriately through this method. Even so, copyright laws address any misrepresentation of authorship. All Font Software released under the OFL and marked as such by the author(s) is intended to remain under this license regardless of the distribution method, and cannot be redistributed under any other license. We strongly discourage any font extraction - we recommend directly using the font sources instead - but if you extract font outlines from a document, please be considerate: use your common sense and respect the work of the author(s) and the licensing model.
+The few utilities that can extract fonts embedded in a PDF will typically output limited amounts of outlines - not a complete font. To create a working font from this method is much more difficult and time consuming than finding the source of the original OFL font. So there is little chance that an OFL font would be extracted and redistributed inappropriately through this method. Even so, copyright laws address any misrepresentation of authorship. All Font Software released under the OFL and marked as such by the author(s) is intended to remain under this license regardless of the distribution method, and cannot be redistributed under any other license. We strongly discourage any font extraction - we recommend directly using the font sources instead - but if you extract font outlines from a document, please be considerate: respect the work of the author(s) and the licensing model.
1.15 What about distributing fonts with a document? Within a compressed folder structure? Is it distribution, bundling or embedding?
-Certain document formats may allow the inclusion of an unmodified font within their file structure which consists of a compressed folder containing the various resources forming the document (such as pictures and thumbnails). Including fonts within such a structure is understood as being different from embedding but rather similar to bundling (or mere aggregation) which the license explicitly allows. In this case the font is conveyed unchanged whereas embedding a font usually transforms it from the original format. The OFL does not allow anyone to extract the font from such a structure to then redistribute it under another license. The explicit permission to redistribute and embed does not cancel the requirement for the Font Software to remain under the license chosen by its author(s).
+Certain document formats may allow the inclusion of an unmodified font within their file structure which may consist of a compressed folder containing the various resources forming the document (such as pictures and thumbnails). Including fonts within such a structure is understood as being different from embedding but rather similar to bundling (or mere aggregation) which the license explicitly allows. In this case the font is conveyed unchanged whereas embedding a font usually transforms it from the original format. The OFL does not allow anyone to extract the font from such a structure to then redistribute it under another license. The explicit permission to redistribute and embed does not cancel the requirement for the Font Software to remain under the license chosen by its author(s). Even if the font travels inside the document as one of its assets, it should not lose its authorship information and licensing.
1.16 What about ebooks shipping with open fonts?
The requirements differ depending on whether the fonts are linked, embedded or distributed (bundled or aggregated). Some ebook formats use web technologies to do font linking via @font-face, others are designed for font embedding, some use fonts distributed with the document or reading software, and a few rely solely on the fonts already present on the target system. The license requirements depend on the type of inclusion as discussed in 1.15.
@@ -70,19 +76,36 @@ The requirements differ depending on whether the fonts are linked, embedded or d
Yes, but these issues are out-of-scope for the OFL. The license itself neither encourages their use nor prohibits them since such mechanisms are not implemented in the components of the Font Software but through external software. Such restrictions are put in place for many different purposes corresponding to various usage scenarios. One common example is to limit potentially dangerous cross-site scripting attacks. However, in the spirit of libre/open fonts and unrestricted writing systems, we strongly encourage open sharing and reuse of OFL fonts, and the establishment of an environment where such restrictions are unnecessary. Note that whether you wish to use such mechanisms or you prefer not to, you must still abide by the rules set forth by the OFL when using fonts released by their authors under this license. Derivative fonts must be licensed under the OFL, even if they are part of a service for which you charge fees and/or for which access to source code is restricted. You may not sell the fonts on their own - they must be part of a larger software package, bundle or subscription plan. For example, even if the OFL font is distributed in a software package or via an online service using a DRM mechanism, the user would still have the right to extract that font, use, study, modify and redistribute it under the OFL.
1.18 I've come across a font released under the OFL. How can I easily get more information about the Original Version? How can I know where it stands compared to the Original Version or other Modified Versions?
-Consult the copyright statement(s) in the license for ways to contact the original authors. Consult the FONTLOG for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgement section. Please consider using the Original Versions of the fonts whenever possible.
+Consult the copyright statement(s) in the license for ways to contact the original authors. Consult the FONTLOG (see section 6 for more details and examples) for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgement section. Please consider using the Original Versions of the fonts whenever possible.
-1.19 What do you mean in condition 4? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement?
+1.19 What do you mean in condition 4 of the OFL's permissions and conditions? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement?
The intent is that the goodwill and reputation of the author(s) should not be used in a way that makes it sound like the original author(s) endorse or approve of a specific Modified Version or software bundle. For example, it would not be right to advertise a word processor by naming the author(s) in a listing of software features, or to promote a Modified Version on a web site by saying "designed by ...". However, it would be appropriate to acknowledge the author(s) if your software package has a list of people who deserve thanks. We realize that this can seem to be a grey area, but the standard used to judge an acknowledgement is that if the acknowledgement benefits the author(s) it is allowed, but if it primarily benefits other parties, or could reflect poorly on the author(s), then it is not.
+1.20 I'm writing a small app for mobile platforms, do I need to include the whole package?
+If you bundle a font under the OFL with your mobile app you must comply with the terms of the license. At a minimum you must include the copyright statement, the license notice and the license text. A mention of this information in your About box or Changelog, with a link to where the font package is from, is good practice, and the extra space needed to carry these items is very small. You do not, however, need to include the full contents of the font package - only the fonts you use and the copyright and license that apply to them. For example, if you only use the regular weight in your app, you do not need to include the italic and bold versions.
+
+1.21 What about including OFL fonts by default in my firmware or dedicated operating system?
+Many such systems are restricted and turned into appliances so that users cannot study or modify them. Using open fonts to increase quality and language coverage is a great idea, but you need to be aware that if there is a way for users to extract fonts you cannot legally prevent them from doing that. The fonts themselves, including any changes you make to them, must be distributed under the OFL even if your firmware has a more restrictive license. If you do transform the fonts and change their formats when you include them in your firmware you must respect any names reserved by the font authors via the RFN mechanism and pick your own font name. Alternatively if you directly add a font under the OFL to the font folder of your firmware without modifying or optimizing it you are simply bundling the font like with any other software collection, and do not need to make any further changes.
+
+1.22 Can I make and publish CMS themes or templates that use OFL fonts? Can I include the fonts themselves in the themes or templates? Can I sell the whole package?
+Yes, you are very welcome to integrate open fonts into themes and templates for your preferred CMS and make them more widely available. Remember that you can only sell the fonts and your CMS add-on as part of a software bundle. (See 1.4 for details and examples about selling bundles).
+
+1.23 Can OFL fonts be included in services that deliver fonts to the desktop from remote repositories? Even if they contain both OFL and non-OFL fonts?
+Yes. Some foundries have set up services to deliver fonts to subscribers directly to desktops from their online repositories; similarly, plugins are available to preview and use fonts directly in your design tool or publishing suite. These services may mix open and restricted fonts in the same channel, however they should make a clear distinction between them to users. These services should also not hinder users (such as through DRM or obfuscation mechanisms) from extracting and using the OFL fonts in other environments, or continuing to use OFL fonts after subscription terms have ended, as those uses are specifically allowed by the OFL.
-2 USING OFL FONTS FOR WEBPAGES AND ONLINE WEBFONT SERVICES
+1.24 Can services that provide or distribute OFL fonts restrict my use of them?
+No. The terms of use of such services cannot replace or restrict the terms of the OFL, as that would be the same as distributing the fonts under a different license, which is not allowed. You are still entitled to use, modify and redistribute them as the original authors have intended outside of the sole control of that particular distribution channel. Note, however, that the fonts provided by these services may differ from the Original Versions.
+
+
+2 USING OFL FONTS FOR WEBPAGES AND ONLINE WEB FONT SERVICES
+
+NOTE: This section often refers to a separate paper on 'Web Fonts & RFNs'. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs
2.1 Can I make webpages using these fonts?
-Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended. Your three best options:
+Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended. Your three best options are:
- referring directly in your stylesheet to open fonts which may be available on the user's system
- providing links to download the full package of the font - either from your own website or from elsewhere - so users can install it themselves
-- using @font-face to distribute the font directly to browsers. This is recommended and explicitly allowed by the licensing model because it is distribution. The font file itself is distributed with other components of the webpage. It is not embedded in the webpage but referenced through a web address which will cause the browser to retrieve and use the corresponding font to render the webpage (see 1.11 and 1.15 for details related to embedding fonts into documents). As you take advantage of the @font-face cross-platform standard, be aware that webfonts are often tuned for a web environment and not intended for installation and use outside a browser. The reasons in favour of using webfonts are to allow design of dynamic text elements instead of static graphics, to make it easier for content to be localized and translated, indexed and searched, and all this with cross-platform open standards without depending on restricted extensions or plugins. You should check the CSS cascade (the order in which fonts are being called or delivered to your users) when testing.
+- using @font-face to distribute the font directly to browsers. This is recommended and explicitly allowed by the licensing model because it is distribution. The font file itself is distributed with other components of the webpage. It is not embedded in the webpage but referenced through a web address which will cause the browser to retrieve and use the corresponding font to render the webpage (see 1.11 and 1.15 for details related to embedding fonts into documents). As you take advantage of the @font-face cross-platform standard, be aware that web fonts are often tuned for a web environment and not intended for installation and use outside a browser. The reasons in favour of using web fonts are to allow design of dynamic text elements instead of static graphics, to make it easier for content to be localized and translated, indexed and searched, and all this with cross-platform open standards without depending on restricted extensions or plugins. You should check the CSS cascade (the order in which fonts are being called or delivered to your users) when testing.
2.2 Can I make and use WOFF (Web Open Font Format) versions of OFL fonts?
Yes, but you need to be careful. A change in font format normally is considered modification, and Reserved Font Names (RFNs) cannot be used. Because of the design of the WOFF format, however, it is possible to create a WOFF version that is not considered modification, and so would not require a name change. You are allowed to create, use and distribute a WOFF version of an OFL font without changing the font name, but only if:
@@ -94,28 +117,52 @@ If the original font data or metadata is changed, or the WOFF-specific metadata
Please note that most WOFF conversion tools and online services do not meet the two requirements listed above, and so their output must be considered a Modified Version. So be very careful and check to be sure that the tool or service you're using is compressing unchanged data and completely and accurately reflecting the original font metadata.
-2.3 What about other webfont formats such as EOT/EOTLite/CWT/etc.?
-In most cases these formats alter the original font data more than WOFF, and do not completely support appropriate metadata, so their use must be considered modification and RFNs may not be used.
+2.3 What about other web font formats such as EOT/EOTLite/CWT/etc.?
+In most cases these formats alter the original font data more than WOFF, and do not completely support appropriate metadata, so their use must be considered modification and RFNs may not be used. However, there may be certain formats or usage scenarios that may allow the use of RFNs. See http://scripts.sil.org/OFL_web_fonts_and_RFNs
+
+2.4 Can I make OFL fonts available through web font online services?
+Yes, you are welcome to include OFL fonts in online web font services as long as you properly meet all the conditions of the license. The origin and open status of the font should be clear among the other fonts you are hosting. Authorship, copyright notices and license information must be sufficiently visible to your users or subscribers so they know where the font comes from and the rights granted by the author(s). Make sure the font file contains the needed copyright notice(s) and licensing information in its metadata. Please double-check the accuracy of every field to prevent contradictory information. Other font formats, including EOT/EOTLite/CWT and superior alternatives like WOFF, already provide fields for this information. Remember that if you modify the font within your library or convert it to another format for any reason the OFL restrictions apply and you need to change the names accordingly. Please respect the author's wishes as expressed in the OFL and do not misrepresent original designers and their work. Don't lump quality open fonts together with dubious freeware or public domain fonts. Consider how you can best work with the original designers and foundries, support their efforts and generate goodwill that will benefit your service. (See 1.17 for details related to URL-based access restrictions methods or DRM mechanisms).
+
+2.5 Some web font formats and services provide ways of "optimizing" the font for a particular website or web application; is that allowed?
+Yes, it is permitted, but remember that these optimized versions are Modified Versions and so must follow OFL requirements like appropriate renaming. Also you need to bear in mind the other important parameters beyond compression, speed and responsiveness: you need to consider the audience of your particular website or web application, as choosing some optimization parameters may turn out to be less than ideal for them. Subsetting by removing certain glyphs or features may seriously limit functionality of the font in various languages that your users expect. It may also introduce degradation of quality in the rendering or specific bugs on the various target platforms compared to the original font from upstream. In other words, remember that one person's optimized font may be another person's missing feature. Various advanced typographic features (OpenType, Graphite or AAT) are also available through CSS and may provide the desired effects without the need to modify the font.
+
+2.6 Is subsetting a web font considered modification?
+Yes. Removing any parts of the font when delivering a web font to a browser, including unused glyphs and smart font code, is considered modification. This is permitted by the OFL but would not normally allow the use of RFNs. Some newer subsetting technologies may be able to subset in a way that allows users to effectively have access to the complete font, including smart font behaviour. See 2.8 and http://scripts.sil.org/OFL_web_fonts_and_RFNs
-2.4 Can I make OFL fonts available through webfont online services?
-Yes, you are welcome to include OFL fonts in online webfont services as long as you properly meet all the conditions of the license. The origin and open status of the font should be clear among the other fonts you are hosting. Authorship, copyright notices and license information must be sufficiently visible to your users or subscribers so they know where the font comes from and the rights granted by the author(s). Make sure the font file contains the needed copyright notice(s) and licensing information in its metadata. Please double-check the accuracy of every field to prevent contradictory information. Other font formats, including EOT/EOTLite/CWT and superior alternatives like WOFF, already provide fields for this information. Remember that if you modify the font within your library or convert it to another format for any reason the OFL restrictions apply and you need to change the names accordingly. Please respect the author's wishes as expressed in the OFL and do not misrepresent original designers and their work. Don't lump quality open fonts together with dubious freeware or public domain fonts. Consider how you can best work with the original designers and foundries, support their efforts and generate goodwill that will benefit your service. (See 1.17 for details related to URL-based access restrictions methods or DRM mechanisms).
+2.7 Are there any situations in which a modified web font could use RFNs?
+Yes. If a web font is optimized only in ways that preserve Functional Equivalence (see 2.8), then it may use RFNs, as it reasonably represents the Original Version and respects the intentions of the author(s) and the main purposes of the RFN mechanism (avoids collisions, protects authors, minimizes support, encourages derivatives). However this is technically very difficult and often impractical, so a much better scenario is for the web font service or provider to sign a separate agreement with the author(s) that allows the use of RFNs for Modified Versions.
-2.5 Can I make and publish CMS themes or templates that use OFL fonts? Can I include the fonts themselves in the themes or templates? Can I sell the whole package?
-Yes, you are very welcome to integrate open fonts into themes and templates for your preferred CMS and make them more widely available. Be aware that you can only sell the fonts and your CMS add-on as part of a software bundle. (See 1.4 for details and examples about selling bundles).
+2.8 How do you know if an optimization to a web font preserves Functional Equivalence?
+Functional Equivalence is described in full in the 'Web fonts and RFNs' paper at http://scripts.sil.org/OFL_web_fonts_and_RFNs, in general, an optimized font is deemed to be Functionally Equivalent (FE) to the Original Version if it:
-2.6 Some webfont formats and services provide ways of "optimising" the font for a particular website or web application; is that allowed?
-Yes, it is permitted, but remember that these optimised versions are Modified Versions and so must follow OFL requirements like appropriate renaming. Also you need to bear in mind the other important parameters beyond compression, speed and responsiveness: you need to consider the audience of your particular website or web application, as choosing some optimisation parameters may turn out to be less than ideal for them. Subsetting by removing certain glyphs or features may seriously limit functionality of the font in various languages used by your users. It may also introduce degradation of quality in the rendering or specific bugs on the various platforms compared to the original font. In other words, remember that one person's optimised font may be another person's missing feature. Various advanced typographic features are also available through CSS and may provide the desired effects without the need to modify the font.
+- Supports the same full character inventory. If a character can be properly displayed using the Original Version, then that same character, encoded correctly on a web page, will display properly.
+- Provides the same smart font behavior. Any dynamic shaping behavior that works with the Original Version should work when optimized, unless the browser or environment does not support it. There does not need to be guaranteed support in the client, but there should be no forced degradation of smart font or shaping behavior, such as the removal or obfuscation of OpenType, Graphite or AAT tables.
+- Presents text with no obvious degradation in visual quality. The lettershapes should be equally (or more) readable, within limits of the rendering platform.
+- Preserves original author, project and license metadata. At a minimum, this should include: Copyright and authorship; The license as stated in the Original Version, whether that is the full text of the OFL or a link to the web version; Any RFN declarations; Information already present in the font or documentation that points back to the Original Version, such as a link to the project or the author's website.
+
+If an optimized font meets these requirements, and so is considered to be FE, then it's very likely that the original author would feel that the optimized font is a good and reasonable equivalent. If it falls short of any of these requirements, the optimized font does not reasonably represent the Original Version, and so should be considered to be a Modified Version. Like other Modified Versions, it would not be allowed to use any RFNs and you simply need to pick your own font name.
+
+2.9 Isn't use of web fonts another form of embedding?
+No. Unlike embedded fonts in a PDF, web fonts are not an integrated part of the document itself. They are not specific to a single document and are often applied to thousands of documents around the world. The font data is not stored alongside the document data and often originates from a different location. The ease by which the web fonts used by a document may be identified and downloaded for desktop use demonstrates that they are philosophically and technically separate from the web pages that specify them. See http://scripts.sil.org/OFL_web_fonts_and_RFNs
+
+2.10 So would it be better to not use RFNs at all if you want your font to be distributed by a web fonts service?
+No. Although the OFL does not require authors to use RFNs, the RFN mechanism is an important part of the OFL model and completely compatible with web font services. If that web font service modifies the fonts, then the best solution is to sign a separate agreement for the use of any RFNs. It is perfectly valid for an author to not declare any RFNs, but before they do so they need to fully understand the benefits they are giving up, and the overall negative effect of allowing many different versions bearing the same name to be widely distributed. As a result, we don't generally recommend it.
+
+2.11 What should an agreement for the use of RFNs say? Are there any examples?
+There is no prescribed format for this agreement, as legal systems vary, and no recommended examples. Authors may wish to add specific clauses to further restrict use, require author review of Modified Versions, establish user support mechanisms or provide terms for ending the agreement. Such agreements are usually not public, and apply only to the main parties. However, it would be very beneficial for web font services to clearly state when they have established such agreements, so that the public understands clearly that their service is operating appropriately.
+
+See the separate paper on 'Web Fonts & RFNs' for in-depth discussion of issues related to the use of RFNs for web fonts. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs
3 MODIFYING OFL-LICENSED FONTS
3.1 Can I change the fonts? Are there any limitations to what things I can and cannot change?
-You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could put additional information into it that covers your contribution.
+You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could put additional information into it that covers your contribution. See the placeholders in the OFL header template for recommendations on where to add your own statements. (Remember that, when authors have reserved names via the RFN mechanism, you need to change the internal names of the font to your own font name when making your modified version even if it is just a small change.)
3.2 I have a font that needs a few extra glyphs - can I take them from an OFL licensed font and copy them into mine?
Yes, but if you distribute that font to others it must be under the OFL, and include the information mentioned in condition 2 of the license.
-3.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs and/or OpenType/Graphite code, can I sell the enhanced font?
+3.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs or OpenType/Graphite/AAT code, can I sell the enhanced font?
Not by itself. Derivative fonts must be released under the OFL and cannot be sold by themselves. It is permitted, however, to include them in a larger software package (such as text editors, office suites or operating systems), even if the larger package is sold. In that case, you are strongly encouraged, but not required, to also make that derived font easily and freely available outside of the larger package.
3.4 Can I pay someone to enhance the fonts for my use and distribution?
@@ -128,7 +175,10 @@ No. If you redistribute a Modified Version of the font it must be under the OFL.
No, but please consider sharing your improvements with others. You may find that you receive in return more than what you gave.
3.7 If a trademark is claimed in the OFL font, does that trademark need to remain in modified fonts?
-Yes, any trademark notices must remain in any derivative fonts to respect trademark laws, but you may add any additional trademarks you claim, officially registered or not. For example if an OFL font called "Foo" contains a notice that "Foo is a trademark of Acme", then if you rename the font to "Bar" when creating a Modified Version, the new trademark notice could say "Foo is a trademark of Acme Inc. - Bar is a trademark of Roadrunner Technologies Ltd.". Trademarks work alongside the OFL and are not subject to the terms of the licensing agreement. Please refer to the appropriate trademark laws.
+Yes. Any trademark notices must remain in any derivative fonts to respect trademark laws, but you may add any additional trademarks you claim, officially registered or not. For example if an OFL font called "Foo" contains a notice that "Foo is a trademark of Acme", then if you rename the font to "Bar" when creating a Modified Version, the new trademark notice could say "Foo is a trademark of Acme Inc. - Bar is a trademark of Roadrunner Technologies Ltd.". Trademarks work alongside the OFL and are not subject to the terms of the licensing agreement. The OFL does not grant any rights under trademark law. Bear in mind that trademark law varies from country to country and that there are no international trademark conventions as there are for copyright. You may need to significantly invest in registering and defending a trademark for it to remain valid in the countries you are interested in. This may be costly for an individual independent designer.
+
+3.8 If I commit changes to a font (or publish a branch in a DVCS) as part of a public open source software project, do I have to change the internal font names?
+Only if there are declared RFNs. Making a public commit or publishing a public branch is effectively redistributing your modifications, so any change to the font will require that you do not use the RFNs. Even if there are no RFNs, it may be useful to change the name or add a suffix indicating that a particular version of the font is still in development and not released yet. This will clearly indicate to users and fellow designers that this particular font is not ready for release yet. See section 5 for more details.
4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL
@@ -139,35 +189,37 @@ Yes! We heartily encourage everyone to use the OFL to distribute their own origi
4.2 What do I have to do to apply the OFL to my font?
If you want to release your fonts under the OFL, we recommend you do the following:
-4.2.1 Put your copyright and Reserved Font Names information at the beginning of the main OFL.txt file in place of the dedicated placeholders. Include this file in your release package.
+4.2.1 Put your copyright and Reserved Font Names information at the beginning of the main OFL.txt file in place of the dedicated placeholders (marked with the <> characters). Include this file in your release package.
-4.2.2 Put your copyright and the OFL text with Reserved Font Names into your font files (the copyright and license fields). A link to the OFL text on the OFL web site is an acceptable (but not recommended) alternative. Also add this information to any other components (build scripts, glyph databases, documentation, test files, etc). Depending on the format of your fonts and sources, you can use template human-readable headers or machine-readable metadata.
+4.2.2 Put your copyright and the OFL text with your chosen Reserved Font Name(s) into your font files (the copyright and license fields). A link to the OFL text on the OFL web site is an acceptable (but not recommended) alternative. Also add this information to any other components (build scripts, glyph databases, documentation, test files, etc). Accurate metadata in your font files is beneficial to you as an increasing number of applications are exposing this information to the user. For example, clickable links can bring users back to your website and let them know about other work you have done or services you provide. Depending on the format of your fonts and sources, you can use template human-readable headers or machine-readable metadata. You should also double-check that there is no conflicting metadata in the font itself contradicting the license, such as the fstype bits in the os2 table or fields in the name table.
-4.2.3 Write an initial FONTLOG.txt for your font and include it in the release package.
+4.2.3 Write an initial FONTLOG.txt for your font and include it in the release package (see Section 6 and Appendix A for details including a template).
-4.2.4 Include the relevant practical documentation on the license by including the OFL-FAQ.txt in your package.
+4.2.4 Include the relevant practical documentation on the license by adding the current OFL-FAQ.txt file in your package.
+
+4.2.5 If you wish you can use the OFL graphics (http://scripts.sil.org/OFL_logo) on your website.
4.3 Will you make my font OFL for me?
-We won't do the work for you. We can, however, try to answer your questions, unfortunately we do not have the resources to review and check your font packages for correct use of the OFL.
+We won't do the work for you. We can, however, try to answer your questions, unfortunately we do not have the resources to review and check your font packages for correct use of the OFL. We recommend you turn to designers, foundries or consulting companies with experience in doing open font design to provide this service to you.
4.4 Will you distribute my OFL font for me?
-No, although if the font is of sufficient quality and general interest we may include a link to it on our partial list of OFL fonts on the OFL web site. You may wish to consider other open font catalogs or hosting services, such as the Unifont Font Guide (http://unifont.org/fontguide), The League of Movable Type (http://theleagueofmovabletype.com), Kernest (http://kernest.com/) or the Open Font Library (http://openfontlibrary.org/), which despite the name has no direct relationship to the OFL or SIL. We do not endorse any particular catalog or hosting service - it is your responsibility to determine if the service is right for you.
+No, although if the font is of sufficient quality and general interest we may include a link to it on our partial list of OFL fonts on the OFL web site. You may wish to consider other open font catalogs or hosting services, such as the Unifont Font Guide (http://unifont.org/fontguide), The League of Movable Type (http://theleagueofmovabletype.com) or the Open Font Library (http://openfontlibrary.org/), which despite the name has no direct relationship to the OFL or SIL. We do not endorse any particular catalog or hosting service - it is your responsibility to determine if the service is right for you and if it treats authors with fairness.
4.5 Why should I use the OFL for my fonts?
-- to meet needs for fonts that can be modified to support minority languages
+- to meet needs for fonts that can be modified to support lesser-known languages
- to provide a legal and clear way for people to respect your work but still use it (and reduce piracy)
- to involve others in your font project
- to enable your fonts to be expanded with new weights and improved writing system/language support
-- to allow more technical font developers to add features to your design (such as OpenType and Graphite support)
+- to allow more technical font developers to add features to your design (such as OpenType, Graphite or AAT support)
- to renew the life of an old font lying on your hard drive with no business model
- to allow your font to be included in Libre Software operating systems like Ubuntu
- to give your font world status and wide, unrestricted distribution
- to educate students about quality typeface and font design
- to expand your test base and get more useful feedback
- to extend your reach to new markets when users see your metadata and go to your website
-- to get your font more easily into one of the webfont online services
+- to get your font more easily into one of the web font online services
- to attract attention for your commercial fonts
-- to make money through webfont services
+- to make money through web font services
- to make money by bundling fonts with applications
- to make money adjusting and extending existing open fonts
- to get a better chance that foundations/NGOs/charities/companies who commission fonts will pick you
@@ -190,28 +242,28 @@ Yes, this applies to the font menu name and other mechanisms that specify a font
You may not use individual words from the Reserved Font Names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if "Foobar" was a Reserved Font Name, you would be allowed to use "Foo" or "bar", although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute.
5.5 So what should I, as an author, identify as Reserved Font Names?
-Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called "Foobar Sans" would declare "Foobar" as a Reserved Font Name, but not "Sans", as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words. A font called "Flowing River" should have Reserved Font Names "Flowing" and "River", not "Flowing River". You also need to be very careful about reserving font names which are already linked to trademarks (whether registered or not) which you do not own.
+Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called "Foobar Sans" would declare "Foobar" as a Reserved Font Name, but not "Sans", as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words for simplicity and legibility. A font called "Flowing River" should have Reserved Font Names "Flowing" and "River", not "Flowing River". You also need to be very careful about reserving font names which are already linked to trademarks (whether registered or not) which you do not own.
5.6 Do I, as an author, have to identify any Reserved Font Names?
-No, but we strongly encourage you to do so. This is to avoid confusion between your work and Modified Versions.
+No. RFNs are optional and not required, but we encourage you to use them. This is primarily to avoid confusion between your work and Modified Versions. As an author you can release a font under the OFL and not declare any Reserved Font Names. There may be situations where you find that using no RFNs and letting your font be changed and modified - including any kind of modification - without having to change the original name is desirable. However you need to be fully aware of the consequences. There will be no direct way for end-users and other designers to distinguish your Original Version from many Modified Versions that may be created. You have to trust whoever is making the changes and the optimizations to not introduce problematic changes. The RFNs you choose for your own creation have value to you as an author because they allow you to maintain artistic integrity and keep some control over the distribution channel to your end-users. For discussion of RFNs and web fonts see section 2.
5.7 Are any names (such as the main font name) reserved by default?
No. That is a change to the license as of version 1.1. If you want any names to be Reserved Font Names, they must be specified after the copyright statement(s).
5.8 Is there any situation in which I can use Reserved Font Names for a Modified Version?
-The Copyright Holder(s) can give certain trusted parties the right to use any of the Reserved Font Names through separate written agreements. For example, even if "Foobar" is a RFN, you could write up an agreement to give company "XYZ" the right to distribute a modified version with a name that includes "Foobar". This allows for freedom without confusion.
+The Copyright Holder(s) can give certain trusted parties the right to use any of the Reserved Font Names through separate written agreements. For example, even if "Foobar" is a RFN, you could write up an agreement to give company "XYZ" the right to distribute a modified version with a name that includes "Foobar". This allows for freedom without confusion. The existence of such an agreement should be made as clear as possible to downstream users and designers in the distribution package and the relevant documentation. They need to know if they are a party to the agreement or not and what they are practically allowed to do or not even if all the details of the agreement are not public.
5.9 Do font rebuilds require a name change? Do I have to change the name of the font when my packaging workflow includes a full rebuild from source?
-Yes, all rebuilds which change the font data and the smart code are Modified Versions and the requirements of the OFL apply: you need to respect what the Author(s) have chosen in terms of Reserved Font Names. However if a package (or installer) is simply a wrapper or a compressed structure around the final font - leaving them intact on the inside - then no name change is required. Please get in touch with the author(s) and copyright holder(s) to inquire about the presence of font sources beyond the final font file(s) and the recommended build path. That build path may very well be non-trivial and hard to reproduce accurately by the maintainer. If a full font build path is made available by the upstream author(s) please be aware that any regressions and changes you may introduce when doing a rebuild for packaging purposes is your responsibility as a package maintainer since you are effectively creating a separate branch. You should make it very clear to your users that your rebuilt version is not the canonical one from upstream.
+Yes, all rebuilds which change the font data and the smart code are Modified Versions and the requirements of the OFL apply: you need to respect what the Author(s) have chosen in terms of Reserved Font Names. However if a package (or installer) is simply a wrapper or a compressed structure around the final font - leaving them intact on the inside - then no name change is required. Please get in touch with the author(s) and copyright holder(s) to inquire about the presence of font sources beyond the final font file(s) and the recommended build path. That build path may very well be non-trivial and hard to reproduce accurately by the maintainer. If a full font build path is made available by the upstream author(s) please be aware that any regressions and changes you may introduce when doing a rebuild for packaging purposes is your own responsibility as a package maintainer since you are effectively creating a separate branch. You should make it very clear to your users that your rebuilt version is not the canonical one from upstream.
5.10 Can I add other Reserved Font Names when making a derivative font?
-Yes. List your additional Reserved Font Names after your additional copyright statement, as indicated with example placeholders at the top of the OFL.txt file. Be sure you do not remove any exiting RFNs but only add your own.
+Yes. List your additional Reserved Font Names after your additional copyright statement, as indicated with example placeholders at the top of the OFL.txt file. Be sure you do not remove any existing RFNs but only add your own. RFN statements should be placed next to the copyright statement of the relevant author as indicated in the OFL.txt template to make them visible to designers wishing to make their separate version.
6 ABOUT THE FONTLOG
6.1 What is this FONTLOG thing exactly?
-It has three purposes: 1) to provide basic information on the font to users and other developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge authors and other contributors. Please use it!
+It has three purposes: 1) to provide basic information on the font to users and other designers and developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge authors and other contributors. Please use it!
6.2 Is the FONTLOG required?
It is not a requirement of the license, but we strongly recommend you have one.
@@ -239,7 +291,7 @@ In many cases, yes. It is common for OFL fonts to be developed by a team of peop
It would benefit many people if you contributed back in response to what you've received. Your contributions and improvements to the fonts and other components could be a tremendous help and would encourage others to contribute as well and 'give back'. You will then benefit from other people's contributions as well. Sometimes maintaining your own separate version takes more effort than merging back with the original. Be aware that any contributions, however, must be either your own original creation or work that you own, and you may be asked to affirm that clearly when you contribute.
7.3 I've made some very nice improvements to the font. Will you consider adopting them and putting them into future Original Versions?
-Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes - the use of smart source revision control systems like subversion, svk, mercurial, git or bzr is a good idea. Please follow the recommendations given by the author(s) in terms of preferred source formats and configuration parameters for sending contributions. If this is not indicated in a FONTLOG or other documentation of the font, consider asking them directly. Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting. Keep in mind that some kinds of changes (esp. hinting) may be technically difficult to integrate.
+Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes - the use of smart source revision control systems like subversion, mercurial, git or bzr is a good idea. Please follow the recommendations given by the author(s) in terms of preferred source formats and configuration parameters for sending contributions. If this is not indicated in a FONTLOG or other documentation of the font, consider asking them directly. Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting. Keep in mind that some kinds of changes (esp. hinting) may be technically difficult to integrate.
7.4 How can I financially support the development of OFL fonts?
It is likely that most authors of OFL fonts would accept financial contributions - contact them for instructions on how to do this. Such contributions would support future development. You can also pay for others to enhance the fonts and contribute the results back to the original authors for inclusion in the Original Version.
@@ -251,15 +303,22 @@ It is likely that most authors of OFL fonts would accept financial contributions
Version 1.1 is the first minor revision of the OFL. We are confident that version 1.1 will meet most needs, but are open to future improvements. Any revisions would be for future font releases, and previously existing licenses would remain in effect. No retroactive changes are possible, although the Copyright Holder(s) can re-release the font under a revised OFL. All versions will be available on our web site: http://scripts.sil.org/OFL.
8.2 Does this license restrict the rights of the Copyright Holder(s)?
-No. The Copyright Holder(s) still retain(s) all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a 'basic' version of their font under the OFL, but sell a restricted 'enhanced' version. Only the Copyright Holder(s) can do this.
+No. The Copyright Holder(s) still retain(s) all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a 'basic' version of their font under the OFL, but sell a restricted 'enhanced' version under a different license. They may also choose to release the same font under both the OFL and some other license. Only the Copyright Holder(s) can do this, and doing so does not change the terms of the OFL as it applies to that font.
8.3 Is the OFL a contract or a license?
-The OFL is a license and not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license.
+The OFL is a worldwide license based on international copyright agreements and conventions. It is not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license.
8.4 I really like the terms of the OFL, but want to change it a little. Am I allowed to take ideas and actual wording from the OFL and put them into my own custom license for distributing my fonts?
-We strongly recommend against creating your very own unique open licensing model. Using a modified or derivative license will likely cut you off - along with the font(s) under that license - from the community of designers using the OFL, potentially expose you and your users to legal liabilities, and possibly put your work and rights at risk. The OFL went though a community and legal review process that took years of effort, and that review is only applicable to an unmodified OFL. The text of the OFL has been written by SIL (with review and consultation from the community) and is copyright (c) 2005-2010 SIL International. You may re-use the ideas and wording (in part, not in whole) in another non-proprietary license provided that you call your license by another unambiguous name, that you do not use the preamble, that you do not mention SIL and that you clearly present your license as different from the OFL so as not to cause confusion by being too similar to the original. If you feel the OFL does not meet your needs for an open license, please contact us.
+We strongly recommend against creating your very own unique open licensing model. Using a modified or derivative license will likely cut you off - along with the font(s) under that license - from the community of designers using the OFL, potentially expose you and your users to legal liabilities, and possibly put your work and rights at risk. The OFL went though a community and legal review process that took years of effort, and that review is only applicable to an unmodified OFL. The text of the OFL has been written by SIL (with review and consultation from the community) and is copyright (c) 2005-2017 SIL International. You may re-use the ideas and wording (in part, not in whole) in another non-proprietary license provided that you call your license by another unambiguous name, that you do not use the preamble, that you do not mention SIL and that you clearly present your license as different from the OFL so as not to cause confusion by being too similar to the original. If you feel the OFL does not meet your needs for an open license, please contact us.
+
+8.5 Can I quote from the OFL FAQ?
+Yes, SIL gives permission to quote from the OFL FAQ (OFL-FAQ.txt), in whole or in part, provided that the quoted text is:
+
+- unmodified,
+- used to help explain the intent of the OFL, rather than cause misunderstanding, and
+- accompanied with the following attribution: "From the OFL FAQ (OFL-FAQ.txt), copyright (c) 2005-2017 SIL International. Used by permission. http://scripts.sil.org/OFL-FAQ_web".
-8.5 Can I translate the license and the FAQ into other languages?
+8.6 Can I translate the license and the FAQ into other languages?
SIL certainly recognises the need for people who are not familiar with English to be able to understand the OFL and its use. Making the license very clear and readable has been a key goal for the OFL, but we know that people understand their own language best.
If you are an experienced translator, you are very welcome to translate the OFL and OFL-FAQ so that designers and users in your language community can understand the license better. But only the original English version of the license has legal value and has been approved by the community. Translations do not count as legal substitutes and should only serve as a way to explain the original license. SIL - as the author and steward of the license for the community at large - does not approve any translation of the OFL as legally valid because even small translation ambiguities could be abused and create problems.
@@ -274,6 +333,9 @@ SIL gives permission to publish unofficial translations into other languages pro
If you start such a unofficial translation effort of the OFL and OFL-FAQ please let us know.
+8.7 Does the OFL have an explicit expiration term?
+No, the implicit intent of the OFL is that the permissions granted are perpetual and irrevocable.
+
9 ABOUT SIL INTERNATIONAL
@@ -311,6 +373,9 @@ To contribute to the project...
ChangeLog
+10 December 2010 (Fred Foobar) GlobalFontFamily-devel version 1.4
+- fix new build and testing system (bug #123456)
+
1 August 2008 (Tom Parker) GlobalFontFamily version 1.2.1
- Tweaked the smart font code (Branch merged with trunk version)
- Provided improved build and debugging environment for smart behaviours
@@ -365,5 +430,6 @@ D: Designer - original Roman glyphs
Fontstudio.org is an not-for-profit design group whose purpose is...
Foobar.org is a distributed community of developers...
Company.com is a small business who likes to support community designers...
-University.edu is a renowed educational institution with a strong design department...
+University.edu is a renowned educational institution with a strong design department...
-----
+
diff --git a/fonts/erewhon/doc/erewhon-doc.pdf b/fonts/erewhon/doc/erewhon-doc.pdf
index 51895ea904..32007dc58f 100644
--- a/fonts/erewhon/doc/erewhon-doc.pdf
+++ b/fonts/erewhon/doc/erewhon-doc.pdf
Binary files differ
diff --git a/fonts/erewhon/doc/erewhon-doc.tex b/fonts/erewhon/doc/erewhon-doc.tex
index ba9dabb74e..828b173685 100644
--- a/fonts/erewhon/doc/erewhon-doc.tex
+++ b/fonts/erewhon/doc/erewhon-doc.tex
@@ -137,6 +137,8 @@ and let $b(X) \coloneq |{B(X)}|$ so that $\hat\phi=\sum_{Y\subset X}(-1)^{b(Y)}b
\textsc{Enhanced Mathematical Options:}\\
As of version {\tt 1.10}, the {\tt utopia} option to {\tt newtxmath} enjoys enhanced status. Most importantly, this means that you can generate pdf output satisfying the PDF/A-1b standards. It means, in addition, that the option {\tt subscriptcorrection} is available, permitting you to improve the spacing of subscripts by copying {\tt newtx-erewhon-subs.tex} to your home texmf tree and modifying its entries. For details, consult Appendix 2 of {\tt newtxdoc.pdf}, the documentation file for the {\tt newtx} package.
+\textsc{Greek symbols in the opentype fonts:}\\
+As of version $1.103$ ($2020-03-19$) the opentype text fonts contain the Greek symbols from the Fourier package, and also the symbols {\tt Ohm} and {\tt Ohminv}. This may be a temporary measure that will disappear after {\tt fontspec} is able to fully mimic the capabilities of virtual fonts.
\newpage
\textsc{Glyph Coverage Examples}\\
\textbf{Erewhon-Regular-tlf-t1}\\
diff --git a/fonts/erewhon/opentype/Erewhon-Bold.otf b/fonts/erewhon/opentype/Erewhon-Bold.otf
index 219554c1bd..6668cc6d70 100644
--- a/fonts/erewhon/opentype/Erewhon-Bold.otf
+++ b/fonts/erewhon/opentype/Erewhon-Bold.otf
Binary files differ
diff --git a/fonts/erewhon/opentype/Erewhon-BoldItalic.otf b/fonts/erewhon/opentype/Erewhon-BoldItalic.otf
index ada0178464..321bbe286a 100644
--- a/fonts/erewhon/opentype/Erewhon-BoldItalic.otf
+++ b/fonts/erewhon/opentype/Erewhon-BoldItalic.otf
Binary files differ
diff --git a/fonts/erewhon/opentype/Erewhon-BoldSlanted.otf b/fonts/erewhon/opentype/Erewhon-BoldSlanted.otf
index dc8ea5883f..9f35f3178b 100644
--- a/fonts/erewhon/opentype/Erewhon-BoldSlanted.otf
+++ b/fonts/erewhon/opentype/Erewhon-BoldSlanted.otf
Binary files differ
diff --git a/fonts/erewhon/opentype/Erewhon-Regular.otf b/fonts/erewhon/opentype/Erewhon-Regular.otf
index 3baa516f3e..e144708f5c 100644
--- a/fonts/erewhon/opentype/Erewhon-Regular.otf
+++ b/fonts/erewhon/opentype/Erewhon-Regular.otf
Binary files differ
diff --git a/fonts/erewhon/opentype/Erewhon-RegularSlanted.otf b/fonts/erewhon/opentype/Erewhon-RegularSlanted.otf
index 69c5433579..ac5fc3e943 100644
--- a/fonts/erewhon/opentype/Erewhon-RegularSlanted.otf
+++ b/fonts/erewhon/opentype/Erewhon-RegularSlanted.otf
Binary files differ
diff --git a/info/biblio/typeset.bib b/info/biblio/typeset.bib
index c01617f415..f0904539b9 100644
--- a/info/biblio/typeset.bib
+++ b/info/biblio/typeset.bib
@@ -2,9 +2,9 @@
%%% ====================================================================
%%% BibTeX-file{
%%% author = "Nelson H. F. Beebe",
-%%% version = "2.63",
-%%% date = "24 December 2019",
-%%% time = "12:14:56 MST",
+%%% version = "2.65",
+%%% date = "20 March 2020",
+%%% time = "12:31:01 MDT",
%%% filename = "typeset.bib",
%%% address = "University of Utah
%%% Department of Mathematics, 110 LCB
@@ -14,7 +14,7 @@
%%% telephone = "+1 801 581 5254",
%%% FAX = "+1 801 581 4148",
%%% URL = "http://www.math.utah.edu/~beebe",
-%%% checksum = "53565 25367 121879 1141386",
+%%% checksum = "56809 25488 122494 1146469",
%%% email = "beebe at math.utah.edu, beebe at acm.org,
%%% beebe at computer.org (Internet)",
%%% codetable = "ISO/ASCII",
@@ -39,7 +39,7 @@
%%% and PDF (Portable Document Format), and
%%% sgml.bib covers SGML and HTML.
%%%
-%%% At version 2.63, the year coverage looked
+%%% At version 2.65, the year coverage looked
%%% like this:
%%%
%%% 1881 ( 1) 1928 ( 1) 1975 ( 14)
@@ -57,7 +57,7 @@
%%% 1893 ( 0) 1940 ( 1) 1987 ( 54)
%%% 1894 ( 0) 1941 ( 1) 1988 ( 40)
%%% 1895 ( 0) 1942 ( 0) 1989 ( 29)
-%%% 1896 ( 0) 1943 ( 0) 1990 ( 32)
+%%% 1896 ( 0) 1943 ( 0) 1990 ( 33)
%%% 1897 ( 0) 1944 ( 0) 1991 ( 19)
%%% 1898 ( 1) 1945 ( 0) 1992 ( 22)
%%% 1899 ( 0) 1946 ( 0) 1993 ( 35)
@@ -77,7 +77,7 @@
%%% 1913 ( 0) 1960 ( 0) 2007 ( 3)
%%% 1914 ( 0) 1961 ( 2) 2008 ( 0)
%%% 1915 ( 0) 1962 ( 3) 2009 ( 2)
-%%% 1916 ( 1) 1963 ( 0) 2010 ( 2)
+%%% 1916 ( 1) 1963 ( 1) 2010 ( 2)
%%% 1917 ( 0) 1964 ( 4) 2011 ( 3)
%%% 1918 ( 0) 1965 ( 8) 2012 ( 4)
%%% 1919 ( 1) 1966 ( 6) 2013 ( 3)
@@ -92,7 +92,7 @@
%%% 19xx ( 3)
%%% 20xx ( 2)
%%%
-%%% Article: 335
+%%% Article: 336
%%% Book: 312
%%% InCollection: 5
%%% InProceedings: 54
@@ -102,9 +102,9 @@
%%% Periodical: 8
%%% PhdThesis: 6
%%% Proceedings: 33
-%%% TechReport: 34
+%%% TechReport: 35
%%%
-%%% Total entries: 868
+%%% Total entries: 870
%%%
%%% This bibliography has been collected from
%%% bibliographies in the author's personal
@@ -1400,6 +1400,21 @@
Type-setting",
}
+@Article{Duncan:1963:CTE,
+ author = "C. J. Duncan and J. Eve and L. Molyneux and E. S. Page
+ and Margaret G. Robson",
+ title = "Computer typesetting: an evaluation of the problems",
+ journal = "Printing Technology",
+ volume = "7",
+ number = "??",
+ pages = "133--151",
+ month = "????",
+ year = "1963",
+ bibdate = "Fri Mar 20 06:09:58 2020",
+ bibsource = "http://www.math.utah.edu/pub/tex/bib/typeset.bib",
+ acknowledgement = ack-nhfb,
+}
+
@Book{Buckland:1964:CMR,
author = "Lawrence F. Buckland",
title = "The creation of a machine record of Library of
@@ -1596,6 +1611,7 @@
note = "Cover title. ``A HERTIS publication''. At head of
title: Watford College of Technology.",
acknowledgement = ack-nhfb,
+ author-dates = "1930--",
keywords = "computerized typesetting",
}
@@ -1965,10 +1981,83 @@
number = "TR-2339",
institution = pub-USNWL,
address = pub-USNWL:adr,
+ pages = "iv + 97",
month = sep,
year = "1969",
bibsource = "http://www.math.utah.edu/pub/tex/bib/typeset.bib",
- acknowledgement = ack-nhfb,
+ URL = "https://books.google.com/books?id=_FNCAAAAIAAJ",
+ abstract = "Documentation is provided for a new system of
+ cartography and typography. Input to the system is on
+ IBM punched cards. Typographic input is in the FORTRAN
+ IV character set. A card of textual data is followed by
+ any number of cards of functional data. Mnemonic
+ control codes are provided for the functional data.
+ Sample of output from the new system have been prepared
+ on a mechanical plotter and on a cathode ray printer.
+ The limitation to FORTRAN IV is a handicap which should
+ be overcome by the use of an electronic tablet.",
+ acknowledgement = ack-nhfb,
+ tableofcontents = "Table of Contents / i \\
+ Foreword / iii \\
+ Abstract / iv \\
+ Introduction / 1 \\
+ Mapping Systems / 3 \\
+ Printing Systems / 4 \\
+ Input / 4 \\
+ Modes of Operation / 5 \\
+ Control Codes / 5 \\
+ Plot / 5 \\
+ Print / 5 \\
+ Frame and Return / 6 \\
+ Position and Orientation / 6 \\
+ Origin of Coordinates / 6 \\
+ Matrix of Scaling / 6 \\
+ Registration / 6 \\
+ Alignment / 6 \\
+ Quanta / 7 \\
+ Character Specification / 7 \\
+ Shaped Characters / 7 \\
+ Stroked Characters / 7 \\
+ Roman and Italic / 8 \\
+ Greek / 8 \\
+ Russian / 8 \\
+ German / 8 \\
+ Signs / 9 \\
+ Character Numbers / 9 \\
+ Blanks / 9 \\
+ Character Spacing / 9 \\
+ Control Codes / 9 \\
+ Em and En / 9 \\
+ Horizontal Spacing / 10 \\
+ Vertical Spacing / 11 \\
+ Lines and Vectors / 12 \\
+ Control Linkage / 12 \\
+ Output / 13 \\
+ Automation / 13 \\
+ Editorial Policy / 13 \\
+ Capitalization / 13 \\
+ Ligaturization / 13 \\
+ Justification / 13 \\
+ Hyphenation / 14 \\
+ Margination / 14 \\
+ Pagination / 14 \\
+ Samples / 14 \\
+ Prescriptions / 14 \\
+ Electronics / 14 \\
+ Chemistry / 15 \\
+ Mathematics 15 \\
+ Discussion / 16 \\
+ Conclusion / 17 \\
+ Bibliography / 18 \\
+ Appendices / 20 \\
+ A. Programming Summary / 21 \\
+ B. Card Punch Code / 32 \\
+ C. FORTRAN Transliterations / 34 \\
+ D. Maps / 49 \\
+ E. Text / 53 \\
+ F. Lexicon / 63 \\
+ G. Patterns / 75 \\
+ H. Distribution / 98",
}
@PhdThesis{Mayer:1969:TCT,
@@ -2076,6 +2165,38 @@
acknowledgement = ack-nhfb,
}
+@TechReport{Lincoln:1990:SCT,
+ author = "Harry B. Lincoln",
+ title = "A Study of Computer Techniques for Music Research",
+ type = "Report",
+ number = "Project number 9-B-101",
+ institution = "Department of Music, State University of New York at
+ Binghamton",
+ address = "Binghamton, NY 13901",
+ day = "30",
+ month = jun,
+ year = "1990",
+ bibdate = "Fri Mar 20 12:22:19 2020",
+ bibsource = "http://www.math.utah.edu/pub/tex/bib/typeset.bib",
+ URL = "https://books.google.com/books?id=B9AXAQAAIAAJ",
+ acknowledgement = ack-nhfb,
+ tableofcontents = "Acknowledgments / 2 \\
+ Summary / 4 \\
+ Background for this Research Project / 5 \\
+ Research Procedures of the 1969--1970 Project / 6 \\
+ Results of the Project / 7 \\
+ Conclusions and Recommendations / 8 \\
+ Appendices \\
+ Appendix A: Summary listing of papers, articles, and
+ reports / 10 \\
+ Exhibit A: Sample page of music typesetting by special
+ computer typography / 11 \\
+ Exhibit B: Example of computer listing of composers and
+ titles / 12 \\
+ Exhibit C: Example of computer listing of alphabetized
+ titles and composers / 13",
+}
+
@Book{Messina:1970:EPA,
author = "Carla G. Messina and Joseph Hilsenrath",
title = "Edit-insertion programs for automatic typesetting of
diff --git a/info/biblio/typeset.ltx b/info/biblio/typeset.ltx
index 90c9526e25..7244a82f93 100644
--- a/info/biblio/typeset.ltx
+++ b/info/biblio/typeset.ltx
@@ -2,9 +2,9 @@
%%% ====================================================================
%%% @LaTeX-file{
%%% author = "Nelson H. F. Beebe",
-%%% version = "2.63",
-%%% date = "24 December 2019",
-%%% time = "12:15:00 MST",
+%%% version = "2.65",
+%%% date = "20 March 2020",
+%%% time = "12:31:05 MDT",
%%% filename = "typeset.ltx",
%%% address = "University of Utah
%%% Department of Mathematics, 110 LCB
@@ -14,7 +14,7 @@
%%% telephone = "+1 801 581 5254",
%%% FAX = "+1 801 581 4148",
%%% URL = "http://www.math.utah.edu/~beebe",
-%%% checksum = "58628 78 270 2852",
+%%% checksum = "28140 78 270 2846",
%%% email = "beebe@math.utah.edu, beebe@acm.org,
%%% beebe@computer.org (Internet)",
%%% codetable = "ISO/ASCII",
@@ -59,8 +59,8 @@
WWW URL: \protect\path=http://www.math.utah.edu/~beebe/=
}
-\date{24 December 2019 \\
-Version 2.63}
+\date{20 March 2020 \\
+Version 2.65}
\begin{document}
\maketitle
\nocite{*}
diff --git a/macros/latex/contrib/csbulletin/README b/macros/latex/contrib/csbulletin/README
index 249dc20855..e54672784c 100644
--- a/macros/latex/contrib/csbulletin/README
+++ b/macros/latex/contrib/csbulletin/README
@@ -1,5 +1,5 @@
=============================================================================
-Package: csbulletin Version 1.2 12 January 2019
+Package: csbulletin 10 January 2020
=============================================================================
The package provides the class for articles for the CSTUG Bulletin
diff --git a/macros/latex/contrib/csbulletin/csbulacronym.sty b/macros/latex/contrib/csbulletin/csbulacronym.sty
index 6663ebdbc8..374627b45b 100644
--- a/macros/latex/contrib/csbulletin/csbulacronym.sty
+++ b/macros/latex/contrib/csbulletin/csbulacronym.sty
@@ -1,4 +1,4 @@
-\ProvidesPackage{csbulacronym}[2008/04/27 Acronyms for CSTUG bulletin]
+\ProvidesPackage{csbulacronym}[2020/01/10 Acronyms for CSTUG bulletin]
\PackageInfo{csbulacronym}{$Id$}
%==================================================== TeX logos
@@ -39,8 +39,6 @@
\DeclareRobustCommand\PiCTeX{\PiC\kern-.11em\TeX}
\DeclareRobustCommand\SliTeX{{\rm S\kern-.06em{\sc l\kern-.035emi}\kern-.06em\TeX}}
\let\SLiTeX\SliTeX
-\let\Protected@TeX\TeX
-\DeclareRobustCommand\TeX{\Protected@TeX}
\DeclareRobustCommand\WPtoLaTeX{%
W\kern-.06em\hbox{P}\kern-.2em\lower.7ex\hbox{2}\kern-.07em\LaTeX}
\let\Protected@LaTeX\LaTeX
diff --git a/macros/latex/contrib/csbulletin/csbulletin.cls b/macros/latex/contrib/csbulletin/csbulletin.cls
index 421a1d2f4c..0b0a63df69 100644
--- a/macros/latex/contrib/csbulletin/csbulletin.cls
+++ b/macros/latex/contrib/csbulletin/csbulletin.cls
@@ -1,4 +1,4 @@
-\ProvidesClass{csbulletin}[2019/01/12 CSTUG Bulletin class]
+\ProvidesClass{csbulletin}[2020/01/10 CSTUG Bulletin class]
\ClassInfo{csbulletin}{$Id$}
% Switch
@@ -79,7 +79,7 @@
\ifpdf
\IfFileExists{microtype.sty}{\RequirePackage
- [protrusion=false,expansion=true,stretch=8,shrink=24,step=4]{microtype}}{}
+ [protrusion=true,expansion=true,stretch=8,shrink=24,step=4]{microtype}}{}
\fi
\IfFileExists{array.sty}{\RequirePackage{array}}{}
diff --git a/macros/latex/contrib/csbulletin/csbulletin.pdf b/macros/latex/contrib/csbulletin/csbulletin.pdf
index 8ad625cd59..00edd67d5b 100644
--- a/macros/latex/contrib/csbulletin/csbulletin.pdf
+++ b/macros/latex/contrib/csbulletin/csbulletin.pdf
Binary files differ
diff --git a/macros/latex/contrib/csbulletin/csbulletin.tex b/macros/latex/contrib/csbulletin/csbulletin.tex
index f3a37600bf..faae0e23a4 100644
--- a/macros/latex/contrib/csbulletin/csbulletin.tex
+++ b/macros/latex/contrib/csbulletin/csbulletin.tex
@@ -1,9 +1,8 @@
%% $Id$
\documentclass{csbulletin}
-\DeclareRobustCommand\version{\unskip~v.\,1.2}
+\DeclareRobustCommand\version{\unskip~2020/01/10}
\let\pkg\textsc
-\usepackage[utf8]{inputenc}
\usepackage[pdftitle=LaTeX\ Class\ for\ CSTUG\ Bulletin, pdfauthor={Zdenek\ Wagner, Vit\ Novotny},
pdfkeywords=CSTUG\ Bulletin,bookmarks=false]{hyperref}
@@ -23,6 +22,7 @@ Tento dokument popisuje třídu pro psaní Älánků do Zpravodaje ÄŒeskoslovens
ve stylu pro Zpravodaj, autoři se tedy mohou podívat přímo do zdrojového kódu tohoto manuálu a
napsat svůj Älánek obdobnÄ›.
\end{abstract}
+\klicovaslova: \LaTeX, styl, dokumentová třída, Zpravodaj \CSTUG, dokumentace
\section{English introduction}
\begin{otherlanguage}{english}
@@ -51,7 +51,8 @@ BalíÄky, uvedené v~následujícím seznamu, se naÄítají vždy. Musíte je
\begin{itemize}
\item BalíÄek \pkg{csbulacronym} definuje běžné akronymy robustním způsobem pomocí \cmd{DeclareRobustCommand} a
-nÄ›které speciální akronymy, jako je napÅ™. makro \cmd{cstug} pro \cstug. Soubor je dodáván spoleÄnÄ› s~třídou \pkg{csbulletin}. Definice se používají i mimo Zpravodaj, proto jsou v~samostatném souboru.
+nÄ›které speciální akronymy, jako je napÅ™. makro \cmd{cstug} pro \cstug. Soubor je dodáván spoleÄnÄ› s~třídou
+\pkg{csbulletin}. Definice se používají i mimo Zpravodaj, proto jsou v~samostatném souboru.
\item \pkg{fontenc} s~parametrem T1
@@ -104,11 +105,14 @@ makra \cmd{EnglishTitle}. NepovinnÄ› můžete použít makro \cmd{podpis}, jehoÅ
kurzívou na konci Älánku. Poté použijte makro \cmd{maketitle}.
Abstrakt Älánku v~jazyce Älánku zapiÅ¡te v~prostÅ™edí \texttt{abstract}. Ve výjimeÄných případech lze
-abstrakt vynechat.
+abstrakt vynechat. Za prostÅ™edí \texttt{abstract} volitelnÄ› uveÄte jedno a více klíÄových slov
+oddÄ›lených Äárkou a pÅ™edznamenaných příkazem \cmd{klicovaslova:}, \cmd{klucoveslova:} nebo
+\cmd{keywords:} podle jazyka Älánku.
Na konci Älánku uveÄte anglický souhrn v~prostÅ™edí \texttt{summary}. Anglický název bude vzat
z~příkazu \cmd{EnglishTitle}, přepnutí jazyka se též provede automaticky. Anglický souhrn nemusí být
-přesným překladem abstraktu.
+pÅ™esným pÅ™ekladem abstraktu. Na závÄ›r prostÅ™edí \texttt{summary} volitelnÄ› uveÄte jedno a více
+anglických klíÄových slov oddÄ›lených Äárkou a pÅ™edznamenaných příkazem \cmd{keywords:}.
Redakce se postará o~jazykovou korekturu anglického souhrnu. V~případě, že jej autor nedodá,
postará se o~překlad redakce.
@@ -139,6 +143,7 @@ The package provides the class for articles for the \cstug\ Bulletin (Zpravodaj
sdružení uživatelů \TeX u). You can see the structure of a document by looking to the source file
of this manual. The package can be used and distributed according to the \LaTeX\ Project Public
License.
+ \keywords: \LaTeX, style, document class, \CSTUG{} Bulletin, documentation
\end{summary}
\end{document}
diff --git a/macros/latex/contrib/csbulletin/csbulobalka.sty b/macros/latex/contrib/csbulletin/csbulobalka.sty
index e88e5b9871..2926f1babd 100644
--- a/macros/latex/contrib/csbulletin/csbulobalka.sty
+++ b/macros/latex/contrib/csbulletin/csbulobalka.sty
@@ -1,4 +1,4 @@
-\ProvidesPackage{csbulobalka}[2017/02/17 Obalka + tiraz]
+\ProvidesPackage{csbulobalka}[2020/01/10 Obalka + tiraz]
\PackageInfo{csbulobalka}{$Id$}
%
% 3/4/2003 pridal jsem vetveni pro novou adresu sdruzeni (PS)
@@ -258,7 +258,9 @@ Distribuce:&
Tisk: & WOW, s.\,r.\,o., Praha 1, Washingtonova 25\\
\else
\ifnum\the\rok>2015
+\ifnum\the\rok<2019
Tisk: & ASMETI, Kl\'{a}\v{s}tern\'{i} 1187, 735\,11 Orlov\'{a} \\
+\fi
\else
Tisk a distribuce: &
KONVOJ, spol. s r.\,o., Berkova 22, 612\,00 Brno,\\
@@ -315,7 +317,7 @@ objedn\'{a}vky ti\v st\v en\'e \TeX ov\'e literatury na dob\'irku
\tir@ni www server sdru\v zen\'i:\\
%\pdfurl{http://www.cstug.cz/}{\path|http://www.cstug.cz/|}
-\texttt{http://www.cstug.cz}
+\texttt{https://www.cstug.cz}
\endgroup
diff --git a/macros/latex/contrib/glosmathtools/README.md b/macros/latex/contrib/glosmathtools/README.md
index 906422c625..1c5478f452 100644
--- a/macros/latex/contrib/glosmathtools/README.md
+++ b/macros/latex/contrib/glosmathtools/README.md
@@ -23,7 +23,7 @@ later version.
## Version
-0.5.1 (2019-08-02)
+0.5.2 (2020-03-20)
## Author
diff --git a/macros/latex/contrib/glosmathtools/glosmathtools.sty b/macros/latex/contrib/glosmathtools/glosmathtools.sty
index c117579d29..1eeab40e75 100644
--- a/macros/latex/contrib/glosmathtools/glosmathtools.sty
+++ b/macros/latex/contrib/glosmathtools/glosmathtools.sty
@@ -3,7 +3,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{glosmathtools}%
[%
-2019/08/02 v0.5.1 %
+2020/03/20 v0.5.2 %
Mathematical nomenclature tools based on glossaries package %
Francis Gagnon %
]%
@@ -74,16 +74,6 @@ Francis Gagnon %
\ensuremath{\glsdisp{#2}{\glosmath@MyGlsMacro{#2}}}%
}%
-% ---------- glsvi -------------------------------------------------------
-% show $a_b$ with link to "a" and variable "b"
-% 4 arguments : 2 mandatory arguments and optional 1st and 2nd argument
-% for adding accent on "a" and "b"
-\newcommand*{\glsvi}[1][]%
-{%
- \def\glosmath@ArgI{#1}%
- \glosmath@glsviRelay%
-}%
-
% ---------- glsub -------------------------------------------------------
% show $a_b$ with link to "a" and subscript "sub.b"
% 3 arguments : 2 mandatory arguments and optional 1st argument
@@ -109,6 +99,26 @@ Francis Gagnon %
}%
}%
+% ---------- glsvi -------------------------------------------------------
+% show $a_b$ with link to "a" and variable "b"
+% 4 arguments : 2 mandatory arguments and optional 1st and 2nd argument
+% for adding accent on "a" and "b"
+\newcommand*{\glsvi}[1][]%
+{%
+ \def\glosmath@ArgI{#1}%
+ \glosmath@glsviRelay%
+}%
+
+% ---------- glsvisub ----------------------------------------------------
+% show $a_{b_c}$ with link to "a", variable "b" and subscript "sub.c"
+% 4 arguments : 3 mandatory arguments and optional 1st and 2nd argument
+% for adding accent on "a" and "b"
+\newcommand*{\glsvisub}[1][]%
+{%
+ \def\glosmath@ArgI{#1}%
+ \glosmath@glsvisubRelay%
+}%s
+
% ---------- glslang -----------------------------------------------------
% show full accronyms definition in specified languages
\newcommand*{\glslang}[2][]%
@@ -331,7 +341,24 @@ Francis Gagnon %
\let \glosmath@SecGls \glosmath@MyGlsMacro%
\ensuremath{%
\glsdisp{#2}{%
- \glosmath@FirGls{#2}_{\glsdisp{#3}{\glosmath@SecGls{#3}}}%
+ \glosmath@FirGls{#2}_{%
+ \glsdisp{#3}{\glosmath@SecGls{#3}}}%
+ }%
+ }%
+}%
+
+% ---------- glosmath@glsvisubRelay ---------------------------------------
+% relay macro for two optional aguments in the glsvisub macro
+\newcommand*{\glosmath@glsvisubRelay}[4][]%
+{%
+ \expandafter\glosmath@getMyGlsMacro\expandafter{\glosmath@ArgI}%
+ \let \glosmath@FirGls \glosmath@MyGlsMacro%
+ \glosmath@getMyGlsMacro{#1}%
+ \let \glosmath@SecGls \glosmath@MyGlsMacro%
+ \ensuremath{%
+ \glsdisp{#2}{%
+ \glosmath@FirGls{#2}_{%
+ \glsdisp{#3}{\glosmath@SecGls{#3}_{\gls{sub.#4}}}}%
}%
}%
}%
diff --git a/macros/latex/contrib/glosmathtools/sample_glosmathtools.pdf b/macros/latex/contrib/glosmathtools/sample_glosmathtools.pdf
index 6e48a5476a..ee8409daeb 100644
--- a/macros/latex/contrib/glosmathtools/sample_glosmathtools.pdf
+++ b/macros/latex/contrib/glosmathtools/sample_glosmathtools.pdf
Binary files differ
diff --git a/macros/latex/contrib/glosmathtools/sample_glosmathtools.tex b/macros/latex/contrib/glosmathtools/sample_glosmathtools.tex
index ae1aa12a5d..e4e1c785f8 100644
--- a/macros/latex/contrib/glosmathtools/sample_glosmathtools.tex
+++ b/macros/latex/contrib/glosmathtools/sample_glosmathtools.tex
@@ -11,7 +11,8 @@
\ifxetex\else \usepackage[utf8]{inputenc} \fi
\usepackage{mathtools,siunitx,amsmath,amsfonts}
\usepackage{hyperref} % dernier package chargé sauf glosmathtools
-\usepackage[qtmarkupright,singlelineskip]{glosmathtools}
+% option "toc" passé à glossaries : ajout nomenclature dans signets du PDF :
+\usepackage[qtmarkupright,singlelineskip,toc]{glosmathtools}
%% ===================== preamble ============================================
%% ------------- glosmathtools -----------------------------------------------
\makeglossaries% executé en premier
@@ -22,7 +23,7 @@
\renewcommand*{\glscatnamefmt}[1]{\textbf{#1}} % format des catégories
%% ------------- ulthese ----------------------------------------------------
\titre{Documentation et exemple de \texttt{glosmathtools} dans \texttt{ulthese}}
-\soustitre{v0.5.1}
+\soustitre{v0.5.2}
\auteur{Francis Gagnon}
%% ============================================================================
@@ -58,7 +59,7 @@ Les options du package \texttt{glosmathtools} se résument par :
\item[nodefop] utilisation des opérateurs et accents sans définition
\item[{[autres options]}] passés au package \texttt{glossaries}
\end{description}
-De plus amples informations sont fournies ci-dessous.
+Par exemple, l'option \textbf{toc} du package \texttt{glossaries} peut être ajouté afin d'inclure la nomenclature dans la table des matières. De plus amples informations sont fournies ci-dessous (voir .
\section{Utilisation du package}
\subsection{Symboles, indices et accentuations}
@@ -71,9 +72,9 @@ d"v + \glsub{d}{v} = \SI{10.0}{\centi\meter} = 3.937\qtmark
\end{equation}
Le package peut être chargé avec l'option \texttt{qtmarkupright}. Le caractère \texttt{<">} est alors configuré comme raccourci pour l'écriture d'un indice sans italique en mode \texttt{math} (\texttt{<\_>} pour indice italique) \footnote{ La macro \texttt{\textbackslash qtmark} permet d'insérer le caractère \texttt{<">}. En ISO, les indices représentant l'abréviation d'un mot s'écrivent sans italique, et, celles représentant une variable, en italique.}.
-La macro \texttt{\textbackslash glsvi} permet d'ajouter une variable en indice à une autre variable : \glsvi{T}{k}. Il est aussi possible d'ajouter deux indices séparés par une virgule avec \texttt{\textbackslash glsubs} : \glsubs{D}{w}{a}. En l’occurrence, l'opérateur virgule est ajouté dans la nomenclature, qui doit donc être défini dans le glossaire sous le label \texttt{op.comma}.
+La macro \texttt{\textbackslash glsvi} permet d'ajouter une variable en indice à une autre variable, et \texttt{\textbackslash glsvisub}, une variable indicée à une autre variable : \glsvi{T}{k} et \glsvisub{T}{z}{v}. Finalement, il est possible d'ajouter deux indices séparés par une virgule avec \texttt{\textbackslash glsubs} : \glsubs{D}{w}{a}. En l’occurrence, l'opérateur virgule est ajouté dans la nomenclature, qui doit donc être défini dans le glossaire sous le label \texttt{op.comma}.
-Il est aussi possible d'ajouter des accents sur les variables avec la macro \texttt{\textbackslash glsac} : \glsac[dot]{m} et \glsac[bar]{T}. À leur utilisation respective, un opérateur est ajouté dans la nomenclature. Ils doivent donc être définis à leur label respectif. Les accents disponibles sont:
+Des accents peuvent aussi s'ajouter sur les variables avec la macro \texttt{\textbackslash glsac} : \glsac[dot]{m} et \glsac[bar]{T}. À leur utilisation respective, un opérateur est ajouté dans la nomenclature. Ils doivent donc être définis à leur label respectif. Les accents disponibles sont:
\begin{description}
\item[dot] $\dot{\bullet}$ (défini au label \texttt{op.dot})
\item[ddot] $\ddot{\bullet}$ (défini au label \texttt{op.ddot})
@@ -82,7 +83,7 @@ Il est aussi possible d'ajouter des accents sur les variables avec la macro \tex
\item[vec] $\vec{\bullet}$ (défini au label \texttt{op.vec})
\item[tilde] $\widetilde{\bullet}$ (défini au label \texttt{op.tilde})
\end{description}
-De plus, un argument optionnel permet d'ajouter des accents à toutes les macros précédentes : \glsub[bar]{T}{v} et \glsubs[dot]{m}{v}{a}. Il y a deux arguments optionnels dans le cas de \texttt{\textbackslash glsvi} : \glsvi[dot]{m}{k}, \glsvi[][dot]{k}{m} et \glsvi[bar][dot]{T}{m}. Finalement, il est possible d'utiliser les accents sans définition dans la nomenclature avec l'option \texttt{nodefop}.
+De plus, un argument optionnel permet d'ajouter des accents à toutes les macros précédentes : \glsub[bar]{T}{v} et \glsubs[dot]{m}{v}{a}. Il y a deux arguments optionnels dans le cas de \texttt{\textbackslash glsvi} et \texttt{\textbackslash glsvisub} : \glsvi[dot]{m}{k}, \glsvi[bar][dot]{T}{m} et \glsvisub[][dot]{T}{m}{w}. Finalement, il est possible d'utiliser les accents sans définition dans la nomenclature avec l'option \texttt{nodefop}.
\subsection{Langue, abréviations et nomenclature}
diff --git a/macros/latex/contrib/scratch3/README b/macros/latex/contrib/scratch3/README
index a4ed01f20d..c9829a9dfb 100644
--- a/macros/latex/contrib/scratch3/README
+++ b/macros/latex/contrib/scratch3/README
@@ -3,9 +3,9 @@ ___________________________________
L'extension
scratch3
- v0.15
+ v0.16
- 5 mars 2020
+ 20 mars 2020
___________________________________
Author : Christian Tellechea
diff --git a/macros/latex/contrib/scratch3/scratch3-fr.pdf b/macros/latex/contrib/scratch3/scratch3-fr.pdf
index ade051b2d0..1eb21d8b58 100644
--- a/macros/latex/contrib/scratch3/scratch3-fr.pdf
+++ b/macros/latex/contrib/scratch3/scratch3-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/scratch3/scratch3-fr.tex b/macros/latex/contrib/scratch3/scratch3-fr.tex
index d9606cce49..da7c723eb7 100644
--- a/macros/latex/contrib/scratch3/scratch3-fr.tex
+++ b/macros/latex/contrib/scratch3/scratch3-fr.tex
@@ -621,4 +621,7 @@ Toute remarque, remontée de bug ---~je n'ose pas dire amélioration du code~---,
\begin{version}{0.15}{05/03/2020}
>Bug corrigé dans les blocs normaux: l'échelle est désormais réinitialisée si besoin.
\end{version}
+\begin{version}{0.16}{20/03/2020}
+ >Le bug corrigé dans la v0.15 est fautif, \verb|scr_scale| est désormais initialisée dans \verb|\initmoreblocks|.
+\end{version}
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/scratch3/scratch3.sty b/macros/latex/contrib/scratch3/scratch3.sty
index f018bb9725..26b771cc27 100644
--- a/macros/latex/contrib/scratch3/scratch3.sty
+++ b/macros/latex/contrib/scratch3/scratch3.sty
@@ -5,9 +5,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
\def\scrname{ scratch3 }%
-\def\scrver { 0.15 }%
+\def\scrver { 0.16 }%
% %
-\def\scrdate{ 2020/03/05 }%
+\def\scrdate{ 2020/03/20 }%
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -130,7 +130,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\scr_normalblock#1#2{% #1=couleur #2=texte
\def\scr_current_blockcolor{#1}%
- \if_inpicture\def\scr_scale{1}\else\scr_normalizedec\scr_scale scale[0.2,5]\fi% bugfix 0.15
+% \if_inpicture\def\scr_scale{1}\else\scr_normalizedec\scr_scale scale[0.2,5]\fi% bugfix 0.15 (regression) --> bugfix 0.16
\def\scr_currentstuff{%
\if_pen
\scr_drawpen
@@ -358,6 +358,7 @@
\def\scr_currentstuff{%
\useKV[\scrname]{pre text}%
\_inpicturetrue
+ \def\scr_scale{1}% Bugfix 0.16
#1%
\scr_blockstrut
}%
@@ -1236,3 +1237,6 @@ Versions :
| 0.15 | 05/03/2020 | * l'échelle n'était pas initialisée dans les blocs |
| | | normaux |
|---------+------------+------------------------------------------------------|
+| 0.16 | 20/03/2020 | * regression 0.15 --> l'échelle est désormais |
+| | | initialisée dans \initmoreblocks |
+|---------+------------+------------------------------------------------------| \ No newline at end of file
diff --git a/macros/latex/contrib/xltabular/Changes b/macros/latex/contrib/xltabular/Changes
index 05b615fc27..d29caef556 100644
--- a/macros/latex/contrib/xltabular/Changes
+++ b/macros/latex/contrib/xltabular/Changes
@@ -1,3 +1,4 @@
+2.0c 2020/03/20 - restore of original longtable more robust
2.0a 2018/12/16 - better hyperref support; example files
1.0a 2018/05/23 - restore original tabularx must not be statically
0.05 2017-10-26 - set \keepXColumns
diff --git a/macros/latex/contrib/xltabular/xltabular-doc.pdf b/macros/latex/contrib/xltabular/xltabular-doc.pdf
index 882a93aa45..d8b3ba30ef 100644
--- a/macros/latex/contrib/xltabular/xltabular-doc.pdf
+++ b/macros/latex/contrib/xltabular/xltabular-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/xltabular/xltabular.sty b/macros/latex/contrib/xltabular/xltabular.sty
index 4684191127..fc785782fa 100644
--- a/macros/latex/contrib/xltabular/xltabular.sty
+++ b/macros/latex/contrib/xltabular/xltabular.sty
@@ -3,21 +3,18 @@
%% License from CTAN archives in directory macros/latex/base/lppl.txt.
%% Either version 1.3 or, at your option, any later version.
%%
-% Copyright 2018 Herbert Voss <hvoss@tug.org>
-% Rolf Niepraschk <Rolf.Niepraschk@gmx.de>
+% Copyright 2018,... Herbert Voss <hvoss@tug.org>
+% Rolf Niepraschk <Rolf.Niepraschk@gmx.de>
%%
-\ProvidesPackage{xltabular}[2019/01/30 v0.2b `xltabular' package (hv,RN)]
+\ProvidesPackage{xltabular}[2020/03/20 v0.2c `xltabular' package (hv,RN)]
\RequirePackage{tabularx}
\let\XLT@i@tabularx=\tabularx
\let\XLT@i@endtabularx=\endtabularx
\let\XLT@i@TX@endtabularx=\TX@endtabularx
%
-\RequirePackage{ltablex}
-\keepXColumns% xltabular behaves like tabularx
-%
-\let\XLT@ii@tabularx=\tabularx
-\let\XLT@ii@TX@endtabularx=\TX@endtabularx
+\RequirePackage{longtable}
\let\XLT@longtable=\longtable
+\let\XLT@LT@caption=\LT@caption
\let\XLT@LT@start=\LT@start
\let\XLT@LT@array=\LT@array
\@ifundefined{scr@LT@array}{%
@@ -25,7 +22,12 @@
\@ifundefined{adl@LT@array}{}{\let\XLT@adl@LT@array=\adl@LT@array}
}
}{\let\XLT@scr@LT@array=\scr@LT@array}%
-
+%
+\RequirePackage{ltablex}
+\keepXColumns% xltabular behaves like tabularx
+%
+\let\XLT@ii@tabularx=\tabularx
+\let\XLT@ii@TX@endtabularx=\TX@endtabularx
%
% restore original tabularx
\renewenvironment{tabularx}%
@@ -64,11 +66,14 @@
}%
%
\providecommand*\LTcaptype{table}% support of package "caption"
+% restore original longtable
\def\longtable{%
\ifXLT@HypRef
% revert to the unpatched version when \caption is not used
- \global\let\LT@start=\XLT@LT@start
+ \global\let\LT@start=\XLT@LT@start%
\fi
+ \let\LT@array=\XLT@LT@array
+ \let\LT@caption=\XLT@LT@caption
\XLT@longtable
}
diff --git a/macros/luatex/generic/luatexko/ChangeLog b/macros/luatex/generic/luatexko/ChangeLog
index 5ffa9cd5f2..2eb3dae8d6 100644
--- a/macros/luatex/generic/luatexko/ChangeLog
+++ b/macros/luatex/generic/luatexko/ChangeLog
@@ -1,3 +1,10 @@
+2020-03-20 Dohyun Kim <nomos at ktug org>
+
+ Version 2.8
+
+ * luatexko.lua, luatexko.sty:
+ use atbegshi package for dotemph, uline, and ruby
+
2020-03-14 Dohyun Kim <nomos at ktug org>
Version 2.7
diff --git a/macros/luatex/generic/luatexko/README b/macros/luatex/generic/luatexko/README
index 494b40edf9..1baf7bda2e 100644
--- a/macros/luatex/generic/luatexko/README
+++ b/macros/luatex/generic/luatexko/README
@@ -1,4 +1,4 @@
-LuaTeX-ko Package version 2.7 (2020/03/14)
+LuaTeX-ko Package version 2.8 (2020/03/20)
===========================================
This is a Lua(La)TeX macro package that supports typesetting Korean
diff --git a/macros/luatex/generic/luatexko/luatexko-doc.pdf b/macros/luatex/generic/luatexko/luatexko-doc.pdf
index b37128dcbb..aaee5aa145 100644
--- a/macros/luatex/generic/luatexko/luatexko-doc.pdf
+++ b/macros/luatex/generic/luatexko/luatexko-doc.pdf
Binary files differ
diff --git a/macros/luatex/generic/luatexko/luatexko-doc.tex b/macros/luatex/generic/luatexko/luatexko-doc.tex
index 7d57dee230..97bb5640a2 100644
--- a/macros/luatex/generic/luatexko/luatexko-doc.tex
+++ b/macros/luatex/generic/luatexko/luatexko-doc.tex
@@ -120,7 +120,7 @@
\author{Dohyun Kim \normalsize |<nomos at ktug org>| \and
Soojin Nam \normalsize |<jsunam at gmail com>| \and
\normalsize <\url{http://github.com/dohyunkim/luatexko}>}
-\date{Version 2.7\quad 2020/03/14}
+\date{Version 2.8\quad 2020/03/20}
\maketitle
\begin{quote}\small
diff --git a/macros/luatex/generic/luatexko/luatexko-normalize.lua b/macros/luatex/generic/luatexko/luatexko-normalize.lua
index 0b4553f18f..243762aa2f 100644
--- a/macros/luatex/generic/luatexko/luatexko-normalize.lua
+++ b/macros/luatex/generic/luatexko/luatexko-normalize.lua
@@ -13,8 +13,8 @@
luatexbase.provides_module({
name = "luatexko-normalize",
- version = "2.7",
- date = "2020/03/14",
+ version = "2.8",
+ date = "2020/03/20",
author = "Dohyun Kim, Soojin Nam",
description = "Hangul normalization",
license = "LPPL v1.3+",
diff --git a/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua b/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
index 70b30b96e3..10ef613a94 100644
--- a/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
+++ b/macros/luatex/generic/luatexko/luatexko-uhc2utf8.lua
@@ -13,8 +13,8 @@
luatexbase.provides_module({
name = "luatexko-uhc2utf8",
- version = "2.7",
- date = "2020/03/14",
+ version = "2.8",
+ date = "2020/03/20",
author = "Dohyun Kim, Soojin Nam",
description = "UHC (CP949) input encoding",
license = "LPPL v1.3+",
diff --git a/macros/luatex/generic/luatexko/luatexko.lua b/macros/luatex/generic/luatexko/luatexko.lua
index 0720a4ecd9..95d8fc1a84 100644
--- a/macros/luatex/generic/luatexko/luatexko.lua
+++ b/macros/luatex/generic/luatexko/luatexko.lua
@@ -13,8 +13,8 @@
luatexbase.provides_module {
name = 'luatexko',
- date = '2020/03/14',
- version = '2.7',
+ date = '2020/03/20',
+ version = '2.8',
description = 'typesetting Korean with LuaTeX',
author = 'Dohyun Kim, Soojin Nam',
license = 'LPPL v1.3+',
@@ -73,7 +73,6 @@ local callback_descriptions = luatexbase.callback_descriptions
local create_callback = luatexbase.create_callback
local module_warning = luatexbase.module_warning
local new_user_whatsit = luatexbase.new_user_whatsit
-local new_user_whatsit_id = luatexbase.new_user_whatsit_id
local registernumber = luatexbase.registernumber
local remove_from_callback = luatexbase.remove_from_callback
@@ -93,7 +92,6 @@ local ruleid = node.id"rule"
local vlistid = node.id"vlist"
local whatsitid = node.id"whatsit"
local literal_whatsit = node.subtype"pdf_literal"
-local user_whatsit = node.subtype"user_defined"
local directmode = 2
local fontkern = 0
local userkern = 1
@@ -110,6 +108,7 @@ local fallbackfontattr = attributes.luatexkofallbackfontattr
local autojosaattr = attributes.luatexkoautojosaattr
local classicattr = attributes.luatexkoclassicattr
local dotemphattr = attributes.luatexkodotemphattr
+local ulineattr = attributes.luatexkoulineattr
local rubyattr = attributes.luatexkorubyattr
local hangulbyhangulattr = attributes.luatexkohangulbyhangulattr
local hanjabyhanjaattr = attributes.luatexkohanjabyhanjaattr
@@ -465,13 +464,12 @@ luatexko.forcehangulchars = force_hangul
local forcehf_f, forcehf_id = new_user_whatsit("forcehf","luatexko")
-local function update_force_hangul (value)
+function luatexko.updateforcehangul (value)
local what = forcehf_f()
what.type = lua_value -- function
what.value = value
nodewrite(what)
end
-luatexko.updateforcehangul = update_force_hangul
local function hangul_space_skip (curr, newfont)
if curr.lang ~= nohyphen and curr.font ~= newfont then
@@ -517,7 +515,6 @@ local function process_fonts (head)
is_not_harf(curr.font) and
option_in_font(curr.font, "script") == "hang" then
luatexko.activate("reorderTM") -- activate reorderTM here
- active_processes.reorderTM = true
end
else
@@ -556,10 +553,9 @@ local function process_fonts (head)
curr.replace = process_fonts(curr.replace)
elseif id == mathid then
curr = end_of_math(curr)
- elseif id == whatsitid
- and curr.subtype == user_whatsit
- and curr.user_id == forcehf_id
- and curr.type == lua_value then
+ elseif id == whatsitid and
+ curr.user_id == forcehf_id and
+ curr.type == lua_value then
local value = curr.value
if type(value) == "function" then
@@ -901,9 +897,7 @@ local function process_interhangul (head, par)
if c and not is_unicode_var_sel(c) then
head, pc = do_interhangul_option(head, curr, pc, c, curr.font, par)
- if is_chosong(c) then
- pc = 0
- elseif is_jungsong(c) or is_jongsong(c) or hangul_tonemark[c] then
+ if is_jungsong(c) or is_jongsong(c) or hangul_tonemark[c] then
pc = 1
end
end
@@ -1210,11 +1204,22 @@ end
local dotemphbox = {}
luatexko.dotemphbox = dotemphbox
-local function process_dotemph (head, tofree)
- local curr, outer, tofree = head, not tofree, tofree or {}
+local dotemph_f, dotemph_id = new_user_whatsit("dotemph","luatexko")
+
+function luatexko.dotemphboundary (i)
+ local what = dotemph_f()
+ what.type = lua_number
+ what.value = i
+ nodewrite(what)
+end
+
+local function process_dotemph (head)
+ local curr = head
while curr do
- local id = curr.id
- if id == glyphid then
+ if curr.list then
+ curr.list = process_dotemph(curr.list)
+
+ elseif curr.id == glyphid then
local dotattr = has_attribute(curr, dotemphattr)
if dotattr then
local c = my_node_props(curr).unicode or curr.char
@@ -1231,7 +1236,13 @@ local function process_dotemph (head, tofree)
local currwd = curr.width
if currwd >= font_options.en_size[curr.font] then
- local box = nodecopy(dotemphbox[dotattr])
+ local box = nodecopy(dotemphbox[dotattr]).list
+ -- bypass unwanted nodes injected by some other packages
+ while box.id ~= hlistid do
+ warning[[\dotemph should be an hbox]]
+ box = getnext(box)
+ end
+
local shift = (currwd - box.width)/2
if shift ~= 0 then
local list = box.list
@@ -1245,28 +1256,26 @@ local function process_dotemph (head, tofree)
box.width = 0
head = insert_before(head, curr, box)
- tofree[dotattr] = true
end
end
- unset_attribute(curr, dotemphattr)
- end
- elseif id == hlistid then
- local list = curr.list
- if list then
- curr.list, tofree = process_dotemph(list, tofree)
end
+
+ elseif curr.id == whatsitid and
+ curr.user_id == dotemph_id and
+ curr.type == lua_number then
+
+ local val = curr.value
+ nodefree(dotemphbox[val])
+ dotemphbox[val] = nil
end
curr = getnext(curr)
end
- if outer then
- for k in pairs(tofree) do nodefree(dotemphbox[k]) end
- end
- return head, tofree
+ return head
end
-- uline
-local function get_strike_out_down (box)
+function luatexko.get_strike_out_down (box)
local c, f = hbox_char_font(box, true, true) -- ignore blocking nodes
if c and f then
local down
@@ -1286,14 +1295,16 @@ local function get_strike_out_down (box)
end
return -texsp"0.5ex"
end
-luatexko.get_strike_out_down = get_strike_out_down
local uline_f, uline_id = new_user_whatsit("uline","luatexko")
-local no_uline_id = new_user_whatsit_id("no_uline","luatexko")
-local function ulboundary (i, n, subtype)
+function luatexko.ulboundary (i, n, subtype)
local what = uline_f()
if n then
+ while n.id ~= ruleid and n.id ~= hlistid and n.id ~= vlistid do
+ warning[[\markoverwith should be a rule or a box]]
+ n = getnext(n)
+ end
what.type = lua_value -- table
what.value = { i, nodecopy(n), subtype }
else
@@ -1302,7 +1313,6 @@ local function ulboundary (i, n, subtype)
end
nodewrite(what)
end
-luatexko.ulboundary = ulboundary
local white_nodes = {
[glueid] = true,
@@ -1311,7 +1321,7 @@ local white_nodes = {
[whatsitid] = true,
}
-function skip_white_nodes (n, ltr)
+local function skip_white_nodes (n, ltr)
local nextnode = ltr and getnext or getprev
while n do
if not white_nodes[n.id] then break end
@@ -1323,66 +1333,78 @@ end
local function draw_uline (head, curr, parent, t, final)
local start, list, subtype = t.start or head, t.list, t.subtype
start = skip_white_nodes(start, true)
- if final then
+ if final and start then
nodeslide(start) -- to get correct getprev.
end
curr = skip_white_nodes(curr)
- curr = getnext(curr) or curr
- local len = parent and rangedimensions(parent, start, curr)
- or dimensions(start, curr) -- it works?!
- if len and len ~= 0 then
- local g = nodenew(glueid)
- setglue(g, len)
- g.subtype = subtype
- g.leader = final and list or nodecopy(list)
- local k = nodenew(kernid)
- k.kern = -len
- head = insert_before(head, start, g)
- head = insert_before(head, start, k)
+ if start and curr then
+ curr = getnext(curr) or curr
+ local len = parent and rangedimensions(parent, start, curr)
+ or dimensions(start, curr)
+ if len and len ~= 0 then
+ local g = nodenew(glueid)
+ setglue(g, len)
+ g.subtype = subtype
+ g.leader = final and list or nodecopy(list)
+ local k = nodenew(kernid)
+ k.kern = -len
+ head = insert_before(head, start, g)
+ head = insert_before(head, start, k)
+ end
end
return head
end
-local function process_uline (head, parent, items, level)
- local curr, items, level = head, items or {}, level or 0
+local ulitems = {}
+
+local function process_uline (head, parent, level)
+ local curr, level, attr = head, level or 0
while curr do
- local id = curr.id
- if id == whatsitid
- and curr.subtype == user_whatsit
- and curr.user_id == uline_id then
+ if curr.list then
+ curr.list = process_uline(curr.list, curr, level+1)
+
+ elseif curr.id == whatsitid and curr.user_id == uline_id then
local value = curr.value
if curr.type == lua_value then
local count, list, subtype = tableunpack(value)
- items[count] = {
- start = curr,
+ ulitems[count] = {
list = list,
subtype = subtype,
level = level,
}
- elseif items[value] then
- head = draw_uline(head, curr, parent, items[value], true)
- items[value] = nil
+ else
+ local item = ulitems[value]
+ if item then
+ head = draw_uline(head, curr, parent, item, true)
+ ulitems[value] = nil
+ attr = nil
+ end
end
- curr.user_id = no_uline_id -- avoid multiple run
- elseif id == hlistid then
- local list = curr.list
- if list then
- curr.list, items = process_uline(list, curr, items, level+1)
+ else
+ local currattr = has_attribute(curr, ulineattr)
+ if currattr then
+ local item = ulitems[currattr]
+ if item and not item.start then
+ item.start = curr
+ attr = currattr
+ end
end
+
end
curr = getnext(curr)
end
- curr = nodeslide(head)
- for i, t in pairs(items) do
- if level == t.level then
- head = draw_uline(head, curr, parent, t)
- t.start = nil
+ if attr then
+ local item = ulitems[attr]
+ if item and item.level == level then
+ head = draw_uline(head, nodeslide(head), parent, item)
+ item.start = nil
end
end
- return head, items
+
+ return head
end
-- ruby
@@ -1390,7 +1412,7 @@ end
local rubybox = {}
luatexko.rubybox = rubybox
-local function getrubystretchfactor (box)
+function luatexko.getrubystretchfactor (box)
local _, fid = hbox_char_font(box, true, true)
local str = font_options.intercharstretch[fid]
if str then
@@ -1398,7 +1420,6 @@ local function getrubystretchfactor (box)
set_macro("luatexkostretchfactor", stringformat("%.4f", str/em/2))
end
end
-luatexko.getrubystretchfactor = getrubystretchfactor
local function process_ruby_pre_linebreak (head)
local curr = head
@@ -1458,13 +1479,11 @@ local function process_ruby_post_linebreak (head)
head = insert_before(head, curr, ruby)
end
ruby_t = nil
- unset_attribute(curr, rubyattr)
- else
- local list = curr.list
- if list then
- curr.list = process_ruby_post_linebreak(list)
- end
+ elseif curr.list then
+ curr.list = process_ruby_post_linebreak(curr.list)
end
+ elseif curr.list then
+ curr.list = process_ruby_post_linebreak(curr.list)
end
curr = getnext(curr)
end
@@ -1797,7 +1816,7 @@ local function process_vertical_font (fontdata)
end
end
-local function get_horizbox_moveleft ()
+function luatexko.gethorizboxmoveleft ()
for _, v in ipairs{ fontcurrent(),
texattribute.luatexkohangulfontattr,
texattribute.luatexkohanjafontattr,
@@ -1811,7 +1830,6 @@ local function get_horizbox_moveleft ()
end
end
end
-luatexko.gethorizboxmoveleft = get_horizbox_moveleft
-- charraise
@@ -1885,10 +1903,13 @@ local function process_fake_slant_font (fontdata)
local fsl = fontdata.slant
if fsl and fsl > 0 then
fsl = fsl/1000
+ local hb = is_harf(fontdata)
+
local params = fontdata.parameters or {}
- params.slant = (params.slant or 0) + fsl*65536 -- slant per point
+ if not hb then -- hb done by luaotfload
+ params.slant = (params.slant or 0) + fsl*65536 -- slant per point
+ end
- local hb = is_harf(fontdata)
local scale = hb and hb.scale or params.factor or 655.36
local shared = fontdata.shared or {}
@@ -1928,6 +1949,13 @@ create_callback("luatexko_hpack_first", "data", pass_fun)
create_callback("luatexko_prelinebreak_first", "data", pass_fun)
create_callback("luatexko_hpack_second", "data", pass_fun)
create_callback("luatexko_prelinebreak_second", "data", pass_fun)
+create_callback("luatexko_do_atbegshi", "data", pass_fun)
+
+function luatexko.process_atbegshi (box)
+ if box and box.list then
+ box.list = call_callback("luatexko_do_atbegshi", box.list)
+ end
+end
add_to_callback("hpack_filter", function(h)
h = process_fonts(h)
@@ -2058,17 +2086,14 @@ add_to_callback("luaotfload.patch_font_unsafe", process_patch_font,
local auxiliary_procs = {
dotemph = {
- hpack_filter = process_dotemph,
- post_linebreak_filter = process_dotemph,
+ luatexko_do_atbegshi = process_dotemph,
},
uline = {
- hpack_filter = process_uline,
- post_linebreak_filter = process_uline,
+ luatexko_do_atbegshi = process_uline,
},
ruby = {
- pre_linebreak_filter = process_ruby_pre_linebreak,
- hpack_filter = process_ruby_post_linebreak,
- post_linebreak_filter = process_ruby_post_linebreak,
+ pre_linebreak_filter = process_ruby_pre_linebreak,
+ luatexko_do_atbegshi = process_ruby_post_linebreak,
},
autojosa = {
luatexko_hpack_first = process_josa,
@@ -2080,26 +2105,12 @@ local auxiliary_procs = {
},
}
-local function activate (name)
+function luatexko.activate (name)
for cbnam, cbfun in pairs( auxiliary_procs[name] ) do
- local fun
- if cbnam == "hpack_filter" then
- fun = function(h, gc)
- if gc == "hbox" or gc == "adjusted_hbox" or gc == "align_set" then
- h = cbfun(h)
- end
- return h
- end
- else
- fun = function(h)
- h = cbfun(h)
- return h
- end
- end
- add_to_callback(cbnam, fun, "luatexko."..cbnam.."."..name)
+ add_to_callback(cbnam, cbfun, "luatexko."..cbnam.."."..name)
end
+ active_processes[name] = true
end
-luatexko.activate = activate
add_to_callback ("hyphenate",
function(head)
@@ -2129,12 +2140,12 @@ end,
-- aux functions
-local function deactivate_all (str)
+function luatexko.deactivateall (str)
luatexko.deactivated = {}
for _, name in ipairs{ "hpack_filter",
"pre_linebreak_filter",
- "post_linebreak_filter",
"hyphenate",
+ "luatexko_do_atbegshi", -- might not work properly
"luaotfload.patch_font_unsafe", -- added for harf
"luaotfload.patch_font" } do
local t = {}
@@ -2147,9 +2158,8 @@ local function deactivate_all (str)
luatexko.deactivated[name] = t
end
end
-luatexko.deactivateall = deactivate_all
-local function reactivate_all ()
+function luatexko.reactivateall ()
for name, v in pairs(luatexko.deactivated or {}) do
for _, vv in ipairs(v) do
add_to_callback(name, tableunpack(vv))
@@ -2157,10 +2167,8 @@ local function reactivate_all ()
end
luatexko.deactivated = nil
end
-luatexko.reactivateall = reactivate_all
-local function current_has_hangul_chars (cnt)
+function luatexko.currenthashangulchars (cnt)
texcount[cnt] = char_in_font(fontcurrent(), 0xAC00) and 1 or 0
end
-luatexko.currenthashangulchars = current_has_hangul_chars
diff --git a/macros/luatex/generic/luatexko/luatexko.sty b/macros/luatex/generic/luatexko/luatexko.sty
index dd25d17b77..f96b228a2c 100644
--- a/macros/luatex/generic/luatexko/luatexko.sty
+++ b/macros/luatex/generic/luatexko/luatexko.sty
@@ -14,12 +14,14 @@
\ifdefined\luatexkohangulfontattr \endinput\fi
\ifdefined\selectfont
\NeedsTeXFormat{LaTeX2e}[2020/02/02]
- \ProvidesPackage{luatexko}[2020/03/14 v2.7 typesetting Korean with LuaTeX]
+ \ProvidesPackage{luatexko}[2020/03/20 v2.8 typesetting Korean with LuaTeX]
\RequirePackage{luatexbase}
\RequirePackage{fontspec}[2020/02/03]
+ \RequirePackage{atbegshi}
\else
\input luatexbase.sty
\input luaotfload.sty
+ \input atbegshi.sty
\chardef\luatexkoatcatcode=\catcode`\@
\catcode`\@=11
\fi
@@ -31,10 +33,21 @@
\newattribute\luatexkoautojosaattr
\newattribute\luatexkoclassicattr
\newattribute\luatexkodotemphattr
+\newattribute\luatexkoulineattr
\newattribute\luatexkorubyattr \chardef\luatexkorubyalloc\allocationnumber
\newattribute\luatexkohangulbyhangulattr
\newattribute\luatexkohanjabyhanjaattr
\directlua{ require"luatexko" }
+\edef\AtBegShi@Hook{% occupy the first position
+ \unexpanded{%
+ \AtBegShi@Item{%
+ \directlua{%
+ luatexko.process_atbegshi(tex.getbox(\the\AtBeginShipoutBox))
+ }%
+ }%
+ }%
+ \unexpanded\expandafter{\AtBegShi@Hook}%
+}
% classic
\protected\def\typesetclassic{\luatexkoclassicattr\z@\parindent1em }
\protected\def\typesetvertical{\luatexkoclassicattr\@ne\parindent1em }
@@ -133,8 +146,11 @@
\setbox\z@\hbox{\raise\dotemphraise\hbox{\dotemphchar}}%
\directlua{
if \the\luatexkodotemphcount == 1 then luatexko.activate("dotemph") end
- luatexko.dotemphbox[\the\luatexkodotemphcount] = node.copy(tex.box[0].list)
+ luatexko.dotemphbox[\the\luatexkodotemphcount] = node.copy(tex.box[0])
}\luatexkodotemphattr\luatexkodotemphcount #1%
+ \directlua{
+ luatexko.dotemphboundary(\the\luatexkodotemphattr)
+ }%
\endgroup }
% uline
\newcount\luatexkoulinecount
@@ -149,18 +165,17 @@
\def\luatexkomarkoverwith#1#2{%
\global\advance\luatexkoulinecount\@ne
\begingroup
- \count@\luatexkoulinecount
- \ifx\luatexkoulinerunning\relax
- \edef\ulinedown{\the\dimexpr\ulinedown+\ulinewidth+.15ex\relax}\fi
- \let\luatexkoulinerunning\relax
\leavevmode
\setbox\z@\hbox{#1}%
\directlua{
if \the\luatexkoulinecount == 1 then luatexko.activate("uline") end
- luatexko.ulboundary(\the\count@, tex.box[0].list, \luatexkoleaderstype)
- }#2\relax
+ luatexko.ulboundary(\the\luatexkoulinecount,
+ tex.box[0].list,
+ \luatexkoleaderstype)
+ }%
+ \luatexkoulineattr\luatexkoulinecount #2\relax
\directlua{
- luatexko.ulboundary(\the\count@)
+ luatexko.ulboundary(\the\luatexkoulineattr)
}\endgroup }
\protected\def\uline{\markoverwith{%
\vrule width\z@ height-\ulinedown depth\dimexpr\ulinedown+\ulinewidth\relax }}
@@ -170,13 +185,29 @@
\kern.125em }}}
\protected\def\dotuline{\markoverwith*{%
\lower\dimexpr\ulinedown+.2ex\relax\hbox{\kern.07em .\kern.07em }}}
-\protected\def\uuline#1{\uline{\uline{#1}}}
-\protected\def\sout#1{\begingroup
+\protected\def\uuline{\markoverwith{%
+ \lower\ulinedown\vtop{%
+ \hrule width .2em height\z@ depth\ulinewidth
+ \kern .15ex
+ \hrule width .2em height\z@ depth\ulinewidth
+ }%
+}}
+\protected\def\sout#1{%
+ \begingroup
\setbox\z@\hbox{#1}%
- \edef\ulinedown{\the\dimexpr
+ \edef\soutdown{%
+ \the\dimexpr
\directlua{ tex.sprint(luatexko.get_strike_out_down(tex.box[0])) }sp
- -.5\dimexpr\ulinewidth\relax \relax }%
- \uline{#1}\endgroup}
+ -.5\dimexpr\ulinewidth\relax \relax
+ }%
+ \markoverwith{%
+ \vrule width \z@
+ height-\soutdown
+ depth \dimexpr\soutdown+\ulinewidth\relax
+ }%
+ {#1}%
+ \endgroup
+}
\protected\def\xout{\markoverwith{\hbox to.4em{\hss/\hss}}}
\protected\def\uwave{\font\luatexkofontsixly=lasy6\relax
\markoverwith{\lower4\p@\hbox{\luatexkofontsixly\char58}}}
diff --git a/macros/luatex/optex/README b/macros/luatex/optex/README
index 50bc986aa0..5217287f83 100644
--- a/macros/luatex/optex/README
+++ b/macros/luatex/optex/README
@@ -8,6 +8,9 @@ See http://petr.olsak.net/optex
History:
+<0.07> demos: op-letter.tex and op-slides.tex added.
+ \inkinspic, \transformbox, \slides added.
+ documentation improved and updated.
<0.06> tables re-implemented, opmac-rest removed.
footnotes, marginal notes reimplemented.
sections.opm, graphics.opm, colors.opm, languages re-implemented
diff --git a/macros/luatex/optex/alloc.opm b/macros/luatex/optex/alloc.opm
index 6ca5939ab1..81d9e6606d 100644
--- a/macros/luatex/optex/alloc.opm
+++ b/macros/luatex/optex/alloc.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \newdimen {Allocators for registers <2020-01-23>}
+\_codedecl \newdimen {Allocators for registers <2020-01-23>} % loaded in format
\_chardef\_maicount = 65535 % Max Allocation Index for counts registers in LuaTeX
\_let\_maidimen = \_maicount
diff --git a/macros/luatex/optex/basics-macros.opm b/macros/luatex/optex/basics-macros.opm
index 23b6a6a43c..b86fd2e2e9 100644
--- a/macros/luatex/optex/basics-macros.opm
+++ b/macros/luatex/optex/basics-macros.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \sdef {Basic macros for OpTeX <2020-02-14>}
+\_codedecl \sdef {Basic macros for OpTeX <2020-02-14>} % loaded in format
\_doc ------------------------------
`\bgroup`, `\egroup`, `\empty`, `\space`, `\null` and `\wlog` are classical
diff --git a/macros/luatex/optex/bib-iso690.opm b/macros/luatex/optex/bib-iso690.opm
index 8f341330c6..3265eaea05 100644
--- a/macros/luatex/optex/bib-iso690.opm
+++ b/macros/luatex/optex/bib-iso690.opm
@@ -1,6 +1,6 @@
% This is part of OpTeX project, see http://petr.olsak.net/optex
-% bibliography style (iso690), version <2020-03-10>
+% bibliography style (iso690), version <2020-03-10>, loaded on demand by \usebib
\_ifx\_optexbibstyle\_undefined \_errmessage
{This file can be read by: \_string\usebib/? (iso690) bibfiles command only}
diff --git a/macros/luatex/optex/bib-simple.opm b/macros/luatex/optex/bib-simple.opm
index 46824cb81d..347d90bb14 100644
--- a/macros/luatex/optex/bib-simple.opm
+++ b/macros/luatex/optex/bib-simple.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-% bibliography style (simple), version <2020-03-10>
+% bibliography style (simple), version <2020-03-10>, loaded on demand by \usebib
\_ifx\_optexbibstyle\_undefined \_errmessage
{This file can be read by: \_string\usebib/? (simple) bibfiles command only}
diff --git a/macros/luatex/optex/cite-bib.opm b/macros/luatex/optex/cite-bib.opm
index 505b18bb35..7f5b184d93 100644
--- a/macros/luatex/optex/cite-bib.opm
+++ b/macros/luatex/optex/cite-bib.opm
@@ -187,6 +187,7 @@
\_def\_bibB[#1]{\_par \_bibskip
\_advance\_bibnum by1
\_noindent \_def\_tmpb{#1}\_wbib{#1}{\_the\_bibnum}{\_the\_bibmark}%
+ \_printlabel{#1}%
\_printbib \_ignorespaces
}
\_def\_wbib#1#2#3{\_dest[cite:\_the\_bibnum]%
diff --git a/macros/luatex/optex/colors.opm b/macros/luatex/optex/colors.opm
index 52dd349f5e..c4ce83ecd9 100644
--- a/macros/luatex/optex/colors.opm
+++ b/macros/luatex/optex/colors.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \colordef {Colors <2020-03-07>}
+\_codedecl \colordef {Colors <2020-03-18>} % loaded in format
\_doc -----------------------------
We declare internal boolean value `\_iflocalcolor` ad do
@@ -107,7 +107,7 @@
\_cod -----------------------------
\_def\_rgbtocmyk #1 #2 #3 ;{%
- \_ea \_stripzeros \_directlua{
+ \_ea \_stripzeros \_detokenize \_ea{\_directlua{
local kr = math.max(#1,#2,#3)
if (kr==0) then
tex.print('0. 0. 0. 1 ;')
@@ -115,23 +115,23 @@
tex.print(string.format('\_pcent.3f \_pcent.3f \_pcent.3f \_pcent.3f ;',
(kr-#1)/kr, (kr-#2)/kr, (kr-#3)/kr, 1-kr))
end
-}}
+}}}
\_def\_cmyktorgb #1 #2 #3 #4 ;{%
- \_ea \_stripzeros \_directlua{
+ \_ea \_stripzeros \_detokenize \_ea{\_directlua{
local kr = 1-#4
tex.print(string.format('\_pcent.3f \_pcent.3f \_pcent.3f ;',
(1-#1)*kr, (1-#2)*kr, (1-#3)*kr))
-}}
+}}}
\_def\_colorcrop{\_directlua{
local m=math.max(color_C, color_M, color_Y, color_K)
if (m>1) then
color_C=color_C/m color_M=color_M/m color_Y=color_Y/m color_K=color_K/m
end
}}
-\_def\_colordefFin{\_colorcrop \_ea \_stripzeros \_directlua{
+\_def\_colordefFin{\_colorcrop \_ea \_stripzeros \_detokenize \_ea{\_directlua{
tex.print(string.format('\_pcent.3f \_pcent.3f \_pcent.3f \_pcent.3f ;',
color_C, color_M, color_Y, color_K))
-}}
+}}}
\_def\_douseK{\_colorcrop \_directlua{
kr=math.min(color_C, color_M, color_Y)
if (kr>=1) then
diff --git a/macros/luatex/optex/doc/op-ring.png b/macros/luatex/optex/doc/op-ring.png
deleted file mode 100644
index 8c8cb5976a..0000000000
--- a/macros/luatex/optex/doc/op-ring.png
+++ /dev/null
Binary files differ
diff --git a/macros/luatex/optex/doc/optex-doc.pdf b/macros/luatex/optex/doc/optex-doc.pdf
index 66f676f54e..8ce027841f 100644
--- a/macros/luatex/optex/doc/optex-doc.pdf
+++ b/macros/luatex/optex/doc/optex-doc.pdf
Binary files differ
diff --git a/macros/luatex/optex/doc/optex-doc.tex b/macros/luatex/optex/doc/optex-doc.tex
index 155499cba4..7035a0866f 100644
--- a/macros/luatex/optex/doc/optex-doc.tex
+++ b/macros/luatex/optex/doc/optex-doc.tex
@@ -8,7 +8,7 @@
\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}}
\everyintt={\catcode`\<=13}
\everytt=\everyintt
-\chardef\"="201C
+\enquotes
\def\new{\mnote{\Red$\blacktriangleleft$}}
\fixmnotes\right
@@ -22,16 +22,16 @@
\tit \OpTeX/\nl Format Based on Plain \TeX/ and OPmac\fnotemark1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hfill Version 0.06
+\hfill Version 0.07
\centerline{\it Petr Olšák, 2020}
\bigskip
\centerline{\url{http://petr.olsak.net/optex}}
-\fnotetext {The OPmac package is a set of simple additional macros to plain\TeX{}. It
+\fnotetext {The OPmac package is a set of simple additional macros to Plain \TeX{}. It
enables users to take advantage of basic \LaTeX/ functionality but keeps
-plain \TeX/ simplicity. See
+Plain \TeX/ simplicity. See
\url{http://petr.olsak.net/opmac-e.html} for more information about it.
For OPmac users: the red triangle {\Red$\blacktriangleleft$} in the right margin
means that there is a difference from standard OPmac features.}
@@ -42,11 +42,11 @@ means that there is a difference from standard OPmac features.}
\nonum \sec Introduction
%%%%%%%%%%%%
-\OpTeX/ is \LuaTeX/ format with plain \TeX/ and OPmac. Only \LuaTeX/ engine
+\OpTeX/ is \LuaTeX/ format with Plain \TeX/ and OPmac. Only \LuaTeX/ engine
is supported. The main goal of \OpTeX/ is:
\begitems
-* \OpTeX/ keeps the simplicity (like in plain \TeX/ and OPmac macros).
+* \OpTeX/ keeps the simplicity (like in Plain \TeX/ and OPmac macros).
* There is no old obscurities concerning with various 8-bit encodings and
various engines.
* \OpTeX/ provides a powerful font selection system (for Unicode font
@@ -54,12 +54,12 @@ is supported. The main goal of \OpTeX/ is:
* \OpTeX/ supports hyphenations of all languages installed in your \TeX/ system.
* All features from OPmac macros are copied.
* Macros are documented in the same place where code is (macros for printing
- this documentation will come in the future).
+ such documentation will come in the future).
* User name space of control sequences is separated from internal name space
- of OpTeX and primitives (`\foo` versus `\_foo`).
+ of \OpTeX/ and primitives (`\foo` versus `\_foo`).
\enditems
-\OpTeX/ should be a modern plain \TeX/ with power from OPmac (fonts selection
+\OpTeX/ should be a modern Plain \TeX/ with power from OPmac (fonts selection
system, colors, external graphics, references, hyperlinks, indexing,
bibliography, ...) with preferred Unicode fonts.
@@ -67,21 +67,25 @@ If you need to customize your document or you need to use something
very specific, then you can copy relevant parts of \OpTeX/ macros into your macro
file and do changes of these macros here. This is significant difference from
\LaTeX/ or ConTeXt, which are an attempt to create a new user level with a
-plenty of non-primitive parameters and syntax hidding \TeX/ internals.
-The macros from \OpTeX/ are simple and straightforward because they solves only
-what is excplicitly needed, they does not create a new user level over \TeX/.
-And you can use them, understand them an modify them.
+plenty of non-primitive parameters and syntax hiding \TeX/ internals.
+The macros from \OpTeX/ are simple and straightforward because they solve only
+what is explicitly needed, they does not create a new user level for
+controlling your document over \TeX/.
+And you can use \OpTeX/ macros, understand them an modify them.
\OpTeX/ offers a markup language for authors of texts (like \LaTeX),
-i.e. the fixed set of tags to define the structure of the document. This
+i.\,e.\ the fixed set of tags to define the structure of the document. This
markup is different from the \LaTeX{} markup. It may offer to write the
source text of the document somewhat clearer and more attractive.
\new
{\bf Disclaimer:} This software is under construction. It is possible
-that some features documented here will be changed in future. There exists a
-large part of original OPmac macros included in \OpTeX/ which waits to its
-re-implementation at current state of development.
+that some features documented here will be changed in future.
+
+This manual desribes \OpTeX/ features only. We suppose that user knows \TeX/
+basic principles. They are described in many books. You can see a short
+document \ulink[http://petr.olsak.net/ftp/olsak/optex/tex-nutshell.pdf]
+{\TeX/ in nutshell} too.
\sec Starting with \OpTeX/
@@ -111,7 +115,7 @@ The first line `\fontfam[LMfonts]` tells that Unicode Latin Modern
fonts (derived from Computer Modern) are used. If you omit this line then
preloaded Latin Modern fonts are used but preloaded fonts cannot be in
Unicode\fnote
-{This is technical limitations of \LuaTeX/ for fonts downloaded in formats:
+{This is a technical limitation of \LuaTeX/ for fonts downloaded in formats:
only 8bit fonts can be preloaded.}.
So the sentence `Hello World` will be OK without the first line, but you
cannot print such sentence in another languages (for example `Ahoj světe!`)
@@ -121,11 +125,11 @@ fonts.
A somewhat larger example with common settings should be:
-\begtt
-\fontfam[Termes] % selecting Unicode font family Termes
-\typosize[11/13] % setting the basic font size and the baselineskip
-\margins/1 a4 (1,1,1,1)in % setting 1in margins for A4 paper
-\cslang % Czech hyphenation patterns
+\begtt \catcode`!=0
+\fontfam[Termes] % selecting Unicode font family Termes (section !ref[fontfam])
+\typosize[11/13] % setting the basic font size and the baselineskip (sec. !ref[sizes])
+\margins/1 a4 (1,1,1,1)in % setting 1in margins for A4 paper (section !ref[marg])
+\cslang % Czech hyphenation patterns (section !ref[lang])
Tady je text.
\bye
@@ -137,15 +141,15 @@ You can look at `op-demo.tex` file for more examples.
\sec Page layout
%%%%%%%%%%%%%%%%
-\secc Setting the margins
-%%%%%%%%%%%%%%%%%%%%%%%%
+\secc[marg] Setting the margins
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\OpTeX/ declares paper formats a4, a4l (landscape~a4), a5, a5l, b5, letter and
user can declare another own format by `\sdef`:
\begtt
-\sdef{pgs:b5l}{(250,176)mm}
-\sdef{pgs:letterl}{(11,8.5)in}
+\sdef{_pgs:b5l}{(250,176)mm}
+\sdef{_pgs:letterl}{(11,8.5)in}
\endtt
The `\margins` command declares margins of the document. This command have
@@ -182,10 +186,10 @@ parameter is empty (`\vsize` instead `\hsize` is used). Examples:
If `<pg>=1` then all pages have the same margins. If `<pg>=2` then the
declared margins are true for odd pages. The margins at the even pages are
-mirrored in such case, it means that <left> is replaced by <right> and vice
-versa.
+automaticaly mirrored in such case, it means that <left> is replaced by
+<right> and vice versa.
-The `<fmt>` can be in the form `(<width>,<height>)<unit>` where `<unit>` is
+The `<fmt>` can be also in the form `(<width>,<height>)<unit>` where `<unit>` is
optional. If it is missing then `<unit>` after margins specification is
used. For example:
@@ -215,32 +219,34 @@ review printing. After review is done, the second line can be commented out.
\secc Concept of default page
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\OpTeX/ uses for page design very similar \"output routine" like plain
+\OpTeX/ uses for page design very similar \"output routine" like Plain
\TeX/. There is `\headline` followed by \"page body" followed by
`\footline`. The `\headline` is empty by default and it can be used
for running headers repeated on each page. The `\footline` prints
-page number in the center by default. You can set the `\footline` to empty
+centered page number by default. You can set the `\footline` to empty
using `\nopagenumbers` macro.
-The margins declared by `\margins` macro is concerned to the page body,
-i.e.\ the `\headline` and `\fooline` are placed to the top and bottom
+The margins declared by `\margins` macro (documented in the previous
+section~\ref[marg]) is concerned to the page body,
+i.e.\ the `\headline` and `\footline` are placed to the top and bottom
margins.
-The distance between `\headline` and the top of page body is given by
-`\hedalinedist` register. The distance between bottom of page body and `\footline` is
-given by `\footlinedist`. The default values are:
+The distance between the `\headline` and the top of the page body is given by
+`\headlinedist` register. The distance between bottom of the page body and
+the `\footline` is given by `\footlinedist`. The default values are:
\begtt
\headline = {}
\footline = {\_hss\_rmfixed \_folio \_hss} % \folio expands to page number
-\headlinedist = 14pt % from baseline of \hedaline to top of page body
+\headlinedist = 14pt % from baseline of \headline to top of page body
\footlinedist = 24pt % from last line in pagebody to baseline of footline
\endtt
The page body should be divided to top insertions (floating tables and
-figures), real text and footnotes. Typicaly only real text is here.
+figures) followed by a real text and followed by footnotes.
+Typically, only real text is here.
-The `\pgbackground` tokens list is empty by default but it ca be used for
+The `\pgbackground` tokens list is empty by default but it can be used for
creating background of each page (colors, picture, watermark for example).
The macro `\draft` uses this register and puts big text DRAFT as watermark
to each page. You can try it.
@@ -251,7 +257,7 @@ More about the page layout is documented in files `parameters.opm` and
\secc Footnotes and marginal notes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-The plain \TeX/'s macro `\footnote` can be used as usual. But a new macro
+The Plain \TeX/'s macro `\footnote` can be used as usual. But a new macro
`\fnote{<text>}` is defined. The footnote mark is added automatically and it
is numbered
\new
@@ -259,44 +265,54 @@ on each chapter from one\fnote
{You can declare `\fnotenumglobal` if you want footnotes numbered in whole
document from one or `\fnotenumpages` if you want footnotes numbered at each
page from one. Default setting is `\fnotenumchapters`}.
-The <text> is scaled by `\typoscale[800]`.
-User can redefine fotnote mark or scaling, as shown in the file
+The <text> is scaled to 80 \%.
+User can redefine footnote mark or scaling, as shown in the file
`fnotes.opm`.
The `\fnote` macro is fully applicable only in \"normal outer" paragraph.
It doesn't work inside boxes (tables for example). If you are solving such
-case you can use `\fnotemark<number>` inside the box (only the footnote mark is
-generated). When the box is finished you can use `\fnotetext{<text>}`. This
-macro puts the <text> to the footnote. The <number> after `\fnotemark`
-have to be "1" if only one such command is in the box. Second `\fnotemark`
-inside the same box have to have the parameter `2` etc.
+case you can use `\fnotemark<numeric-label>` inside the box: only the
+footnote mark is generated here. When the box is finished you can use
+`\fnotetext{<text>}`. This macro puts the <text> to the footnote.
+The <numeric-label> have to be `1` if only one such command is in the box.
+Second `\fnotemark` inside the same box have to have the parameter `2` etc.
The same number of `\fnotetext`s have to be written
after the box as the number of `\fnotemark`s inserted inside the box.
+Example:
+
+\begtt
+Text in a paragraph\fnote{First notice}... % a "normal" footnote
+\table{...}{...\fnotemark1...\fnotemark2...} % two footnotes in a box
+\fnotetext{Second notice}
+\fnotetext{Third notice}
+...
+\table{...}{...\fnotemark1...} % one footnote in a box
+\fnotetext{Fourth notice}
+\endtt
The marginal note can be printed by the `\mnote{<text>}` macro. The <text>
is placed to the right margin on the odd pages and it is placed to the left
margin on the even pages. This is done after second \TeX{} run because the
-relevant information is stored in an external file. If you need to place the
-notes only to the fixed margin write `\fixmnotes\right` or
-`\fixmnotes\left`.
+relevant information is stored in an external file and read from it again.
+If you need to place the notes only to the fixed margin write
+`\fixmnotes\right` or `\fixmnotes\left`.
The <text> is formatted as a little paragraph with the maximal width
`\mnotesize` ragged left on the left margins or ragged right on the right
-margins. The first line of this little paragraph is at the same height as
-the invisible mark created by `\mnote` in the current paragraph. The
-exceptions are possible by `\mnoteskip` register. You can implement such
-exceptions to each `\mnote` manually in final printing in order to margin
-notes do not overlap. The positive value of `\mnoteskip` shifts the note up
-and negative value shifts it down. For example
-`\mnoteskip=2\baselineskip \mnote{<text>}` shifts this (and only this) note
-two lines up.
+margins. The first line of this little paragraph has its vertical position
+given by the position of `\mnote` in the text. The exceptions are possible
+by setting the `\mnoteskip` register. You can implement such exceptions to
+each `\mnote` manually in final printing in order to margin notes do not
+overlap. The positive value of `\mnoteskip` shifts the note up and negative
+value shifts it down. For example `\mnoteskip=2\baselineskip \mnote{<text>}`
+shifts this (and only this) note two lines up.
\sec Fonts
%%%%%%%%%%
-\secc Font families
-%%%%%%%%%%%%%%%%%%%
+\secc[fontfam] Font families
+%%%%%%%%%%%%%%%%%%%%%%%
You can select the font family by `\fontfam[<Family-name>]`.
The argument <Family-name> is case insensitive and spaces are ignored. So,
@@ -306,16 +322,18 @@ to `\fontfam[lmfonts]`. Several aliases are prepared, thus
If you write `\fontfam[?]` then all font families registered in \OpTeX/
are listed on the terminal and in the log file.
-
If you write `\fontfam[catalog]` then a catalog of all fonts registered in
-\OpTeX/ and available in your \TeX/ system is printed. And the instructions
+\OpTeX/ and available in your \TeX/ system is printed. The instructions
how to register your own font family is appended in such catalog.
If the family is loaded then {\em font modifiers} applicable in such font family
are listed on the terminal: (`\caps`, `\cond` for example).
And there are four basic {\em variant selectors} (`\rm`, `\bf`, `\it`, `\bi`).
+The usage of variant selectors is the same as in Plain \TeX:
+`{\it italics text}`, `{\bf bold text}` etc.
+
The font modifiers (`\caps`, `\cond` for example) can
-be used immediately before a basic variant selector and they
+be used before a basic variant selector and they
can be (independently) combined: `\caps\it` or `\cond\caps\bf`. The
modifiers keeps their internal setting until group ends or until another
modifier which negates the previous feature is used. So
@@ -323,14 +341,14 @@ modifier which negates the previous feature is used. So
\new
There is one special variant selector `\currvar` which does not change the
-selected variant but reloads the font in respect of the (maybe newly
-specified) font modifiers(s).
+selected variant but reloads the font due to the (maybe newly
+specified) font modifier(s).
The context between variants `\rm`--`\it` and `\bf`--`\bi` is kept by the `\em`
macro (emphasize text).
It switches from current `\rm` to `\it`, from current `\it` to `\rm`, from
current `\bf` to `\bi` and from current `\bi` to `\bf`.
-The needed italics correction `\/` is inserted automatically. Example:
+The italics correction `\/` is inserted automatically. Example:
\begtt
This is {\em important} text. % = This is {\it important\/} text.
@@ -342,10 +360,10 @@ This is {\em important} text. % = This is {\it important\/} text.
\new
More about the \OpTeX/ font selection system is written the file
`fonts-select.opm`. You can mix more font families in your document, you can
-declare your variant selectors or modifiers etc.
+declare your own variant selectors or modifiers etc.
-\secc Font sizes
-%%%%%%%%%%%%%%%
+\secc[sizes] Font sizes
+%%%%%%%%%%%%%%%%%%%%%
The command `\typosize[<fontsize>/<baselineskip>]` sets the font size of text and
math fonts and baselineskip. If one of these two parameters is empty, the
@@ -356,7 +374,7 @@ for instance `\ptunit=1mm` enlarges all font sizes declared by `\typosize`.
Examples:
\begtt
-\typosize[10/12] % default of plainTeX
+\typosize[10/12] % default of Plain TeX
\typosize[11/12.5] % font 11pt, baseline 12.5pt
\typosize[8/] % font 8pt, baseline unchanged
\endtt
@@ -379,15 +397,15 @@ i.e. the value stays unchanged. Examples:
\begtt
\typoscale[800/800] % fonts and baselineskip re-size to 80 %
-\typoscale[\magstep2/] % fonts bigger 1,44times
+\typoscale[\magstep2/] % fonts bigger 1,44times (\magstep2 expands to 1440)
\endtt
First usage of `\typosize` or `\typoscale` macro in your document sets so
-called {\em main values}, i.~e. main font size and main baselineskip. They are internally
+called {\em main values}, i.\,e.\ main font size and main baselineskip. They are internally
saved in registers `\mainfosize` and `\mainbaselineskip`.
\new
-The `\typoscale` comand does scaling in respect to current values by default.
+The `\typoscale` command does scaling in respect to current values by default.
If you want to do it in respect to main values, type `\scalemain` immediately
before `\typoscale` command.
@@ -403,9 +421,14 @@ The size of the current font can be changed by the command
baselineskip.
\new
-There is `\setfontsize{<size-spec>}` command which behaves like
-font modifiers and sets given font size o fonts loaded by next variant selectors.
-For example `\setfontsize{at15pt}\currvar`.
+There is \"low level" `\setfontsize{<size-spec>}` command which behaves like
+a font modifier and sets given font size used by next variant selectors.
+For example `\setfontsize{at15pt}\currvar` sets current variant to 15pt.
+
+If you are using a font family with \"optical sizes feature" (i.\,e.\ there
+are more recommended sizes of the same font which are not scaled
+linearly; good example is Computer Modern aka Latin Modern fonts)
+then the recommended size is selected by all mentioned commands automatically.
More information about resizing of fonts is documented in `fonts-resize.opm`
file.
@@ -413,18 +436,20 @@ file.
\secc Typesetting math
%%%%%%%%%%%%%%%%%%%%%
-\OpTeX/ preloads a collection of 7bit Computer Modern and AMS fonts.
-You can use them in any size and in the `\boldmath` variant.
+\OpTeX/ preloads a collection of 7bit Computer Modern math fonts
+and AMS fonts in its format. You can use them in any size and in the
+`\boldmath` variant.
%
\new
-Most declared font families are configured with recommended Unicode
-math font. This font is automaticlally loaded unless you specify
+Most declared text font families (see `\fontfam` in the section~\ref[fontfam])
+are configured with recommended Unicode
+math font. This font is automaticlaly loaded unless you specify
`\noloadmath` before first `\fontfam` command. See log file for more
information about loading text font family and Unicode math fonts. If you
prefer another Unicode math font, specify it by `\loadmath{[<font-file>]}`
or `\loadmath{font-name}` before first `\loadfam` command.
-Hundreds math symbols and operators like in AMS\TeX/ are accesible.
+Hundreds math symbols and operators like in AMS\TeX/ are accessible.
For example `\alpha` $\alpha$, `\geq`~$\geq$, `\sum` $\sum$,
`\sphericalangle` $\sphericalangle$, `\bumpeq`, $\bumpeq$. See AMS\TeX/
manual for complete list of symbols.
@@ -443,8 +468,10 @@ The following math alphabets are available:
\bi % sans serif bold slanted $/bi abc-xyz,ABC-XYZ$
\endtt
-The last two selectors `\bf` and `\bi` select the sans serif fonts regardless
-current text font family.
+The last two selectors `\bf` and `\bi` select the sans serif fonts in math regardless
+the current text font family. This is common notation for vectors and
+matrices. You can re-declare it, see the file `unimath-codes.opm` where math
+variants of `\bf` and `\bi` selectors are defined.
The math fonts can be scaled by `\typosize` and `\typoscale` macros.
Two math fonts collections are prepared: `\normalmath` for normal weight
@@ -474,16 +501,20 @@ braces are used):
\secc Subsection title <end of line>
\endtt
-The chapters are numbered by one number, sections by two numbers
+If you want to write a title to more lines in your source file then you can
+use percent character before <end of line>. Such <end of line> is not
+scanned and reading of the title continues at next line.
+
+The chapters are automatically numbered by one number, sections by two numbers
(chapter.section) and subsections by three numbers. If there are no chapters
then section have only one number and subsection two.
The implicit design of the titles of chapter etc.\ are implemented in the
-macros `\printchap`, `\printsec` and `\printsecc`. User can simply change
+macros `\_printchap`, `\_printsec` and `\_printsecc`. A designer can simply change
these macros if he/she needs another behavior.
The first paragraph after the title of chapter, section and subsection is
-not indented but you can type `\let\firstnoindent=\relax` if you need all
+not indented but you can type `\let\_firstnoindent=\relax` if you need all
paragraphs indented.
If a title is so long then it breaks to more lines. It is better to hint the
@@ -501,9 +532,9 @@ Apart from chapters, sections and subsections, there are another
automatically numbered objects: equations and captions for tables and
figures.
-If user write the `\eqmark` as the last element of the display mode then
-this equation is numbered. The format is one number in brackets. This number
-is reset in each section.
+If user writes the `\eqmark` as the last element of the display mode then
+this equation is numbered. The equation number is printed in brackets. This number
+resets in each section by default.
If the `\eqalignno` is used, then user can put `\eqmark` to the last column
before `\cr`. For example:
@@ -514,11 +545,12 @@ before `\cr`. For example:
c &= \sqrt{a^2+b^2} & \eqmark \cr}
\endtt
-The next numbered object is caption which is tagged by `\caption/t` for
+The next automatically numbered objects are captions which is tagged by `\caption/t` for
tables and `\caption/f` for figures.
The caption text follows.
The `\cskip` can be used between `\caption` text and the real object (table
-or figure). It is irrelevant, if caption or object is first.
+or figure). You can use two orders: `<caption>\cskip <object>` or
+`<object>\cskip <caption>`.
The `\cskip` creates appropriate vertical space between them. Example:
\begtt
@@ -556,12 +588,19 @@ The caption text is centered. If it occupies more lines then the
last line is centered.
The macro `\caption/f` behaves like `\caption/t` but it is intended for
-figure captions.
+figure captions with independent numbering.
The word (Table, Figure) depends on the actual selected language (see
section~\ref[lang] about languages).
If you wish to make the table or figure as floating object, you need to use
-plain \TeX/ macros `\midinsert` or `\topinsert` terminated by `\endinsert`.
+Plain \TeX/ macros `\midinsert` or `\topinsert` terminated by `\endinsert`.
+Example:
+
+\begtt
+\topinsert % table and its caption is printed at the top of the current page
+ <caption and table>
+\endinsert
+\endtt
\secc References
%%%%%%%%%%%%%%%
@@ -573,7 +612,7 @@ if optional parameter
`[<label>]` is appended to `\chap`, `\sec`,
`\secc`, `\caption/t`, `\caption/f` or `\eqmark`. The alternative syntax is
to use `\label[<label>]` before mentioned commands (not necessarily directly
-before). The reference is realized by `\ref[<label>]` or `\pgref[label]`.
+before). The reference is realized by `\ref[<label>]` or `\pgref[<label>]`.
Example:
\begtt
@@ -587,7 +626,7 @@ Example:
$$ a^2 + b^2 = c^2 \eqmark $$
Now we can point to the section~\ref[beatle] on the page~\pgref[beatle]
-or write about the equation~\ref[pythagoras]. Finally there
+or write something about the equation~\ref[pythagoras]. Finally there
is an interesting Table~\ref[comp-depend].
\endtt
@@ -599,17 +638,21 @@ You can create a reference to whatever else by commands
`\label[<label>]\wlabel{<text>}`. The connection between <label> and
<text> is established. The `\ref[<label>]` will print <text>.
+By default, labels are not printed, of course. But if you are preparing a
+draft version of document, you can declare `\showlabels`. The labels
+are printed at their destination places after such declaration.
+
\secc Hyperlinks, outlines
%%%%%%%%%%%%%%%%%%%%%%%%%
-If the command `\hyperlinks{<color-in>}{<color-out>}` is used at the beginning of
-the file, then the following objects are hyperlinked when PDF output is used:
+If the command `\hyperlinks <color-in> <color-out>` is used at the beginning of
+the document, then the following objects are hyperlinked in the PDF output:
\begitems
* numbers generated by `\ref` or `\pgref`,
* numbers of chapters, sections and subsections in the table of contents,
* numbers or marks generated by `\cite` command (bibliography references),
-* texts printed by `\url` command.
+* texts printed by `\url` or `\ulink` commands.
\enditems
The last object is an external link and it is colored by
@@ -648,7 +691,7 @@ An example: `\url{http://www.olsak.net}` creates \url{http://www.olsak.net}.
The characters \code{\%}, `\`, `#`, `{` and `}` have to be protected by
backslash in the `\url` argument, the other special characters `~`,
`^`, `&` can be written as single character\fnote
-{More exactly, there is the same rules as for \code{\\code} command, see
+{More exactly, there are the same rules as for \code{\\code} command, see
section~\ref[verbatim].}.
You can insert the `\|` command
in the `\url` argument as a potential breakpoint.
@@ -670,12 +713,13 @@ triangle symbol after that.
\new
If you are using a special macro in section titles then `\outlines` macro
may crash. You must declare variant of the macro for outlines case which is
-expandable using `\regmacro`. See section \ref[toc] for more information
+expandable. Use `\regmacro` in such case. See the section \ref[toc] for more information
about `\regmacro`.
The command `\insertoutline{<text>}` inserts next entry into PDF outlines at
-the main level~0. This entry can be placed before table of contents (created
-by `\outlines`) or after it.
+the main level~0. These entries can be placed before table of contents (created
+by `\outlines`) or after it. Theirs hyperlink destination is in the place
+where `\insertoutline` macro is used.
\secc Lists
%%%%%%%%%%
@@ -712,7 +756,7 @@ For example:
* Finito
\enditems
\endtt
-
+%
produces:
\begitems
@@ -727,23 +771,22 @@ produces:
\enditems
Another style can be defined by the command `\sdef{_item:<style>}{<text>}`.
-Default item can be redefined by `\def\normalitem{<text>}`.
+Default item can be set by `\defaultitem={<text>}`.
The list environments can be nested. Each new level of item is indented by
next multiple of `\iindent` which is set to `\parindent` by default.
-The vertical space at begin and end of the environment is inserted by the
-macro `\iiskip`.
+More information about design of lists of items are in the `lists.opm` file.
\secc Tables
%%%%%%%%%%%
The macro `\table{<declaration>}{<data>}` provides similar <declaration>
-as in \LaTeX: you can use letters `l`, `r`, `c`, each letter declares
+of tables as in \LaTeX: you can use letters `l`, `r`, `c`, each letter declares
one column (aligned to left, right, center respectively).
These letters can be combined by the `|` character (vertical line). Example
\begtt
\table{||lc|r||}{ \crl
- Month & commodity & price \crli \tskip2pt
+ Month & commodity & price \crli \tskip2pt
January & notebook & \$ 700 \cr
February & skateboard & \$ 100 \cr
July & yacht & k\$ 170 \crl}
@@ -753,7 +796,7 @@ generates the following result:
\bigskip
\hfil\table{||lc|r||}{ \crl
- Month & commodity & price \crli \tskip2pt
+ Month & commodity & price \crli \tskip2pt
January & notebook & \$ 700 \cr
February & skateboard & \$ 100 \cr
July & yacht & k\$ 170 \crl}
@@ -774,8 +817,8 @@ prefixed. For example `3c` means `ccc` or `c 3{|c}` means
`c|c|c|c`. Note that spaces in the <declaration> are ignored and you
can use them in order to more legibility.
-The command `\cr` used in the <data> part of the table (the end row
-separator) is generally known. It marks end row of the table.
+The command `\cr` used in the <data> part of the table
+is generally known. It marks end row of the table.
Moreover \OpTeX/ defines following similar commands:
\begitems
@@ -803,21 +846,21 @@ too.
\tabitemr={\enspace} % right material in each column
\tabstrut={\strut} % strut which declares lines distance in the table
\tablinespace=2pt % additional vertical space before/after horizontal lines
-\vvkern=1pt % space between double vertical line
-\hhkern=1pt % space between double horizontal line
+\vvkern=1pt % space between lines in double vertical line
+\hhkern=1pt % space between lines in double horizontal line
\endtt
-If you do `\tabiteml={$\enspace}\tabitemr={\enspace$}` then
+Example: if you do `\tabiteml={$\enspace}\tabitemr={\enspace$}` then
the `\table` acts like \LaTeX's array environment.
If there is an item which spans to more than one column in the table then
-`\multispan{<number>}` macro from plain \TeX{} can help you or, you can use
+`\multispan{<number>}` macro from Plain \TeX{} can help you or, you can use
`\mspan<number>[<declaration>]{<text>}`
which spans <number> columns and formats the <text> by the
-<declaration>. The <declaration> must include a declaration of right one column
+<declaration>. The <declaration> must include a declaration of only one column
with the same syntax as common `\table` <declaration>.
If your table includes vertical rules and you want to
-create continuous vertical rules by `\mspan`, then use rules
+create continuous vertical rules by `\mspan`, then use rule declarators `|`
only after `c`, `l` or `r` letter in `\mspan` <declaration>. The
exception is only in the case when `\mspan` includes first
column and the table have rules on the left side. The example of `\mspan` usage is below.
@@ -834,18 +877,17 @@ into `\frame` if you need double-ruled border of the table. Example:
%
creates the following result:
-%\bigskip
\hfil\frame{\table{|c||l||r|}{\crl
\mspan3[|c|]{\bf Title} \crl \noalign{\kern\hhkern}\crli
first & second & third \crlli
seven & eight & nine \crli}}
\bigskip
-The `c`, `l`, `r` and `p` are default \"<declaration> letters" but you can define
+The `c`, `l`, `r` and `p` are default \"declaration letters" but you can define
more such letters by `\def\_tabdeclare<letter>{<left>##<right>}`. More about
it is in technical documentation in the file `table.opm`.
-The rule width of tables (and implicit width of all `\vrule`s and `\hrule`s)
+The rule width of tables and implicit width of all `\vrule`s and `\hrule`s
can be set by the command `\rulewidth=<dimen>`. The default value given
by \TeX/ is 0.4\,pt.
@@ -880,8 +922,8 @@ User can change values of the `\parindent` and `\ttindent` independently.
The `\begtt` command starts internal group in which the catcodes are changed.
\new
-Then the `\everytt` string reister is run. It is empty by default and user can
-control fine behavior by it. For example the cactodes can be reset here. If
+Then the `\everytt` tokens register is run. It is empty by default and user can
+control fine behavior by it. For example the catcodes can be reseted here. If
you need to define active character in the `\everytt`, use `\adef` as in the
following example:
@@ -892,11 +934,15 @@ Each occurrence of the exclamation mark will be changed to
the question mark and vice versa. Really? You can try it!
@
\endtt
-
+%
The `\adef` command sets its parameter as active {\it after\/}
-the body of `\everytt` is read. So you can't worry about active
+the value of `\everytt` is read. So you don't have to worry about active
categories.
+There is an alternative to `\everytt` named `\everyintt` which is used for
+in-line verbatim surrounded by an `\activettchar` or processed by the `\code`
+command.
+
The `\everytt` is applied to all `\begtt...\endtt` environments (if it is not
decared in a group). There are tips for such global `\everytt` definitions here:
@@ -907,7 +953,7 @@ decared in a group). There are tips for such global `\everytt` definitions here:
\endtt
\new
-If you want to apply a `\everytt` material only for one `\begtt...\endtt`
+If you want to apply a special code only for one `\begtt...\endtt`
environment then don't set any `\everytt` but put desired material at the
same line where `\begtt` is. For example:
@@ -921,7 +967,7 @@ The in-line verbatim surrounded by an `\activettchar` doesn't work in
parameter of macros and macro definitions, especially in titles declared by
`\chap`, `\sec` etc.
\new
-You ca use more robust command `\code{<text>}` in such
+You can use more robust command `\code{<text>}` in such
situations, but you must escape following characters in the <text>:
`\`, `#`, `%`, braces (if the braces are unmatched in the <text>),
and space or `^` (if there are more than one subsequent spaces or `^` in
@@ -936,10 +982,6 @@ the <text>). Examples:
\code{^\^M} ... prints ^^M, the second ^ must be escaped
\endtt
-There is an alternative to `\everytt` named `\everyintt` which is used for
-in-line verbatim surrounded by an `\activettchar` or processed by the `\code`
-command.
-
You can print verbatim listing from external files by `\verbinput` command.
Examples:
@@ -950,7 +992,7 @@ Examples:
\verbinput (-) program.c % whole file is printed
\verbinput (70+10) program.c % from line 70, only 10 lines printed
\verbinput (+10) program.c % from the last line read, print 10 lines
-\vebrinput (-5+7) program.c % from the last line read, skip 5, print 7
+\verbinput (-5+7) program.c % from the last line read, skip 5, print 7
\verbinput (+) program.c % from the last line read to the end
\endtt
@@ -1045,7 +1087,7 @@ linear~dependency 11, 40--50
\medskip
-To do this you have to declare the parts of the words by the `/` separator.
+To do this you have to declare the parts of the index entries by the `/` separator.
Example:
\begtt
@@ -1072,10 +1114,11 @@ If you really need to insert the space into the index entry, write `~`.
If the `\ii` or `\iid` command is preceded by `\iitype <letter>`, then such
reference (or more references generated by one `\ii`) has specified type.
-They should have different format in the index. \OpTeX/ implements
-`\iitype b` and `\iitype i`. This prints the page number in bold or in
-italics in the index. Default is empty index type, which prints page numbers
-in normal font. See \TeX/book index as an example.
+The page numbers of such references should be formatted
+specially in the index. \OpTeX/ implements only `\iitype b`, `\iitype i` and
+`\iitype u`. The page number in bold or in italics or underlined is printed
+in the index when these types are used. Default index type is empty, which
+prints page numbers in normal font. See \TeX/book index as an example.
The `\makeindex` creates the list of alphabetically sorted index entries
without the title of the section and without creating more columns. \OpTeX/
@@ -1107,29 +1150,28 @@ If the \ii relax `\relax` command is used then \TeX/ is relaxing.
...
\iis chiquadrat {$\chi$-quadrat}
\iis relax {\code{\\relax}}
-...
\endtt
-
-The `\iis <equivalent> {<text>}` creates one entry in the {\em dictionary
-of the exceptions}. The sorting is done by the <equivalent> but the
+%
+The `\iis <equivalent> {<text>}` creates one entry in the \"dictionary
+of the exceptions". The sorting is done by the <equivalent> but the
<text> is printed in the index entry list.
The sorting rules when `\makeindex` runs depends on the current language.
-See section~\ref[lang] about lanuages selection.
+See section~\ref[lang] about languages selection.
\secc Bib\TeX/ing
%%%%%%%%%%%%%%%%
-The command `\cite[<label>]` or its variants of the type
-\hbox{`\cite[<label-1>,<label-2>,...,<label-n>]`}
-create the citations in the form [42] or [15,~19,~26].
+The command `\cite[<label>]` (or its variants of the type
+\hbox{`\cite[<label-1>,<label-2>,...,<label-n>]`})
+creates the citation in the form [42] (or [15,~19,~26]).
If `\shortcitations` is declared at the beginning of the document then
continuous sequences of numbers are re-printed like this:
\hbox{[3--5,~7,~9--11]}. If
`\sortcitations` is declared then numbers generated by one `\cite` command
are sorted upward.
-If `\nonumcitations` is used then the marks instead numbers are generated
+If `\nonumcitations` is declared then the marks instead numbers are generated
depending on the used bib-style. For example the citations look like
[Now08] or [Nowak, 2008].
@@ -1154,14 +1196,14 @@ references list:
\begitems
* Manually using `\bib[<label>]` commands.
-* By `\usebib/<type> (<style>) <bbl-base>` command which reads `*.bib`
- databases directly.
+* By `\usebib/<type> (<style>) <bib-base>` command which reads `*.bib`
+ files directly.
\enditems
\new
Note that another two possibilities documented in OPmac (using external
Bib\TeX/ program) isn't supported because Bib\TeX/ is old program which does not
-supports Unicode. And Biber seems to be not compliant with Plain \TeX.
+support Unicode. And Biber seems to be not compliant with Plain \TeX.
\medskip\noindent
{\bf References created manually using `\bib[<label>]` command.}
@@ -1184,8 +1226,8 @@ equal sign are mandatory. Example:
\noindent
{\bf Direct reading of `.bib` files} is possible by `\usebib` macro.
-This macro reads macro package `opmac-bib.tex` (on demand) which uses the external
-package `librarian.tex` by Paul Isambert. The usage is:
+This macro reads and uses macro package `librarian.tex` by Paul Isambert.
+The usage is:
\begtt
\usebib/c (<style>) <bib-base> % sorted by \cite-order (c=cite),
@@ -1197,36 +1239,16 @@ package `librarian.tex` by Paul Isambert. The usage is:
The <bib-base> is one or more `*.bib` database source files (separated by
spaces and without extension) and the <style> is the part of the filename
`bib-<style>.opm` where the formatting of the references list is
-defined. Possible styles are `simple` or `iso690`. The behavior of
-`opmac-bib.tex` and `opmac-bib-iso690.tex` is full documented in these files
-(after `\endinput` command).
-
-The command `\usebib` select from database files only such bib-records which
-were used in `\cite` or `\nocite` commands in your document. It means, not
-all records are printed. The `\nocite` behaves as `\cite` but prints
-nothing. It only tels that mentioned bib-record should be printed in
-the reference list. If `\notcite[*]` is used then all records from <bib-base>
+defined. \OpTeX/ supports `simple` or `iso690` styles. The behavior of
+`\usebib` is documented in `usebib.opm` and `bib-iso690.opm` files in detail.
+
+Not all records are printed from <bib-base> files: the command `\usebib`
+selects only such bib-records which were used in `\cite` or `\nocite`
+commands in your document. The `\nocite` behaves as `\cite` but prints
+nothing. It only tels that mentioned bib-record should be printed in the
+reference list. If `\notcite[*]` is used then all records from <bib-base>
are printed.
-\medskip\noindent
-{\bf Formatting of the references list} is controlled by the `\printb` macro.
-It is called at the begin of each entry. The default `\printb` macro prints
-the number of the entry in square brackets. If the `\nonumcitations` is set
-then no numbers are printed, only all lines (but no first one) are indented.
-The `\printb` macro can use the following values: `\the\bibnum` (the number
-of the entry) and `\the\bibmark` (the mark of the entry used when
-`\nonumcitations` is set). Examples:
-
-\begtt
-% The numbers are without square brackets:
-\def\printbib{\hangindent=\parindent \indent \llap{\the\bibnum. }}
-% Printing of <marks> when \nonumcitations is set:
-\def\printbib{\hangindent=\parindent \noindent [\the\bibmark]\quad}
-\endtt
-
-Another examples can be found on the
-\ulink[http://petr.olsak.net/opmac-tricks-e.html]{OPmac tricks WWW page}.
-
\sec Graphics
%%%%%%%%%%%%%
@@ -1246,27 +1268,39 @@ Another examples can be found on the
{\Grey `\Grey`},
{\LightGrey `\LightGrey`} and
`\Black`. User can define more
-such selectors by setting the CMYK components. For example
+such selectors by setting four CMYK components
+\new
+or three RGB components. For example
\begtt
\def \Orange {\setcmykcolor{0 0.5 1 0}}
+\def \Purple {\setrgbcolor{1 0 1}}
\endtt
\new
The command `\morecolors` reads more definitions of color selectors
from \LaTeX/ file `x11nam.def`. There is about 300 color names like
`\DeepPink`, `\Chocolate` etc. If there are numbered variants of the same
-name, then you can apend letters B, C, etc. to the name in \OpTeX/. For example
-`\Chocolate` is Chocolate1, `\ChocolateB` is Cocolate2 etc.
+name, then you can append letters B, C, etc. to the name in \OpTeX/. For example
+`\Chocolate` is Chocolate1, `\ChocolateB` is Chocolate2 etc.
\new
-The color selectors work locally in groups by default but with limitiations. See
+The color selectors work locally in groups by default but with limitations. See
the file `colors.opm` for more information.
-Default colors are defined by four CMYK components using `\setcmykcolor` like in
-the example above. But you can define a color with three RGB components too by
-`\setrgbcolor`, for example `\def\Orange{\setrgbcolor{1 0.5 0}}`. All colors
-defined by `\morecolors` are in RGB.
+The colors `\Blue`, `\Cyan` etc. are defined with CMYK components using `\setcmykcolor`.
+But you can define a color with three RGB components too and `\morecolors`
+defines such RGB colors. By default, the color model isn't converted but only stored to
+PDF output for each used color by default. Thus, there may be a mix of color
+models in the PDF output which is not good idea. You can overcome this
+problem by declaration `\onlyrgb` or `\onlycmyk`. Then only selected color
+model is used for PDF output and if an used color is declared by another color
+model then it is converted.
+The `\onlyrgb` creates colors more bright (usable for computer
+presentations). On the other hand CMYK makes colors more true\fnote
+{Printed output is more equal to the monitor preview especialy if you are
+using ICC profile for your printer.}
+for printing.
\new
You can define your color by a linear combination of previously defined colors using
@@ -1279,18 +1313,13 @@ You can define your color by a linear combination of previously defined colors u
\colordef \MyColor {.3\Orange+.5\Green+.2\Yellow}
\endtt
%
+The linear combination is done in CMYK substractive color space by default
+(RGB colors used in `\colordef` argument are converted first).
+If the resulting component is greater than 1 then it is truncated to 1.
If a convex linear combination (as in the last example above) is used then it
-emulates color behavior on a painter's palette.
-
-Only `\setcmykcolor` is used in default colors in \OpTeX/ and `\colordef`
-creates also a colors defined by `\setcmykcolor`. If you define your own
-colors by `\setrgbcolor` or you use `\morecolors` then a mix of color spaces
-should be in the PDF output. The `\onlyrgb` or `\onlycmyk` commands solves
-this problem: only specified color space is used in the
-PDF output and if a color is specified in another color space then it is
-converted. The `\onlyrgb` creates colors more bright (usable for computer
-presentations). On the other hand CMYK makes colors more true when
-they are printing.
+emulates color behavior on a painter's palette.
+You can use `\rgbcolordef` instead `\colordef` if you want to mix colors
+in additive RGB color space.
More about colors, about CMYK versus RGB and
about the `\colordef` command is written in the `colors.opm` file.
@@ -1313,34 +1342,42 @@ The `\coloron` can be defined as follows:
\coloron\Yellow\Brown{The brown text on the yellow backround}
\endtt
-{\bf The watermark} is grey text on the backround of the page. \OpTeX/ offers
-an example: the macro `\draft` which creates grey scaled and rotated text
-DRAFT on the background of every page.
-
\secc Images
%%%%%%%%%%%
-The `\inspic <filename>.<extension><space>` or
-`\inspic {<filename>.<extension>}`
+The `\inspic {<filename>.<extension>}` or
+`\inspic <filename>.<extension><space>`
inserts the picture stored in
-the graphics file with the name `<filename>.<extension>`.
+the graphics file with the name `<filename>.<extension>` to the document.
You can set the picture width by `\picw=<dimen>`
before `\inspic` command which declares the width of the picture
The image files can be in the PNG, JPG, JBIG2 or PDF format.
-The `\picwidth` is an equivalent the register to `\picw`. Moreover there is an
+The `\picwidth` is an equivalent register to `\picw`. Moreover there is an
`\picheight` register which denotes the height of the picture. If both
registers are set then the picture will be (probably) deformed.
-The image files are searched in `\picdir`. This token string is empty
+The image files are searched in `\picdir`. This token list is empty
by default, this means that the image files are searched in the
-current directory.
+current directory. Example: `\picdir={img/}` supposes that image files are
+in `img` subdirectory. Note: the directory name must end by `/` in `\picdir`
+declaration.
+
+Inkscape\fnote
+{A powerfull and free wysiwyg editor for creating vector graphics.}
+is able to save a picture to PDF and labels of the picture to another
+file\fnote
+{Chose \"Omit text in PDF and create LaTeX file" option.}.
+This second file should be read by \TeX/ in order to print labels
+in the same font as document font. \OpTeX/ supports this feature by
+`\inkinspic {<filename>.pdf}` command. It reads and displays both: PDF image
+and labes generated by Inkscape.
If you want to create a vector graphics (diagrams, schema, geometry
-skicing) then you can do it in Wysiwyg graphics editor (Inkscape for
+skicing) then you can do it in Wysiwyg graphics editor (Inkscape, Geogebra for
example), export the result to PDF and include it by `\inspic`.
-If you want to \"proramm" such pictures then Tikz package is recommended.
-It works in plain \TeX.
+If you want to \"programm" such pictures then Tikz package is recommended.
+It works in Plain \TeX.
\secc PDF transformations
%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1352,8 +1389,8 @@ with the current matrix so linear transformations can be composed.
One linear transformation given by the `\pdfsetmatrix` above transforms
the vector $[0,1]$ to $[<a>,<b>]$ and $[1,0]$ to $[<c>,<d>]$.
The stack-oriented commands `\pdfsave` and `\pdfrestore` gives a possibility of
-storing and restoring the current transformation matrix and current point.
-The possition of current point have to be the same from \TeX{}'s point of
+storing and restoring the current transformation matrix and the current point.
+The position of the current point have to be the same from \TeX{}'s point of
view as from transformation point of view when `\pdfrestore` is processed.
Due to this fact the `\pdfsave\rlap{<transformed text>}\pdfrestore`
or something similar is recommended.
@@ -1365,8 +1402,7 @@ or something similar is recommended.
\pdfrotate{<angle-in-degrees>}
\endtt
-These macros simply calls the
-properly `\pdfsetmatrix` primitive command.
+These macros simply calls the properly `\pdfsetmatrix` command.
It is known that the composition of transformations is not commutative. It
means that the order is important. You have to read the transformation
@@ -1388,7 +1424,21 @@ This gives the following result.
First: \pdfsave \pdfrotate{30}\pdfscale{-2}{2}\rlap{text1}\pdfrestore
second: \pdfsave \pdfscale{-2}{2}\pdfrotate{30}\rlap{text2}\pdfrestore
third: \pdfsave \pdfrotate{-15.3}\pdfsetmatrix{2 0 1.5 2}\rlap{text3}\pdfrestore
-\bigskip\bigskip
+\par\nobreak\bigskip\penalty0%\bigskip
+
+You can see that \TeX/ knows nothing about dimensions of transfomed material,
+it treats it as with a zero dimension object.
+This problem is solved by the `\transformbox{<transformation>}{<text>}`
+macro which puts the transformed
+material to a box with relevant dimension. The <transfromation> parameter
+includes one or more transfromation commands `\pdfsetmatrix`, `\pdfscale`,
+`\pdfrotate` with their parameters. The <text> is transformed text.
+
+Example: `\frame{\transformbox{\pdfscale{1}{1.5}\pdfrotate{-10}}{moj}}`
+creates \frame{\transformbox{\pdfscale{1}{1.5}\pdfrotate{-10}}{moj}}.
+
+The `\rotbox{<deg>}{<text>}` is a shortcut for
+`\transformbox{\pdfrotate{<deg>}}{<text>}`.
\sec Others
@@ -1418,92 +1468,62 @@ macro. This macro prints now:
\new
For compatibility with e-plain macros, there is the command
`\uselanguege{<language>}`. The parameter <language> is long form of
-language name, i.e.\ `\uselanguage{Czech}` does the same work as `\cslang`.
+language name, i.e.\ `\uselanguage{Czech}` works the same as `\cslang`.
The `\uselanguage` parameter is case insensitive.
-For compatibility with \csplain/ there are macros `\ehyph`, `\chyph`,
+For compatibility with \csplain/, there are macros `\ehyph`, `\chyph`,
`\shyph` which are equivalent to `\enlang`, `\cslang` and `\sklang`.
You can switch between language patterns by `\<iso-code>lang` commands mentioned
-above. Defalut is `\enlang`.
+above. Default is `\enlang`.
\OpTeX/ generates three words used for captions and titles in technical
-articles or books: \"Chapter", \"Table" and \"Figure". These words need to be know
-in used language and it depends on the previsously used language selectors
+articles or books: \"Chapter", \"Table" and \"Figure". These words need to be known
+in used language and it depends on the previously used language selectors
`\<iso-code>lang`. \OpTeX/ declares these words only for few languages:
\new
Czech, German, Spanish, French, Greek, Italian, Polish, Russian, Slovak and
English, If you need to use these words in another languages or you want to
auto-generate more words in your macros, then you can declare it by
-`\sdef` commands as shown in the file `languages.opm`.
+`\sdef` or `\_langw` commands as shown in the file `languages.opm`.
The `\makeindex` command needs to know the sorting rules used in your language.
\OpTeX/ defines only few language rules for sorting: Czech,
Slovak and English. How to declare sorting rules for more languages are
described in the file `makeindex.opm`.
-\iffalse
-And you can optionally
-define the `\specsortingdata<iso-code>` macro. Example:
-%{\emergencystretch=2em\par}
-
-\begtt
-\def\sortingdataes {aAäÄáÃ,bB,cCçÇ,^^P^^Q^^R,dD,...,zZ,.}
-\def\specsortingdataes {ch:^^P Ch:^^Q CH:^^R}
-\endtt
-
-There are groups of letters separated by comma and ended by comma-dot in
-the parameter of the macro `\sortingdata<iso-code>`. (In the example above, three dots must
-be replaced by real data by the user.) All letters in one group are not
-distinguished during first step of sorting (primary sorting). If some items
-are equal from this point of view then the secondary sorting is processed
-for such items where all mentioned letters are distinguished in the order
-given in the macro.
-
-Sorting algorithm can treat couple of letters (like Dz, Ch etc.) as one letter
-if the parameter of the macro `\specsortingdata<iso-code>` is defined. There is
-a space separated list of items in the form `<couple>:<one-token>`. The
-replacing from <couple> to <one-token> is done before sorting, so you can
-use `<one-token>` in the `\sortingdata<iso-code>` macro. The `<one-token>`
-must be something special not used as the letter of the alphabet. The usage of
-`^^A`, `^^B` etc. is recommended but you must avoid the `^^I` and `^^M` because
-these characters have special catcode.
-
-The macros `\sortingdata<iso-code>` and `\specsortingdata<iso-code>` are
-active when the language selector `\<iso-code>lang` is used.
-
-The list of ignored characters for sorting point of view is defined in the
-`\setignoredchars` macro. \OpTeX/ defines this macro like:
-
-{\catcode`\<=12
-\begtt
-\def\setignoredchars{\setlccodes ,.;.?.!.:.'.".|.(.).[.].<.>.=.+.{}{}}
-\endtt
-}%
-It means that comma, semicolon, question mark, \dots, plus mark are treated
-as dot and dot is ignored by sorting algorithm. You can redefine this macro,
-but you must keep the format, keep `\setlccodes` in the front and `{}{}` in
-the end.
-\fi
+If you declare `\<iso-code>quotes`, then the control sequences `\"` and `\'`
+should be used like this: `\"<quoted text>"` or `\'<quoted text>'`
+(note that the terminating character is the same but it isn't escaped).
+This prints language dependent normal or alternative quotes around
+<quoted text>. The language is specified by <iso-code>. \OpTeX/ declares
+quotes only for Czech, German, Spanish, French, Greek, Italian, Polish,
+Russian, Slovak and English (`\csquotes`, `\dequotes`, \dots, `\enquotes`).
+You can simply define your own quotes as shown in `languages.opm` file.
+The `\"` is used for quotes visualy more similar to the `"` character which
+can be primary quotes or secondary quotes depending on the language rules.
+May be you want to alternate meaning of these two types of quotes. Use
+`\<isocode>quotes\atlquotes` in such case.
\secc Pre-defined styles
%%%%%%%%%%%%%%%%%%%%%%%
-\OpTeX/ defines two style-declaration macros `\report` and `\letter`
-You can use them at the beginning of your document if you are
+\OpTeX/ defines three style-declaration macros `\report`, `\letter` and
+`\slides`. You can use them at the beginning of your document if you are
preparing these types of document and you don't need to create your own
macros.
The `\report` declaration is intended to create reports. It
sets default font size to 11\,pt and `\parindent` (paragraph indentation) to 1.2\,em.
-The `\tit` macro uses smaller font because we assume that \"chapter" level
+The `\tit` macro uses smaller font because we assume that \"chapter level"
will be not used in reports. The first page has no page number, but next pages
are numbered (from number~2). Footnotes are numbered from one in whole
document. The macro `\author <authors><end-line>` can be used when
`\report` is declared. It prints `<authors>` in italics at center of the
line. You can separate authors by `\nl` to more lines.
-The `\letter` declaration is intended to create letters. It sets default
+The `\letter` declaration is intended to create letters. See an example in
+the file `op-letter.tex`. The `\letter` style sets default
font size to 11\,pt and `\parindent` to 0\,pt. It sets half-line space
between paragraphs. The page numbers are not printed. The `\subject` macro
can be used, it prints the word \"Subject:" or \"Věc" (or something else
@@ -1527,10 +1547,13 @@ of lines in the source file are the same as in printed output. The
document. Or you can use `<prefixed text>\address...` to put
`<prefixed text>` before first line of the address.
-Analogical declaration macros `\book` or `\slides` are not prepared. Each
-book needs an individual typographical care so you need to create specific
-macros for design. And you can find an inspiration of slides in OPmac tricks
-\ulink[http://petr.olsak.net/opmac-tricks-e.html\#slidy]{0017 and 0022}.
+The `\slides` style ceates a simple presentation slides. See an example
+in the file `op-slides.tex`. Run `optex op-slides.tex` and see the usage of
+`\slides` style in the file `op-slides.pdf`.
+
+Analogical declaration macros `\book` is not prepared. Each book needs an
+individual typographical care so you need to create specific macros for
+design.
\secc Lorem ipsum dolor sit
%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1545,6 +1568,17 @@ because there are 150 paragraphs with neutral text prepared for you.
The `\lipsum` macro is equivalent to `\lorem`. Example `\lipsum[1-150]`
prints all prepared paragraphs.
+\secc Logos
+%%%%%%%%%%
+
+\new
+The control sequences for typical logos can be terminated by optional `/`
+which is ignored when printing. This makes logos more legible in source file:
+
+\begtt
+We are using \TeX/ because it is cool. \OpTeX/ is better than \LaTeX.
+\endtt
+
\secc The last page
%%%%%%%%%%%%%%%%%%%
@@ -1570,14 +1604,13 @@ zero (in first \TeX/ run) or to the number of all pages in the document
\new
The command `\useOpTeX` (or `\useoptex`) does nothing in \OpTeX/ but it causes
-an error (undefined control sequence) when another format is used. You can use it as
-the first command in your document:
+an error (undefined control sequence) when another format is used. You can
+put it as the first command in your document:
\begtt
-\useOpTeX % we are using OpTeX format, no LaTeX
+\useOpTeX % we are using OpTeX format, no LaTeX :)
\endtt
-
\sec Summary
%%%%%%%%%%%%
@@ -1623,8 +1656,8 @@ the first command in your document:
\inspic file.ext % insert a picture, extensions: jpg, png, pdf
\table {rule}{data} % simple macro for the tables like in LaTeX
-\fnote % footnote (local numbering on each page)
-\mnote % note in the margin (left or right by page number)
+\fnote {text} % footnote (local numbering on each page)
+\mnote {text} % note in the margin (left or right by page number)
\hyperlinks {color-in}{color-out} % PDF links activate as clickable
\outlines {level} % PDF will have a table of contents in the left tab
@@ -1632,20 +1665,20 @@ the first command in your document:
\magscale[factor] % resize typesetting, line/page breaking unchanged
\margins/pg format (left, right, top, bottom)unit % margins setting
-\report \letter % style declaration macros
+\report \letter \slides % style declaration macros
\endtt
\sec Compatibility with Plain \TeX/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-All macros of plain \TeX/ are re-written in \OpTeX/. Common macros should be
-work in the same sense as in original plain \TeX. Internal control sequences
+All macros of Plain \TeX/ are re-written in \OpTeX/. Common macros should
+work in the same sense as in original Plain \TeX. Internal control sequences
\new
like `\p@` or `\f@@t` are removed and mostly replaced by control sequences
prefixed by `_` (like `\_this`). All primitives and common macros have two
-control sequences in prefixed and unprefixed form with the same
-meaning. For example `\hbox` is equal to `\_hbox`.
+control sequences with the same meaning: in prefixed and unprefixed form.
+For example `\hbox` is equal to `\_hbox`.
Internal macros of \OpTeX/ have and use only prefixed form. User should use
unprefixed forms, but prefixed forms are accessible too, because the `_` is
set as a letter category code globally (in macro files and in users document too). User
@@ -1661,15 +1694,17 @@ use after the command `\fontfam[LMfonts]` which reads the fonts in OTF
format.
\new
-The accents macros like `\'`, `\v` are undefined in \OpTeX/. Use real
+The text accents macros like `\'`, `\v`, `\"` are undefined\fnote
+{The math accents macros like `\acute`, `\bar`, `\dot`, `\hat` still work.}
+in \OpTeX/. Use real
letters like á, ř, ž in your source document instead these old accents macros.
If you really want to use them, you can initialize them by `\oldaccents`
command. But we don't recommend it.
\new
-The default paper size is not set as letter with 1\,in margins but as a4 with
+The default paper size is not set as letter with 1\,in margins but as A4 with
2.5\,cm margins. You can change it, for example by
-`\margins/1 letter (1,1,1,1)in`. This example sets the classical plain TeX
+`\margins/1 letter (1,1,1,1)in`. This example sets the classical Plain \TeX/
page layout.
\new
diff --git a/macros/luatex/optex/fams-ini.opm b/macros/luatex/optex/fams-ini.opm
index f9d3110f13..265150b118 100644
--- a/macros/luatex/optex/fams-ini.opm
+++ b/macros/luatex/optex/fams-ini.opm
@@ -1,5 +1,7 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
+% Version <2020-02-28>. Loaded in format and secondly on demand by \fontfam[catalog]
+
\_famtext {Special name for printing a catalogue:}
\_faminfo [Catalogue] {Catalogue of all registered font families} {fonts-catalog} {}
diff --git a/macros/luatex/optex/fnotes.opm b/macros/luatex/optex/fnotes.opm
index 97982e7266..9f9a9d3f5e 100644
--- a/macros/luatex/optex/fnotes.opm
+++ b/macros/luatex/optex/fnotes.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \fnote {Footnotes, marginal notes OpTeX <2020-03-11>}
+\_codedecl \fnote {Footnotes, marginal notes OpTeX <2020-03-19>} % loaded in format
\_doc -----------------------------
\begitems
@@ -36,9 +36,20 @@
\endtt
This code gives footnotes* and ** and*** and† etc.
and it supposes that there are no more than 6 footnotes at one page.
+
+ If you want to distinguish between footnote marks in the text and in the front of
+ footnote itself, then you can define `\_printfnotemarkA` and `\_printfnotemarkB`.
+ The following example shows an implementation of hyperlinked footnotes
+ (from text to footnote and bacward):
+ \begtt
+ \def\_printfnotemarkA{\ilink[fnB:\the\gfnotenum]{\_printfnotemark}\dest[fnA::\the\gfnotenum]}
+ \def\_printfnotemarkB{\ilink[fnA:\the\gfnotenum]{\_printfnotemark}\dest[fnB::\the\gfnotenum]}
+ \endtt
\_cod -----------------------------
-\_def \_printfnotemark {$^{\_fnotenum}$} % default fnote mark
+\_def \_printfnotemark {$^{\_fnotenum}$} % default footnote mark
+\_def \_printfnotemarkA {\_printfnotemark} % footnote marks used in text
+\_def \_printfnotemarkB {\_printfnotemark} % footnote marks used in front of footnotes
\_doc ----------------------------
Each footnote saves the `\_Xfnote` (without parameter) to the `.ref`
@@ -55,7 +66,7 @@
\_cod ----------------------------
\_def\_fnote{\_fnotemark1\_fnotetext}
-\_def\_fnotemark#1{{\_advance\_gfnotenum by#1\_advance\_lfnotenum by#1\relax \_printfnotemark}}
+\_def\_fnotemark#1{{\_advance\_gfnotenum by#1\_advance\_lfnotenum by#1\relax \_printfnotemarkA}}
\_doc ----------------------------
The `\_fnotetext` calls `\_opfootnote` which is equivalent to plain \TeX/
@@ -76,7 +87,7 @@
\_ifpgfnote \_ifcsname _fn:\_the\_gfnotenum \_endcsname \_else
\_opwarning{unknown \_noexpand\fnote mark. TeX me again}
\_fi\_fi
- \_opfootnote\_fnset\_printfnotemark
+ \_opfootnote\_fnset\_printfnotemarkB
}
\_def\_fnset{\_everypar={}\_the\_everyfnote \_scalemain \_typoscale[800/800]}
diff --git a/macros/luatex/optex/fonts-catalog.opm b/macros/luatex/optex/fonts-catalog.opm
index f9cd2af6df..de45dd3dcf 100644
--- a/macros/luatex/optex/fonts-catalog.opm
+++ b/macros/luatex/optex/fonts-catalog.opm
@@ -1,5 +1,7 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
+\_codedecl \_undefined {Font catalogue <2020-02-26>} % loaded on demand by \fontfam[catalog]
+
\_initunifonts
\_begingroup
diff --git a/macros/luatex/optex/fonts-opmac.opm b/macros/luatex/optex/fonts-opmac.opm
index c7a8338995..20d6d45bf3 100644
--- a/macros/luatex/optex/fonts-opmac.opm
+++ b/macros/luatex/optex/fonts-opmac.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \typosize {Font managing macros from OPmac <2019-05-21>}
+\_codedecl \typosize {Font managing macros from OPmac <2020-02-29>} % loaded in format
\_protected\_def \_typosize [#1/#2]{%
\_textfontsize{#1}\_mathfontsize{#1}\_setbaselineskip{#2}%
diff --git a/macros/luatex/optex/fonts-preload.opm b/macros/luatex/optex/fonts-preload.opm
index 704b665e9b..49b1f226e2 100644
--- a/macros/luatex/optex/fonts-preload.opm
+++ b/macros/luatex/optex/fonts-preload.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \rm {Latin Modern fonts (EC) preloaded <2020-01-23>}
+\_codedecl \rm {Latin Modern fonts (EC) preloaded <2020-01-23>} % loaded in format
% Only few text fonts are preloaded:
diff --git a/macros/luatex/optex/fonts-resize.opm b/macros/luatex/optex/fonts-resize.opm
index 15f06661ff..dbc5974852 100644
--- a/macros/luatex/optex/fonts-resize.opm
+++ b/macros/luatex/optex/fonts-resize.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \setfontsize {Font resizing macros <2020-02-14>}
+\_codedecl \setfontsize {Font resizing macros <2020-03-17>} % preloaded in format
%% resizefont variant-name \fontswitch, for example \resizefont{bf}\_tenbf
@@ -81,7 +81,7 @@
% \fontdef \new {\<modifiers>\<var-selector>}
\_def \_fontdef #1#2{\_begingroup
\_ifx\_fontselector\_undefined \_def\_fontselector{#1}\_fi
- #2%
+ \_reloading #2%
\_ea \_keepmeaning \_fontselector \_endgroup
}
\_def\_fontlet#1#2{\_ifx #2=\_ea\_fontlet \_ea#1\_else
diff --git a/macros/luatex/optex/fonts-select.opm b/macros/luatex/optex/fonts-select.opm
index da01089333..eaadc0dedc 100644
--- a/macros/luatex/optex/fonts-select.opm
+++ b/macros/luatex/optex/fonts-select.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \fontfam {Fonts selection system <2020-02-14>}
+\_codedecl \fontfam {Fonts selection system <2020-03-18>} % preloaded in format
\_def\_initunifonts {%
\_ea\_newcount \_csname e@alloc@attribute@count\_endcsname
@@ -10,12 +10,15 @@
require('luaotfload-main') local _void = luaotfload.main ()
}%
\_gdef\_rfskipatX ##1" ##2\_relax{"##1"}%
- \_gdef\_doresizefont ##1{\_logfont{##1}%
- \_ifx\_fontnamegen\_undefined \_doresizetfmfont##1\_else
- \_font##1={\_fontnamegen} \_sizespec \_relax \_setwsp##1\_relax
- \_fi}%
- \_global\_let\_initunifonts=\_relax % we need not to do this work twice
- \_global\_let\initunifonts=\_relax
+ \_global\_let \_doresizefont=\_doresizeunifont
+ \_gdef\_tryloadtt {\_fontdef\_tentt{\def\_fontnamegen{[lmmono10-regular]}\_rm}}%
+ \_global\_let \_initunifonts=\_relax % we need not to do this work twice
+ \_global\_let \initunifonts=\_relax
+}
+\_gdef\_doresizeunifont #1{\_logfont{#1}%
+ \_ifx\_fontnamegen\_undefined \_doresizetfmfont#1\_else
+ \_font#1={\_fontnamegen} \_sizespec \_relax \_setwsp#1\_relax
+ \_fi
}
\_def\_fontdecl [#1]#2#3#4#5#6#7{%
\_initunifonts \_uniaccents
@@ -108,7 +111,7 @@
\_else
\_protected\_edef #1{\noexpand\_famdepend\noexpand#1{_f:\noexpand\_currfamily:\_tmp}}%
\_sdef{_f:\_currfamily:\_tmp}{#3#2}%
- \_def#3{\_fontdef#2{\_reloading#4}}%
+ \_def#3{\_fontdef#2{#4}}%
\_ifx#1\tt \addto#1{\_fam\_ttfam}\fi
\_sdef{_currvar:\csstring#2}{#1}%
\_fi
diff --git a/macros/luatex/optex/graphics.opm b/macros/luatex/optex/graphics.opm
index 2ce9ba7634..d4a868a3d1 100644
--- a/macros/luatex/optex/graphics.opm
+++ b/macros/luatex/optex/graphics.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \inspic {Graphics <2020-02-29>}
+\_codedecl \inspic {Graphics <2020-03-18>} % preloaded in format
\_doc -----------------------------
`\inspic` accepts old syntax `\inspic <filename><space>`
@@ -14,18 +14,58 @@
write `\moveright\inspic ...` or something similar.
\_cod \_fin -----------------------
-\_def\_inspic{\hbox\bgroup\_isnextchar\_bgroup\_inspicB\_inspicA}
+\_def\_inspic{\_hbox\_bgroup\_isnextchar\_bgroup\_inspicB\_inspicA}
\_def\_inspicA #1 {\_inspicB {#1}}
\_def\_inspicB #1{%
\_pdfximage \_ifdim\_picwidth=0pt \_else width\_picwidth\_fi
\_ifdim\_picheight=0pt \_else height\_picheight\_fi
\_picparams {\_the\_picdir#1}%
- \_pdfrefximage\_pdflastximage\egroup}
+ \_pdfrefximage\_pdflastximage\_egroup}
\_def\_picparams{}
\_public \inspic ;
+ \_doc -----------------------------
+ Inkscape is able to save a picture to `*.pdf` file and labels for the ficture
+ to `*.pdf_tex` file. The second file is in \LaTeX/ format and it is intended to read
+ immediately it after `*.pdf` in included in order to place labels of this ficture in
+ the same font as document is printed.
+ We need to read this \LaTeX/ file by plain \TeX/ macros when `\inkinspic` is used.
+ These macros are stored in the `\_inkdefs` toknes list and it is used
+ localy in the group. The solution is borrowed from OPmac trick 0032.
+ \_cod -----------------------------
+
+\_def\_inkinspic{\_hbox\_bgroup\_isnextchar\_bgroup\_inkinspicB\_inkinspicA}
+\_def\_inkinspicA #1 {\_inkinspicB {#1}}
+\_def\_inkinspicB #1{%
+ \_ifdim\_picwidth=0pt \_setbox0=\_hbox{\_inspic{#1}}\_picwidth=\_wd0 \_fi
+ \_the\_inkdefs
+ \_opinput {\_the\_picdir #1_tex}% file with labels
+ \_egroup}
+
+\_newtoks\_inkdefs \_inkdefs={%
+ \_def\makeatletter#1\makeatother{}%
+ \_def\includegraphics[#1]#2{\_inkscanpage#1,page=,\_end \_inspic{#2}\_hss}%
+ \_def\_inkscanpage#1page=#2,#3\_end{\_ifx,#2,\_else\_def\_picparams{page#2}\_fi}%
+ \_def\put(#1,#2)#3{\_nointerlineskip\_vbox to0pt{\_vss\_hbox to0pt{\_kern#1\_picwidth
+ \_pdfsave\_hbox to0pt{#3}\_pdfrestore\_hss}\_kern#2\_picwidth}}%
+ \_def\begin#1{\_csname _begin#1\_endcsname}%
+ \_def\_beginpicture(#1,#2){\_vbox\_bgroup
+ \_hbox to\_picwidth{}\_kern#2\_picwidth \_def\end##1{\_egroup}}%
+ \_def\_begintabular[#1]#2#3\end#4{%
+ \_vtop{\_def\\{\_cr}\_tabiteml{}\_tabitemr{}\_table{#2}{#3}}}%
+ \_def\color[#1]#2{\_scancolor #2,}%
+ \_def\_scancolor#1,#2,#3,{\_pdfliteral{#1 #2 #3 rg}}%
+ \_def\makebox(#1)[#2]#3{\_hbox to0pt{\_csname _mbx:#2\_endcsname{#3}}}%
+ \_sdef{_mbx:lb}#1{#1\_hss}\_sdef{_mbx:rb}#1{\_hss#1}\_sdef{_mbx:b}#1{\_hss#1\_hss}%
+ \_sdef{_mbx:lt}#1{#1\_hss}\_sdef{_mbx:rt}#1{\_hss#1}\_sdef{_mbx:t}#1{\_hss#1\_hss}%
+ \_def\rotatebox#1#2{\_pdfrotate{#1}#2}%
+ \_def\lineheight#1{}%
+ \_def\setlength#1#2{}%
+}
+\_public \inkinspic ;
+
\_doc ----------------------------
`\pdfscale` and `\pdfrotate` macros are implemented by `\pdfsetmatrix`
primitive. or rotating we need to knos values of sin, cos function.
@@ -44,6 +84,104 @@
\_public \pdfscale \pdfrotate ;
-\_endcode % -------------------------------------
+ \_doc -----------------------------
+ The `\transformbox` is copied from OPmac trick 0046. The `\rotbox` is a
+ combination of `\rotsimple` from OPmac trick 0101 and `\transformbox`.
+ Note, that `\rotbox{-90}` puts the rotated text to the height of the outer
+ box (depth is zero) because code from `\rotsimple` is precessed.
+ But `\rotbox{-90.0}` puts the rotated text to
+ the depth of the outer box (height is zero) because `\transformbox` is
+ processed.
+ \_cod -----------------------------
+
+\_def\_multiplyMxV #1 #2 #3 #4 {% matrix * (vvalX, vvalY)
+ \_tmpdim = #1\_vvalX \_advance\_tmpdim by #3\_vvalY
+ \_vvalY = #4\_vvalY \_advance\_vvalY by #2\_vvalX
+ \_vvalX = \_tmpdim
+}
+\_def\_multiplyMxM #1 #2 #3 #4 {% currmatrix := currmatrix * matrix
+ \_vvalX=#1pt \_vvalY=#2pt \_ea\_multiplyMxV \_currmatrix
+ \_edef\_tmpb{\_ea\_ignorept\_the\_vvalX\_space \_ea\_ignorept\_the\_vvalY}%
+ \_vvalX=#3pt \_vvalY=#4pt \_ea\_multiplyMxV \_currmatrix
+ \_edef\_currmatrix{\_tmpb\_space
+ \_ea\_ignorept\_the\_vvalX\_space \_ea\_ignorept\_the\_vvalY\_space}%
+}
+\_def\_transformbox#1#2{\_hbox{\_setbox0=\_hbox{{#2}}%
+ \_dimendef\_vvalX 11 \_dimendef\_vvalY 12 % we use these variables
+ \_dimendef\_newHt 13 \_dimendef\_newDp 14 % only in this group
+ \_dimendef\_newLt 15 \_dimendef\_newRt 16
+ \_preptransform{#1}%
+ \_kern-\_newLt \_vrule height\_newHt depth\_newDp width0pt
+ \_setbox0=\_hbox{\_box0}\_ht0=0pt \_dp0=0pt
+ \_pdfsave#1\_rlap{\_box0}\_pdfrestore \_kern\_newRt}%
+}
+\_def\_preptransform #1{\_def\_currmatrix{1 0 0 1 }%
+ \_def\_pdfsetmatrix##1{\_edef\_tmpb{##1 }\_ea\_multiplyMxM \_tmpb\_unskip}%
+ \_let\pdfsetmatrix=\_pdfsetmatrix #1%
+ \_setnewHtDp 0pt \_ht0 \_setnewHtDp 0pt -\_dp0
+ \_setnewHtDp \_wd0 \_ht0 \_setnewHtDp \_wd0 -\_dp0
+ \_protected\_def \_pdfsetmatrix {\_pdfextension setmatrix}%
+ \_let\pdfsetmatrix=\_pdfsetmatrix
+}
+\_def\_setnewHtDp #1 #2 {%
+ \_vvalX=#1\_relax \_vvalY=#2\_relax \_ea\_multiplyMxV \_currmatrix
+ \_ifdim\_vvalX<\_newLt \_newLt=\_vvalX \_fi \_ifdim\_vvalX>\_newRt \_newRt=\_vvalX \_fi
+ \_ifdim\_vvalY>\_newHt \_newHt=\_vvalY \_fi \_ifdim-\_vvalY>\_newDp \_newDp=-\_vvalY \_fi
+}
+
+\_def\_rotbox#1#2{%
+ \_isequal{90}{#1}\_iftrue \_rotboxA{#1}{\_kern\_ht0 \_tmpdim=\_dp0}{\_vfill}{#2}%
+ \_else \_isequal{-90}{#1}\_iftrue \_rotboxA{#1}{\_kern\_dp0 \_tmpdim=\_ht0}{}{#2}%
+ \_else \_transformbox{\_pdfrotate{#1}}{#2}%
+ \_fi \_fi
+}
+\_def\_rotboxA #1#2#3#4{\_hbox{\_setbox0=\hbox{{#4}}#2%
+ \_vbox to\_wd0{#3\_wd0=0pt \_dp0=0pt \_ht0=0pt
+ \_pdfsave\_pdfrotate{#1}\_box0\_pdfrestore\vfil}%
+ \_kern\_tmpdim
+}}
+\_public \transformbox \rotbox ;
+ \_doc ---------------------------
+ The `\_scantwodimens` scans two objects with the syntactic rule <dimen>
+ and returns `{<number>}{<number>}` in sp unit.
+
+ The `\puttext <down> <right>{<text>}` puts the <text> to desired place:
+ From current point moves <down> and <right>, puts the <text> and returns
+ back. The cuuren tpoint is unchanged after this macro ends.
+
+ The `\putpic <down> <right> <width> <height> {<image-file>}`
+ does `\puttext` with the image scaled to desired <width> and <height>.
+ If <with> or <height> is zero, natural dimension is used.
+ The `\nospec` is a shortcut to such natural dimension.
+ \_cod ---------------------------
+
+\_def\_scantwodimens{%
+ \_directlua{tex.print(string.format('{\_pcent d}{\_pcent d}',
+ token.scan_dimen(),token.scan_dimen{}))}%
+}
+
+\_def\_puttext{\_ea\_ea\_ea\_puttextA\_scantwodimens}
+\_def\_puttextA#1#2#3{\_setbox0=\_hbox{{#3}}\_dimen1=#1sp \_dimen2=#2sp \_puttextB}
+\_def\_puttextB{%
+ \_ifvmode
+ \_ifdim\_prevdepth>0pt \_vskip-\_prevdepth \_relax \_fi
+ \_nointerlineskip
+ \_fi
+ \_wd0=0pt \_ht0=0pt \_dp0=0pt
+ \_vbox to0pt{\_kern\_dimen1 \_hbox to0pt{\_kern\_dimen2 \_box0\_hss}\_vss}}
+
+\_def\_putpic{\_ea\_ea\_ea\_putpicA\_scantwodimens}
+\_def\_putpicA#1#2{\_dimen1=#1sp \_dimen2=#2sp \_ea\_ea\_ea\_putpicB\_scantwodimens}
+\_def\_putpicB#1#2#3{\_setbox0=\_hbox{\_picwidth=#1sp \_picheight=#2sp \_inspic{#3}}\_puttextB}
+
+\_newbox\_bgbox
+\_def\_backgroundpic#1{%
+ \_setbox\_bgbox=\_hbox{\_picwidth=\_pdfpagewidth \_picheight=\_pdfpageheight \_inspic{#1}}%
+ \_pgbackground={\_copy\_bgbox}
+}
+\_def\nospec{0pt}
+\_public \puttext \putpic \backgroundpic ;
+
+\_endcode % -------------------------------------
diff --git a/macros/luatex/optex/hyperlinks.opm b/macros/luatex/optex/hyperlinks.opm
index 1cf48ac945..02b33600bd 100644
--- a/macros/luatex/optex/hyperlinks.opm
+++ b/macros/luatex/optex/hyperlinks.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \ulink {Hyperlinks <2020-02-22>}
+\_codedecl \ulink {Hyperlinks <2020-03-15>} % preloaded in format
\_newcount \_tocrefnum
@@ -73,8 +73,8 @@
\_cod ----------------------------
\_def\_pdfborder#1{\_if^#1^\_else \_isdefined{#1border}\_iftrue
- \_if^\_csname#1border\_endcsname^\_else
- attr{/C[\_csname#1border\_endcsname] /Border[0 0 .6]}\_fi
+ \_if^\_csname #1border\_endcsname^\_else
+ attr{/C[\_csname #1border\_endcsname] /Border[0 0 .6]}\_fi
\_else attr{/Border[0 0 0]}\_fi\_fi
}
diff --git a/macros/luatex/optex/hyphen-lan.opm b/macros/luatex/optex/hyphen-lan.opm
index 0dbdf181fb..d8d035a7e0 100644
--- a/macros/luatex/optex/hyphen-lan.opm
+++ b/macros/luatex/optex/hyphen-lan.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \langlist {Initialization of hypenation patterns <2019-05-21>}
+\_codedecl \langlist {Initialization of hypenation patterns <2020-03-10>} % preloaded in format
\_doc -----------------------------
The <iso-code> means a shortcut of language name (mostly by ISO 639-1).
diff --git a/macros/luatex/optex/if-macros.opm b/macros/luatex/optex/if-macros.opm
index d0423e5911..5e56503bd8 100644
--- a/macros/luatex/optex/if-macros.opm
+++ b/macros/luatex/optex/if-macros.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \newif {Special if-macros, is-macros and loops <2020-01-23>}
+\_codedecl \newif {Special if-macros, is-macros and loops <2020-02-27>} % preloaded in format
\_doc ----------------------------
The `\newif` macro works like in plain \TeX. It means that
diff --git a/macros/luatex/optex/languages.opm b/macros/luatex/optex/languages.opm
index b4d6f57d2a..5bfa2febdc 100644
--- a/macros/luatex/optex/languages.opm
+++ b/macros/luatex/optex/languages.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_mtext {Languages <2020-02-14>}
+\_codedecl \_mtext {Languages <2020-03-15>} % preloaded in format
\_doc -----------------------------
Only three words are generated by \OpTeX/ macros: \"Chapter",
@@ -69,7 +69,44 @@
\_def\_today{\_mtext{today}}
\_public \today ;
+ \_doc -----------------------------
+ Quotes should be tagged by `\"<text>"` and `\'<text>'` if `\<iso-code>quotes`
+ is declared at beginning of the document. If not, then the control
+ sequences `\"` and `\'` are undefined. Remember, that they are used in
+ another meaning when `\oldaccents` command is used.
+ The macros `\"` and `\'` are not defined as `\protected` because we need
+ their expansion when `\outlines` are created.
+ User can declare quotes by `\quoteschars<clqq><crqq><clq><crq>`, where
+ <clqq>...<crqq> are normal quotes and <clq>...<crq> are alternative quotes.
+ or use `\altquotes` to swap between meaning of these two types of quotes.
+ \_cod -----------------------------
-\_endcode % -------------------------------------
+\_def \_enquotes {\_quoteschars “â€â€˜â€™}
+\_def \_csquotes {\_quoteschars „“‚‘}
+\_def \_frquotes {\_quoteschars “â€Â«Â»}
+\_let \_plquotes = \_frquotes
+\_let \_esquotes = \_frquotes
+\_let \_grquotes = \_frquotes
+\_let \_ruquotes = \_frquotes
+\_let \_itquotes = \_frquotes
+\_let \_skquotes = \_csquotes
+\_let \_dequotes = \_csquotes
+\_def \_quoteschars #1#2#3#4{\_def\_altquotes{\_quoteschars#3#4#1#2}\_public\altquotes;%
+ \_def \"##1"{#1##1#2}\_def \'##1'{#3##1#4}}
+ \_doc -----------------------------
+ Sometimes should be usable to leave the markup `"such"` or `'such'` i.e.~without
+ the first backslash. Then you can make the characters `"` and `'` active
+ by `\activequotes` macro and leave quotes without first backsash.
+ First, delare `\<iso-code>quotes`, then `\altwquotes` (if needed) and finally
+ `\activequotes`.
+ \_cod -----------------------------
+
+\def\_activequotes{\_ea\_activequotesA\"""\_ea\_activequotesA\'''}
+\def\_activequotesA#1#2#3{\_bgroup\_lccode`\~=`#3\_lowercase{\_egroup\_adef#3##1~{#1##1#2}}}
+
+\_public \quoteschars \activequotes \enquotes \csquotes \skquotes \frquotes \plquotes
+ \esquotes \grquotes \ruquotes \itquotes \dequotes ;
+
+\_endcode % -------------------------------------
diff --git a/macros/luatex/optex/lists.opm b/macros/luatex/optex/lists.opm
index 0b63409dce..adc28a3617 100644
--- a/macros/luatex/optex/lists.opm
+++ b/macros/luatex/optex/lists.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \begitems {Lists: begitems, enditems <2020-03-14>}
+\_codedecl \begitems {Lists: begitems, enditems <2020-03-18>} % preloaded in format
\_doc -----------------------------
`\aboveliskip` is used above the list of items,
@@ -32,6 +32,7 @@
\_itemnum=0 \_adef*{\_startitem}
\_advance\_leftskip by\_iindent
\_printitem=\_defaultitem
+ \_the\_everybegitems
}
\_def\_enditems{\_par\_egroup\_belowliskip}
@@ -58,7 +59,7 @@
\_sdef{_item:I}{\_uppercase\_ea{\_romannumeral\_itemnum}\_kern.5em}
\_sdef{_item:a}{\_athe\_itemnum) }
\_sdef{_item:A}{\_uppercase\_ea{\_athe\_itemnum}) }
-\_sdef{_item:x}{\_raise.3ex\_fullrectangle{.6ex} }
+\_sdef{_item:x}{\_raise.3ex\_fullrectangle{.6ex}\_kern.4em}
\_sdef{_item:X}{\_raise.2ex\_fullrectangle{1ex}\_kern.5em}
\_doc -----------------------------
diff --git a/macros/luatex/optex/logos.opm b/macros/luatex/optex/logos.opm
index 4465d56e9b..59f1cd87f1 100644
--- a/macros/luatex/optex/logos.opm
+++ b/macros/luatex/optex/logos.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \TeX {Logos TeX, LuaTeX, etc. <2019-05-21>}
+\_codedecl \TeX {Logos TeX, LuaTeX, etc. <2020-02-28>} % preloaded in format
\_doc ----------------------------
Despite plain \TeX/ each macro for logos ends by `\ignoreslash`.
diff --git a/macros/luatex/optex/luatex-ini.opm b/macros/luatex/optex/luatex-ini.opm
index 872d808ee9..315836cab1 100644
--- a/macros/luatex/optex/luatex-ini.opm
+++ b/macros/luatex/optex/luatex-ini.opm
@@ -1,6 +1,6 @@
-%% This is part of SpTeX project, see http://petr.olsak.net/optex
+%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \pdfprimitive {LuaTeX initialization code <2020-01-23>}
+\_codedecl \pdfprimitive {LuaTeX initialization code <2020-02-21>} % preloaded in format
\_let\_pdfpagewidth \pagewidth
\_let\_pdfpageheight \pageheight
diff --git a/macros/luatex/optex/makeindex.opm b/macros/luatex/optex/makeindex.opm
index eae300dfba..5f13f5ca5a 100644
--- a/macros/luatex/optex/makeindex.opm
+++ b/macros/luatex/optex/makeindex.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \makeindex {Makeindex and sorting <2020-02-14>} % loaded in format
+\_codedecl \makeindex {Makeindex and sorting <2020-03-16>} % loaded in format
\_doc -----------------------------
`\makeindex` implements sorting algorithm at \TeX/ macrolanguage level.
@@ -104,9 +104,12 @@
\_ea\_let \_ea\_sortingdata \_csname _sortingdata\_sortinglang\endcsname
\_ea\_let \_ea\_compoundchars \_csname _compoundchars\_sortinglang\endcsname
\_ea\_let \_ea\_ignoredchars \_csname _ignoredchars\_sortinglang\endcsname
- \_ifx \_sortingdata\_relax \_let \_sortingdata = \_sortingdataen \fi
- \_ifx \_compoundchars\_relax \_let \_compoundchars = \_compoundcharsen \fi
- \_ifx \_ignoredchars\_relax \_let \_ignoredchars = \_ignoredcharsen \fi
+ \_ifx \_sortingdata\_relax \_addto\_nold{ sortingdata}%
+ \_let \_sortingdata = \_sortingdataen \fi
+ \_ifx \_compoundchars\_relax \_addto\_nold{ compoundchars}%
+ \_let \_compoundchars = \_compoundcharsen \fi
+ \_ifx \_ignoredchars\_relax \_addto\_nold{ ignoredchars}%
+ \_let \_ignoredchars = \_ignoredcharsen \fi
\_ifx \_compoundchars\_empty \_else
\_edef \_compoundchars {\_detokenize\_ea{\_compoundchars} }\_fi % all must be catcode 12
\_def \_act ##1{\_ifx##1\_relax \_else
@@ -247,7 +250,8 @@
\_newifi \_ifasciisorting \_asciisortingfalse
\_def\_dosorting #1{%
\begingroup
- \_ifx\_sotringlang\_undefined \_edef\_sortinglang{\_cs{_lan:\_the\_language}}\_fi
+ \_def\_nold{}%
+ \_ifx\_sotringlang\_undefined \_edef\_sortinglang{\_cs{_lan:\_the\_language}}\_fi
\_ifasciisorting
\_edef\_sortinglang{ASCII}%
\_def \_preparesorting##1{\_edef\_tmpb{\_ea\_ignorefirst\_csstring##1}}%
@@ -256,6 +260,7 @@
\_setprimarysorting
\_fi
\_message{OpTeX: Sorting \_string#1 (\_sortinglang) ...^^J}%
+ \_ifx\_nold\_empty\_else \_opwarning{Missing\_nold\_space for language (\_sortinglang)}\_fi
\_def \_act##1{\_preparesorting ##1\_edef##1{\_tmpb}}%
\_ea\_xargs \_ea\_act #1;%
\_def \_act##1{\_addto #1{##1,}}%
@@ -268,7 +273,7 @@
\_doc -----------------------------
The `\makeindex` prints the index. First, it sorts the `\_iilist`
second, it prints the sorted `\_iilist`, each item is printed
- using `\_printiitem`.
+ using `\_printindexitem`.
\_cod -----------------------------
\_def\_makeindex{\_par
@@ -295,7 +300,7 @@
\_ifcsname _\_csstring #1\_endcsname
\_ea\_ea\_ea \_printii \_csname _\_csstring #1\_endcsname &%
\_else
- \_ea\_printii \_ea\_ignorefirst \_csstring #1&%
+ \_ea\_ea\_ea\_printii \_ea\_ignorefirst \_csstring #1&%
\_fi
\_ea\_printiipages #1&
}
@@ -305,16 +310,27 @@
words in the form `<main-word>/<sub-word>/<sub-sub-word>`.
The `\everyii` tokens register is applied before `\noindent`. User can
declare something special here.
+
+ The `\_newiiletter{<letter>}` macro is empty by default. It is invoked if first
+ letter of index entries is changed. You can declare a design between
+ index entries here. You can try, for example:
+ \begtt
+ \def\_newiiletter#1#2{\bigskip\hbox{\setfontsize{at15pt}\bf\uppercase{#1}}\medskip}
+ \endtt
\_cod -----------------------------
-\_def\_printii #1&{\_gdef\_currii{#1}\_the\_everyii\_noindent
- \_hskip-\_iindent \_ignorespaces\_printiiA#1//}
+\_def\_printii #1#2&{%
+ \_ismacro\_lastii{#1}\_iffalse \_newiiletter{#1}{#2}\_def\_lastii{#1}\_fi
+ \_gdef\_currii{#1#2}\_the\_everyii\_noindent
+ \_hskip-\_iindent \_ignorespaces\_printiiA#1#2//}
\_def\_printiiA #1/{\_if^#1^\_let\_previi=\_currii \_else
\_ea\_scanprevii\_previi/&\_edef\_tmpb{\_detokenize{#1}}%
\_ifx\_tmpa\_tmpb \_iiemdash \_else#1 \_gdef\_previi{}\_fi
\_expandafter\_printiiA\_fi
}
\_def\_iiemdash{\_kern.1em---\_space}
+\_def\_lastii{}
+\_def\_newiiletter#1#2{}
\_def\_scanprevii#1/#2&{\_def\_previi{#2}\_edef\_tmpa{\_detokenize{#1}}}
\_def\_previi{} % previous index item
@@ -362,12 +378,14 @@
\_cod -----------------------------
\_def\_pgprint #1:#2{%
- \_ifx,#2,\_pgprintA{#1}\_returnfi \_fi
+ \_ifx ,#2,\_pgprintA{#1}\_returnfi \_fi
\_ifx b#2{\_bf \_pgprintA{#1}}\_returnfi \_fi
- \_ifx i#2{\_it \_pfprintA{#1}}\_returnfi \_fi
+ \_ifx i#2{\_it \_pgprintA{#1}}\_returnfi \_fi
+ \_ifx u#2\_pgu{\_pgprintA{#1}}\_returnfi \_fi
\_pgprintA{#1}\_relax
}
\_def\_pgprintA #1{\_ilink[pg:#1]{\_cs{_pgi:#1}}} % \ilink[pg:<gpageno>]{<pageno>}
+\_def\_pgu#1{\_leavevmode\_vtop{\_hbox{#1}\kern.3ex\_hrule}}
\_doc -----------------------------
The `\iindex{<word>}` puts one <word> to the index. It writes
diff --git a/macros/luatex/optex/maketoc.opm b/macros/luatex/optex/maketoc.opm
index 6589c66f72..6ab711657e 100644
--- a/macros/luatex/optex/maketoc.opm
+++ b/macros/luatex/optex/maketoc.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \maketoc {Macros for maketoc <2020-02-14>}
+\_codedecl \maketoc {Macros for maketoc <2020-03-12>} % preloaded in format
\_doc ------------------------------------
`\_Xtoc{<level>}{<type>}{<number>}{<text>}` (in `.ref` file) reads the
diff --git a/macros/luatex/optex/margins.opm b/macros/luatex/optex/margins.opm
index 9503bc3940..72c769f672 100644
--- a/macros/luatex/optex/margins.opm
+++ b/macros/luatex/optex/margins.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \margins {Macros for margins setting <2019-05-21>}
+\_codedecl \margins {Macros for margins setting <2020-03-14>} % preloaded in format
\_newdimen\_pgwidth \_newdimen\_pgheight \_pgwidth=0pt
\_newdimen\_shiftoffset
@@ -65,8 +65,8 @@ OPmac declares paper formats a4, a4l (landscape~a4), a5, a5l, b5, letter and
user can declare another own format by "\sdef":
\begtt
-\sdef{pgs:b5l}{(250,176)mm}
-\sdef{pgs:letterl}{(11,8.5)in}
+\sdef{_pgs:b5l}{(250,176)mm}
+\sdef{_pgs:letterl}{(11,8.5)in}
\endtt
The "\margins" command declares margins of the document. This command have
diff --git a/macros/luatex/optex/math-macros.opm b/macros/luatex/optex/math-macros.opm
index ebd32fe214..6ad97618ff 100644
--- a/macros/luatex/optex/math-macros.opm
+++ b/macros/luatex/optex/math-macros.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \sin {Math macros plus mathchardefs <2020-02-14>}
+\_codedecl \sin {Math macros plus mathchardefs <2020-03-14>} % preloaded in format
%% The character _ as subscript prefix:
diff --git a/macros/luatex/optex/math-preload.opm b/macros/luatex/optex/math-preload.opm
index 8ced2c1cc0..5251f09424 100644
--- a/macros/luatex/optex/math-preload.opm
+++ b/macros/luatex/optex/math-preload.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \normalmath {Math fonts CM + AMS preloaded <2020-01-23>}
+\_codedecl \normalmath {Math fonts CM + AMS preloaded <2020-02-25>} % preloaded in format
% Only few text fonts are preloaded:
diff --git a/macros/luatex/optex/math-unicode.opm b/macros/luatex/optex/math-unicode.opm
index cf800ca540..fe823b96f4 100644
--- a/macros/luatex/optex/math-unicode.opm
+++ b/macros/luatex/optex/math-unicode.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \loadmath {Unicode Math fonts <2020-02-14>}
+\_codedecl \loadmath {Unicode Math fonts <2020-02-25>} % preloaded in format
\_newifi \_ifmathloading \_mathloadingtrue
diff --git a/macros/luatex/optex/op-macros.opm b/macros/luatex/optex/more-macros.opm
index 4cbb923b4c..4f4c4d113b 100644
--- a/macros/luatex/optex/op-macros.opm
+++ b/macros/luatex/optex/more-macros.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \eoldef {OpTeX useful macos <2020-02-14>}
+\_codedecl \eoldef {OpTeX useful macos <2020-03-15>} % preloaded in format
\_newcatcodetable \_optexcatcodes
\_savecatcodetable\_optexcatcodes
@@ -88,8 +88,6 @@
\def\catcode{\_catcode\_string} % more robust in cases \catcode` or \catcode"
-\_def\_enquotes{\_chardef\"="201C } % use \"text" for English quotes
-
% \removespaces text with spaces {} -> textwithspaces
\_def\_removespaces #1 {\_isempty{#1}\_iffalse #1\_ea\_removespaces\_fi}
@@ -126,7 +124,7 @@
\public
\setctable \restorectable
\normalcatodes \opt \optdef \eoldef \bracedparam \replstring
- \keepinputnames \lastinputname \enquotes \removespaces \trycs
+ \keepinputnames \lastinputname \removespaces \trycs
\ignorept \ignoreit ;
\_endcode % -------------------------------------
diff --git a/macros/luatex/optex/multicolumns.opm b/macros/luatex/optex/multicolumns.opm
index cc5a0fad09..291eb1cfd0 100644
--- a/macros/luatex/optex/multicolumns.opm
+++ b/macros/luatex/optex/multicolumns.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \begmulti {Balanced columns <2020-03-08>}
+\_codedecl \begmulti {Balanced columns <2020-03-08>} % preloaded in format
\_doc -----------------------------
This code is documented in detail in the \"\TeX/book naruby", pages 244--246,
diff --git a/macros/luatex/optex/op-demo.tex b/macros/luatex/optex/op-demo.tex
index 96c32f9056..ea1dd5b65d 100644
--- a/macros/luatex/optex/op-demo.tex
+++ b/macros/luatex/optex/op-demo.tex
@@ -1,5 +1,7 @@
-\fontfam[LMfonts]
-
+%% This is part of OpTeX project, see http://petr.olsak.net/optex
+
+\fontfam[LMfonts] % Default font family: Latin Modern
+
\margins/1 a5 (1,1,1,1.4)cm % A5 paper + 1cm margins
\typosize[9/10.5] % 9pt font / 10.5pt baselineskip
\parindent=10pt % typesetting parameters
@@ -95,7 +97,7 @@ This is verbatim.
\endtt
or it can be included by `\verbinput` from external file.
-\verbinput (96-98) op-demo.tex
+\verbinput (98-100) op-demo.tex
\sec Math
diff --git a/macros/luatex/optex/op-letter.tex b/macros/luatex/optex/op-letter.tex
new file mode 100644
index 0000000000..3c86405e9a
--- /dev/null
+++ b/macros/luatex/optex/op-letter.tex
@@ -0,0 +1,41 @@
+%% This is part of OpTeX project, see http://petr.olsak.net/optex
+
+\letter % \letter OpTeX style activated
+\fontfam[bonum]
+\cslang
+
+\address
+ Vážený pan
+ Mgr. Bořek Byrokrat
+ ředitel Ústavu pro další možnosti
+ Úřední 789
+ 123 45 Praha 1
+
+\hfill V Praze dne \today
+
+\subject Žádost o možnost další možnosti
+
+Vážený pane řediteli
+
+na základÄ› VaÅ¡eho dopisu Ä.j.~123456/78-dat a elektronické výzvy si dovoluji
+Vás požádat o prozkoumání mé možnosti další možnosti.
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
+commodo consequat.
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
+veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
+commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
+esse cillum dolore eu fugiat nulla pariatur.
+
+S úctou
+
+\hfill \address
+ {\it Petr Olšák}
+ specialista na \TeX/
+ Ulice 12345
+ Praha 13
+
+\bye
diff --git a/macros/luatex/optex/op-ring.png b/macros/luatex/optex/op-ring.png
index 8c8cb5976a..de7811df83 100644
--- a/macros/luatex/optex/op-ring.png
+++ b/macros/luatex/optex/op-ring.png
Binary files differ
diff --git a/macros/luatex/optex/op-slides.tex b/macros/luatex/optex/op-slides.tex
new file mode 100644
index 0000000000..fb691fcd9d
--- /dev/null
+++ b/macros/luatex/optex/op-slides.tex
@@ -0,0 +1,288 @@
+%% This is part of OpTeX project, see http://petr.olsak.net/optex
+
+\slides % OpTeX slides style activated
+
+\catcode`<=13 % special printing of <text>
+\def<#1>{\hbox{$\langle$\it#1\/$\rangle$}}
+\everyintt={\catcode`\<=13}
+
+\hyperlinks\Blue\Blue % hyperlinks are used in the title page
+\backgroundpic{slides-bg.png} % background picture
+
+\activettchar` % inline verbatim
+\enquotes % English quotes \"..."
+
+\slideshow %------------------------------------------------------------
+
+
+\tit \OpTeX/ slides
+
+\subtit Petr Olšák\nl petr@olsak.net
+
+\subtit\rm \url{http://petr.olsak.net/optex}
+
+\pg; %------------------------------------------------------------------
+
+\sec Basics
+
+* The the simple document looks like:
+
+\begtt
+\slides % style initialized
+%\wideformat % 16:9
+\slideshow % partially uncovering ideas
+
+\sec First slide
+text
+\pg;
+
+\sec Second slide
+text
+\pg.
+\endtt
+
+* If `\slideshow` is missing or commented out then
+ \"partially uncovering ideas" (see later) are deactivated. It is useful
+ for printing.
+* The `\slideshow` must be the last command in the declaration part of the
+ document.
+* By default, the slides have A5 landscape format.
+ You can declare `\wideformat`. Then the height is the same
+ but width is 263\,mm, i.\,e.~the ratio width:height is 16:9.
+
+\pg; %------------------------------------------------------------------
+
+\sec Title slide
+
+* Title of the document (used at the first slide) is created
+ by `\tit Title` (terminated by end of line).
+* The `\subtit Author name etc.`\ (terminated by end of line)
+ can be used after `\tit` at the first slide.
+* You can use `\nl` for new line in paragraphs or titles.
+
+\sec Default design
+
+* The paragraph texts are ragged right.
+* Titles, subtitles and section titles are centered.
+* The `\sec` and `\secc` are printed without numbers.
+* Paragraph indentation is zero. There is a little vertical space between
+ paragraphs.
+* The Heros font family (aka Helvetica) is initialized as default.\nl
+ Sans-serif FiraMath font for math typesetting is used.
+* The items in lists are started by blue square (`\type X` and `\type x` ).
+
+\pg; %------------------------------------------------------------------
+
+\sec One slide (one page)
+
+* Top level item list is activated by default. The asterisk `*` opens
+ new item at the top level list.
+* Nested items lists (second and more level) should be created in
+ the `\begitems`\dots`\enditems` environments.
+* Each slide (page) must be terminated by `\pg;` command.
+* Lats slide must be terminated by `\pg.` command or by `\bye`.
+
+\begtt
+\sec My ideas
+
+* First idea
+* Second idea
+ \begitems
+ * First sub-idea
+ * Second sub-idea
+ \enditems
+* Final idea
+\endtt
+
+* Note: each page is processed in a group, so: put your own definitions
+ (if~exist) before `\slideshow` or use `\global` assignment.
+
+\pg; %------------------------------------------------------------------
+
+\sec Partially uncovering ideas
+
+* The control sequence `\pg` must be followed by:\pg+
+\begitems
+* the character `;` -- normal next page,\pg+
+* the character `.` -- the end of the document,\pg+
+* the character `+` -- next page keeps the same text
+ and a next text is added (usable for partially uncovering of ideas).\pg+
+\enditems
+
+* Summary:
+\begtt
+\pg; ... next page
+\pg. ... the end of the document
+\pg+ ... uncover next text at the same page
+\endtt
+\pg+
+
+* When `\slideshow` is not declared then `\pg+` is deactivated.\pg+
+* The `\pg+` creates a new \"virtual page", so the current paragraph is
+ terminated.
+
+\pg; %------------------------------------------------------------------
+
+\sec Example with partially uncovering ideas
+
+The previous page was created by:
+
+\begtt
+\sec Partially uncovering ideas
+
+* The control sequence `\pg` must be followed by:\pg+
+
+\begitems
+* the character `.` -- normal next page,\pg+
+* the character `;` -- the end of the document,\pg+
+* the character `+` -- next ... \pg+
+\enditems
+
+* Summary
+...
+* When `\slideshow` is not declared
+ then `\pg+` is deactivated.\pg+
+* The `\pg+` creates a new \"virtual page",
+ so the current paragraph is terminated.
+\pg;
+\endtt
+
+\pg; %------------------------------------------------------------------
+
+\sec Notes
+
+* When `\slideshow` is active then you cannot reference sections by
+ hyperlinked `\ref`. Only `\pgref` works (and goes to the last layer
+ of the referenced page).
+* If the text overfull the page (slide) then it follows to the next page without
+ saying explicitly `\pg;`. But `\slideshow` cannot work in such case.\pg+
+
+\sec More about design
+
+* You can use `\backgroundpic{<image-file>}` for putting an image to the backgroud.
+* You can re-declare `\footline` or re-define internal macros for design as
+ you wish.
+* You can put the images or text wherever using `\putimege` or `\puttext`
+ macros...
+
+\pg; %------------------------------------------------------------------
+
+\sec Putting images and text wherever
+
+* `\puttext <down> <right> {<text>}` puts a <text> to the desired place:
+ It moves the current point <down> and <right>, puts the <text> and returns
+ back, so the typesetting continues from previous position. The parameters
+ <down> and <right> are dimensions. For example
+
+\begtt
+\puttext -50mm 0mm {\Red HELLO}
+\endtt
+
+ \puttext -50mm 0mm {\Red HELLO}
+ prints red HELLO, as shown here.\pg+
+
+* `\putpic <down> <right> <width> <height> {<image-file>}`
+ puts the image with desired <width> and <height> at the position like
+ `\puttext` puts the text.
+
+ \putpic -20mm .8\hsize 30mm \nospec {op-ring.png}
+* The ring above is the result of
+
+\begtt
+\putpic -20mm .8\hsize 30mm \nospec {op-ring.png}
+\endtt
+ %
+ used ad beginning of this paragraph.\pg+
+* Use `\nospec` for <width> or <height> of the image if you don't want to specify both
+ dimensions (because you don't want to change the image aspect ratio).
+
+\pg; %------------------------------------------------------------------
+
+\sec Limits of the \code{\\pg+} sequence
+
+* The \code{\\pg+} sequence (partially uncovering ideas) cannot be used inside
+ a~group.
+* The exception is the nested environment `\begitems...\enditems`.
+* The `\pg+` always finalizes the current paragraph.
+ It is impossible to hide only a part of horizontal mode.\pg+
+
+\sec The \code{\\layers}\,...\code{\\endlayers} environment
+
+If you really need something unsupported by `\pg+` then you can use
+
+\begtt \catcode`\<=13
+\layers <number>
+<layered text>
+\endlayers
+\endtt
+
+* The <layered text> should include conditions like
+ `\ifnum\layernum...` or `\ifcase\layernum`.
+ It is printed <number> times to more slide pages (layers) with the same
+ surrounding text. See next page...
+
+\pg; %------------------------------------------------------------------
+
+\sec Example of \code{\\layers} environment
+
+The `\slides` style provides a shortcut `\use` and a macro `\pshow` (means
+partially show):
+
+\begtt
+\def\use#1#2{\ifnum\layernum#1\relax#2\fi}
+\def\pshow#1{\use{=#1}\Red \use{<#1}\Transparent \ignorespaces}
+\endtt
+
+The `{\pshow<num> <text>}` prints <text> in Red when current layer is equal
+to <num> or it prints <text> normally when current layers is greater than <num>.
+The transparent (invisible) font is used in other cases.
+
+The following dance:
+\layers 3
+{\pshow2 Second text.} {\pshow3 Third text.} {\pshow1 First text.}
+\endlayers
+\pg+
+
+was generated by
+
+\begtt
+\layers 3
+{\pshow2 Second text.} {\pshow3 Third text.} {\pshow1 First text.}
+\endlayers
+\endtt
+
+\pg+
+* The <layered text> is treated as macro parameter. So, you cannot use verbatim
+ nor `\sec` titles here. Maximal one `\layers` environment can be per one
+ page (terminated by `\pg+` or `\pg;` or `\pg.`
+
+\pg; %------------------------------------------------------------------
+
+\sec Comparison \OpTeX/ slides with Beamer\fnote{\url{http://www.ctan.org/pkg/beamer}}
+
+The \LaTeX{} package {\bf\Blue Beamer} gives much more features and many themes
+are prepared for Beamer, {\bf\Red but}
+\pg+
+* the user of Beamer is forced to {\em program} his/her document using
+ dozens of \code{\\begin{foo}} and \code{\\end{foo}} and many another
+ programming constructions,\pg+
+* plain \TeX{} gives you a possibility to simply
+ {\em write} your document with minimal markup. The result is more compact.
+ You can concentrate to the contents of your document, not to the
+ programming syntax.\pg+
+* User needs to read 250 pages of doc for understanding Beamer,\pg+
+* on the other hand, you need to read only ten
+ slides\fnote{this eleventh slide isn't counted}
+ and you are ready to use {\bf\Blue\OpTeX/ slides}.
+
+\pg; %------------------------------------------------------------------
+
+\null
+\vskip2cm
+\centerline{\typosize[35/40]\bf Thanks for your attention}\pg+
+
+\vskip2cm
+\centerline{\Blue\typosize[60/70]\bf Questions?}
+
+\pg. %----------------------------- THE END ----------------------------
+
diff --git a/macros/luatex/optex/opmac-rest.opm b/macros/luatex/optex/opmac-rest.opm
deleted file mode 100644
index f8731fefda..0000000000
--- a/macros/luatex/optex/opmac-rest.opm
+++ /dev/null
@@ -1,65 +0,0 @@
-% I plan to re-implement all macros from this file. Something is done already.
-
-% OPmac
-%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Petr Olsak, 2012 -- 2019
-
-%% The history of versions is at the end of this file, after \endpinput
-
-\ifx\OPmacversion\undefined \else \endinput \fi
-\def\OPmacversion{Jul. 2019}
-\immediate\write16{This is OPmac-rest, version <\OPmacversion>}
-
-%%%%%%%%%%%%%% Basic macros, sec. 3.1 in opmac-d.pdf
-
-%\newif\ifpdftex \pdftextrue
-
-%%%%%%%%%%%%%% Global parameters, sec. 3.2 in opmac-d.pdf
-
-%%%%%%%%%%%%%% OPmac, CSplain and LaTeX logos, sec. 3.3 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Sizes of fonts and \baselineskip, sec. 3.4 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Multilingual support, sec. 3.5 in opmac-d.pdf
-
-%%%%%%%%%%%%%% REF file, sec 3.6 in opmac-d.pdf
-
-%%%%%%%%%%%%%% \label, \ref, \pgref, sec. 3.7 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Chapters, sections, subsections -- sec. 3.8 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Captions, equations -- sec. 3.9 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Items -- sec. 3.10 in opmac-d.pdf
-
-%%%%%%%%%%%%%% TOC -- sec. 3.11 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Index -- sec. 3.12 on opmac-d.pdf
-
-%%%%%%%%%%%%%% \begmulti ... \endmulti TBN p. 244, 245 -- sec. 3.14 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Colors -- sec. 3.15 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Hyperrefs -- sec. 3.16 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Outlines -- sec. 3.17 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Verbatim, \begtt, \endtt -- sec. 3.18 in opmac-d.pdf
-
-%%%%%%%%%%%%%% \table -- sec. 3.19 in opmac-d.pdf
-
-%%%%%%%%%%%%%% \inspic -- sec. 3.20 in opmac-d.pdf
-
-%%%%%%%%%%%%%%% transformation matrix -- sec. 3.21 in opmac-d.pdf
-
-%%%%%%%%%%%%%% \fnote, \mnote -- sec 3.22 in opmac-d.pdf
-
-%%%%%%%%%%%%%% \cite, \bib, \usebibtex, \usebbl -- sec. 3.23 in opmac-d.pdf
-
-%%%%%%%%%%%%%% output -- sec. 3.24 in opmac-d.pdf
-
-%%%%%%%%%%%%%% margins -- sec. 3.25 in opmac-d.pdf
-
-%%%%%%%%%%%%%% Pre-defined document styles
-
-\endinput
diff --git a/macros/luatex/optex/optex.ini b/macros/luatex/optex/optex.ini
index 370f60f099..e4a09eec0a 100644
--- a/macros/luatex/optex/optex.ini
+++ b/macros/luatex/optex/optex.ini
@@ -20,7 +20,7 @@
% OpTeX version
-\def\optexversion{Alpha 0.06 Mar 2020}
+\def\optexversion{Alpha 0.07 Mar 2020}
% Engine testing:
@@ -50,7 +50,7 @@
\input alloc.opm % allocators for registers
\input if-macros.opm % special \if-macros, \is-macros and loops
\input parameters.opm % parameters setting
-\input op-macros.opm % OpTeX useful macros (todo: doc)
+\input more-macros.opm % OpTeX useful macros (todo: doc)
\input plain-macros.opm % plainTeX macros (todo:doc)
\input fonts-preload.opm % preloaded Latin Modern fonts
\input fonts-resize.opm % font resizing (low-level macros) (todo: texdoc)
diff --git a/macros/luatex/optex/others.opm b/macros/luatex/optex/others.opm
index 7043a7589c..4c6b49dd2d 100644
--- a/macros/luatex/optex/others.opm
+++ b/macros/luatex/optex/others.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \uv {Miscenaleous <2020-01-23>}
+\_codedecl \uv {Miscenaleous <2020-03-14>} % preloaded in format
% You can write \useOpTeX at begining of your document
diff --git a/macros/luatex/optex/outlines.opm b/macros/luatex/optex/outlines.opm
index fbad18cb20..90e9a4a0aa 100644
--- a/macros/luatex/optex/outlines.opm
+++ b/macros/luatex/optex/outlines.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \pdfunidef {PDF outlines <2019-05-21>}
+\_codedecl \pdfunidef {PDF outlines <2020-03-12>} % preloaded in format
\_def\_outlines#1{\_pdfcatalog{/PageMode/UseOutlines}\_openref
\_ifx\_toclist\_empty
diff --git a/macros/luatex/optex/output.opm b/macros/luatex/optex/output.opm
index 0bdefdb1ec..a81e5e8c0a 100644
--- a/macros/luatex/optex/output.opm
+++ b/macros/luatex/optex/output.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \nopagenumbers {Output routine <2019-05-21>}
+\_codedecl \nopagenumbers {Output routine <2020-03-15>} % preloaded in format
\_doc -----------------------------
`\_optexouput` is default output routine. You can create another...
@@ -180,20 +180,17 @@
water color marks.
\_cod -----------------------------
-\_def\_draft{\_pgbackground={\_setdraftfont \_draftbox{\_draftfont DRAFT}}}
-
-\_def\_draftbox#1{\_setbox0=\_hbox{#1}%
+\_def \_draft {\_pgbackground={\_draftbox{\_draftfont DRAFT}}%
+ \_fontdef\_draftfont{\_setfontsize{at10pt}\_bf}%
+ \_global\_let\_draftfont=\_draftfont
+}
+\_def \_draftbox #1{\_setbox0=\_hbox{#1}%
\_kern.5\_vsize \_kern4.5\_wd0
\_hbox to0pt{\_kern.5\_hsize \_kern-1\_wd0
\_pdfsave \_pdfrotate{55}\_pdfscale{10}{10}%
\_hbox to0pt{\_localcolor\LightGrey \_box0\_hss}%
\_pdfrestore
- \_hss}}
-\_def\_setdraftfont {%
- \_ifx \_draftfont\_undefined
- \_fontdef\_draftfont{\_setfontsize{at10pt}\_bf}%
- \_global\_let\_draftfont=\_draftfont
- \_fi
+ \_hss}%
}
\_public \draft ;
diff --git a/macros/luatex/optex/parameters.opm b/macros/luatex/optex/parameters.opm
index 23702de37a..4ae0aa4d98 100644
--- a/macros/luatex/optex/parameters.opm
+++ b/macros/luatex/optex/parameters.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \normalbaselineskip {Parameter settings <2020-01-23>}
+\_codedecl \normalbaselineskip {Parameter settings <2020-03-17>} % preloaded in format
\_doc -----------------------------
The primitive registers with the same default value as in plain \TeX/ follow:
@@ -241,12 +241,15 @@
\_doc -----------------------------
The default item mark used between `\bgitems` and `\enditems` is bullet.
The `\everyitem` token list is applied in vertical mode
- at the start of each item.
+ at the start of each item.
+ The `\everybegitems` token list is applied after group is openem by
+ `\begitems`.
\_cod -----------------------------
\_newtoks\_defaultitem \_defaultitem={$\_bullet$\_enspace}
\_newtoks\_everyitem
-\_public \defaultitem \everyitem ;
+\_newtoks\_everybegitems
+\_public \defaultitem \everyitem \everybegitems ;
\_doc -----------------------------
The `\tit` macro includes `\vglue\titskip` above the title of the document.
diff --git a/macros/luatex/optex/pdfuni-string.opm b/macros/luatex/optex/pdfuni-string.opm
index 0aafcce27a..e993e61a75 100644
--- a/macros/luatex/optex/pdfuni-string.opm
+++ b/macros/luatex/optex/pdfuni-string.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \pdfunidef {PDFunicode strings for outlines <2020-02-14>}
+\_codedecl \pdfunidef {PDFunicode strings for outlines <2020-03-12>} % preloaded in format
\_edef\_octalprint#1#2{\_noexpand\_directlua{% #1=character-code #2=character
if ('#2'>='A' and '#2'<='Z') or ('#2'>='a' and '#2'<='z') then
diff --git a/macros/luatex/optex/plain-macros.opm b/macros/luatex/optex/plain-macros.opm
index a9e4f2de1b..18576c1ad7 100644
--- a/macros/luatex/optex/plain-macros.opm
+++ b/macros/luatex/optex/plain-macros.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \magstep {Macros from plain TeX <2019-02-14>}
+\_codedecl \magstep {Macros from plain TeX <2020-02-14>} % preloaded in format
\_chardef\_active = 13
diff --git a/macros/luatex/optex/prefixed.opm b/macros/luatex/optex/prefixed.opm
index 06c46ee65d..e6015bc7cb 100644
--- a/macros/luatex/optex/prefixed.opm
+++ b/macros/luatex/optex/prefixed.opm
@@ -1,7 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \public {Prefixing and code syntax <2020-02-14>}
-
+\_codedecl \public {Prefixing and code syntax <2020-02-14>} % preloaded in format
\_doc ---------
All TeX82 primitives have alternative control sequence \_hbox \_string, ...
diff --git a/macros/luatex/optex/ref-file.opm b/macros/luatex/optex/ref-file.opm
index ba76563ca0..5f2b50f06d 100644
--- a/macros/luatex/optex/ref-file.opm
+++ b/macros/luatex/optex/ref-file.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_openref {File for references <2020-02-14>}
+\_codedecl \openref {File for references <2020-02-14>} % preloaded in format
\_doc --------------------------
The `\_inputref` macro is used in `\everyjob`. It reads `\jobname.ref` file
@@ -44,6 +44,7 @@
\_immediate\_write\_reffile {\_pcent\_pcent\_space OPTeX <\_optexversion> - REF file (#1)}%
\_immediate\_wref \Xrefversion{{\_REFversion}}%
}
+\def\openref{\_openref}
\_doc ----------------------
We are using a convention that the macros used in `.ref` file are named
diff --git a/macros/luatex/optex/references.opm b/macros/luatex/optex/references.opm
index 37d0698214..3cd27c043e 100644
--- a/macros/luatex/optex/references.opm
+++ b/macros/luatex/optex/references.opm
@@ -1,11 +1,10 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \ref {References <2020-02-22>}
+\_codedecl \ref {References <2020-03-03>} % preloaded in format
\_doc ----------------------------
- `\_Xpage {<gpageno>}{<pageno>}` saves the patameter pair into `\_currpage`
- and actualizes `\lastpage`. Resets `\_lfnotenum` used if footnotes are
- numbered from one at each page.
+ `\_Xpage {<gpageno>}{<pageno>}` saves the patameter pair into `\_currpage`.
+ Resets `\_lfnotenum`, it is used if footnotes are numbered from one at each page.
\_cod ----------------------------
\_def\_Xpage#1#2{\_def\_currpage{{#1}{#2}}\_lfnotenum=0 }
@@ -31,6 +30,7 @@
\_def\_wlabel#1{%
\_ifx\_lastlabel\_undefined \_else
\_dest[ref:\_lastlabel]%
+ \_printlabel\_lastlabel
\_edef\_tmp{{\_lastlabel}{#1}}%
\_ea\_wref \_ea\_Xlabel \_ea{\_tmp}%
\_sxdef{_lab:\_lastlabel}{#1}\_sxdef{l0:\_lastlabel}{}%
@@ -62,6 +62,19 @@
\_public
\label \wlabel \ref \pgref ;
+ \_doc -----------------------------
+ Default `\_printlabel` is empty (labes are not printed).
+ The `\showlabels` redefines it as box with zero dimensions and
+ with left lapped `[<label>]` in blue 10pt `\tt` font shifted up by 1.7ex.
+ \_cod -----------------------------
+
+\_def\_printlabel#1{}
+\_def\_showlabels {%
+ \_def\_printlabel##1{\_vbox to0pt{\_vss\_llap{\_labelfont[##1]}\_kern1.7ex}}%
+ \_fontdef\_labelfont{\_setfontsize{at10pt}\setfontcolor{blue}\_tt}
+}
+\_public \showlabels ;
+
\_endcode %------------------------------------------
diff --git a/macros/luatex/optex/sections.opm b/macros/luatex/optex/sections.opm
index e528680d42..dae71df77a 100644
--- a/macros/luatex/optex/sections.opm
+++ b/macros/luatex/optex/sections.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \chap {Titles, chapters, sections, subsections <2020-03-02>}
+\_codedecl \chap {Titles, chapters, sections, subsections <2020-03-14>} % preloaded in format
\_doc ---------------------------
We are using scaled fonts for titles. They are scaled from main fonts size
diff --git a/macros/luatex/optex/slides-bg.png b/macros/luatex/optex/slides-bg.png
new file mode 100644
index 0000000000..4ac1ad8c38
--- /dev/null
+++ b/macros/luatex/optex/slides-bg.png
Binary files differ
diff --git a/macros/luatex/optex/slides.opm b/macros/luatex/optex/slides.opm
new file mode 100644
index 0000000000..faff579798
--- /dev/null
+++ b/macros/luatex/optex/slides.opm
@@ -0,0 +1,211 @@
+% This is part of OpTeX project, see http://petr.olsak.net/optex
+
+\_codedecl \slideshow {Slides style for OpTeX <2020-03-19>} % loaded on demand by \slides
+
+ \_doc -----------------------------
+ Default margins and design is declared here.
+ Note that `\_ttfont` is scaled by `mag1.15` in order to balance the
+ ex height of Helvetica (Heros) and LM fonts Typewriter.
+ The `\begtt`...`\endtt` verbatim is printed by smaller text.
+ \_cod -----------------------------
+
+\_margins/1 a5l (14,14,10,3)mm % landscape A5 format
+\_def\_wideformat{\_margins/1 (263,148) (16,16,10,3)mm } % 16:9 format
+
+\_fontfam[Heros]
+\_typosize[16/19]
+\_famvardef\_ttfont{\_setfontsize{mag1.15}\_tt}
+\_def\_urlfont{}
+\_everytt={\_typosize[13/16] \advance\hsize by10mm}
+\_fontdef\_fixbf{\_bf}
+
+\_nopagenumbers
+\_parindent=0pt
+\_ttindent=5mm
+\_parskip=5pt plus 4pt minus2pt
+\_rightskip=0pt plus 1fil
+\_ttindent=10pt
+\_def\_ttskip{\_smallskip}
+
+\_onlyrgb % RGB color space is better for presentations
+
+ \_doc -----------------------------
+ The bottom margin is set to 3\,mm. If we use 1\,mm, then baseline of
+ `\footline` is 2\,mm from the bottom page. This is depth of the `\Grey`
+ rectange used for page numbers. It is rlapped to `\hoffset` because left
+ margin = `\hoffset` = right margin. It is 14\,mm for narrow pages or
+ 16\,mm for wide pages.
+ \_cod -----------------------------
+
+\_footlinedist=1mm
+\_footline={\_hss \_rlap{%
+ \_rlap{\Grey\_kern.2\_hoffset\_vrule height6mm depth2mm width.8\_hoffset}%
+ \_hbox to\_hoffset{\White\_hss\_folio\_kern3mm}}}
+
+ \_doc -----------------------------
+ The `\subtit` is defined analogicaly like `\tit`.
+ \_cod -----------------------------
+
+\_eoldef\_subtit#1{\_vskip20pt {\_leftskip=0pt plus1fill \_rightskip=\_leftskip
+ \_subtitfont #1\_nbpar}}
+
+ \_doc -----------------------------
+ The `\pshow<num>` is implemented by printing the text in invisible
+ (transparent) font when `\layernum<<num>`.
+ The color font feature is used for this transparency.
+ \_cod -----------------------------
+
+\_famvardef\Transparent{\_setfontcolor{FF000000}\_currvar}
+\_def\_use#1#2{\_ifnum\_layernum#1\_relax#2\_fi}
+\_def\_pshow#1{\_use{=#1}\Red \_use{<#1}\Transparent \_ignorespaces}
+
+ \_doc -----------------------------
+ The main level list is activated here. The `\_item:X` and
+ `\_item:x` are used and are re-defined here.
+ If we are in nested level of items and `\pg+` is used then
+ `\egroups` macro xepands to the right number of `\egroup`s
+ in order to close page correctly. The level of nested item lists
+ is saved to the `\_ilevel` register and used when we start again
+ the next text after `\pg+`.
+ \_cod -----------------------------
+
+\_newcount\_ilevel \_newcount\_gilevel
+\_def\*{*}
+\_adef*{\_startitem}
+\_sdef{_item:X}{\Blue\_raise.2ex\_fullrectangle{.8ex}\_kern.5em}
+\_sdef{_item:x}{\Blue\_raise.3ex\_fullrectangle{.6ex}\_kern.4em}
+\_style X
+\_addto\_begitems{\_style x }\public \begitems ;
+\_def\_egroups{\_par\_global\_gilevel=\_ilevel \_egroup}
+\_everybegitems={\_advance\_ilevel by1 \_addto\_egroups{\_egroup}}
+
+ \_doc -----------------------------
+ The default values of `\pg;`, `\pg+` and `\pg.` are very simple.
+ They are used when `\showslides` is not specified.
+ \_cod -----------------------------
+
+\_def\_pg#1{\_cs{_spg:#1}}
+\_sdef{_spg:;}{\_vfil\_break \_lfnotenumreset}
+\_sdef{_spg:.}{\_end}
+\_sdef{_spg:+}{\_par}
+
+ \_doc -----------------------------
+ We need no numbers and no table of contents when using slides.
+ The `\_printsec` macro is redefined in order the title is centered
+ and typeset in `\Blue`.
+ \_cod -----------------------------
+
+\_def\_titfont{\_typosize[42/60]\_bf \Blue}
+\_def\_subtitfont{\_typosize[20/30]\_bf}
+\_def\_secfont{\_typosize[25/30]\_bf \Blue}
+
+\_nonum \_notoc \_let\_resetnonumnotoc=\_relax
+\_def\_printsec#1{\_par
+ \_abovetitle{\_penalty-400}\_bigskip
+ {\_secfont \_noindent \_leftskip=0pt plus1fill \_rightskip=\_leftskip
+ \_printrefnum[@\_quad]#1\_nbpar}\_insertmark{#1}%
+ \_nobreak \_belowtitle{\_medskip}%
+}
+
+ \_doc -----------------------------
+ When `\slideshow` is active then each page is opened (roughly speaking)
+ by `\setbox\_slidepage=\vbox\bgroup` and closed by `\egroup`. The material is
+ `\unvbox`ed and saved for the usage in the next usage if `\pg+` is in process.
+ The `\_slidelayer` is inceremnted instead `\pageno` if `\pg+`.
+ This counter is equal to `\count1`, so it is printed to the terminal and
+ log file next to `\pageno`.
+
+ The code is somewhat more complicated when `\layers` is used. Then
+ <layered-text> is saved to the `\_layertext` macro, the material before
+ it is in `\_sidepage` box and the material after it is in `\_slidepageB`
+ box. The pages are completrd in the `\loop` which increments the
+ `\layernum` register.
+ \_cod -----------------------------
+
+\_newbox\_slidepage \_newbox\_slidepageB
+\_countdef\_slidelayer=1
+\_def\_decr#1{\_global\_advance#1 by-1 }
+
+\_def\_slideshow{\_slidelayer=1 \_slideshowactive \_setbox\_slidepage=\_vbox\_bgroup}
+
+\_def\_slideshowactive{%
+ \_sdef{_spg:;}{\_closepage \_global\_slidelayer=1 \_resetpage \_openslide}
+ \_sdef{_spg:.}{\_closepage \_end}
+ \_sdef{_spg:+}{\_closepage \_incr\_slidelayer \_decr\_pageno \_openslide}
+ \_def\bye {\_closepage \_end}
+ \_let\_layers=\_layersactive
+ \_def\_destbox[##1:##2]{\_isequal{##1}{ref}\_iffalse \_destboxori[##1:##2]\_fi}%
+}
+\_def\_openslide{\_setbox\_slidepage=\_vbox\_bgroup \_setilevel
+ \_ifvoid\_slidepage \_else \_unvbox\_slidepage \_nointerlineskip\_lastbox \_fi}
+\_def\_setilevel{\_loop \_decr\_gilevel \_ifnum\_gilevel<0 \_else \_begitems \_repeat}
+
+\_def\_closepage{\_egroups
+ \_ifnum \_maxlayers=0 \_unvcopy\_slidepage \_vfil\_break
+ \_else \_begingroup \_setwarnslides \_layernum=0
+ \_loop
+ \_ifnum\_layernum<\_maxlayers \_advance\_layernum by1
+ \_printlayers \_vfil\_break
+ \_ifnum\_layernum<\_maxlayers \_incr\_slidelayer \_decr\_pageno \_fi
+ \_repeat
+ \_global\_maxlayers=0
+ \_incr\_layernum \_global\_setbox\_slidepage=\_vbox{\_printlayers}%
+ \_endgroup
+ \_fi}
+\_def\_resetpage{%
+ \_global\_setbox\_slidepage=\_box\_voidbox \_global\_setbox\_slidepageB=\_box\_voidbox
+ \_lfnotenumreset
+}
+\_def\_setwarnslides{%
+ \_def\pg##1{\_opwarning{\_string\pg##1 \_layersenv}\_def\pg####1{}}%
+ \_def\layers##1 {\_opwarning{\_string\layers\_space \_layersenv}\_def\layers####1{}}%
+}
+\_def\_layersenv{cannot be inside \_string\layers...\_string\endlayers, ignored}
+
+\_def\_printlayers{\_unvcopy\_slidepage \_nointerlineskip\_lastbox
+ \_layertext \_endgraf
+ \_ifdim\_prevdepth>-1000pt \_kern-\_prevdepth \_kern\_dp\_strutbox \_fi
+ \_vskip\_parskip
+ \_unvcopy\_slidepageB
+}
+\_let\_destboxori=\_destbox
+
+\_newcount\_layernum \_newcount\_maxlayers
+\_maxlayers=0
+
+\_long\_def\_layersactive #1 #2\endlayers{%
+ \_par\_egroup
+ \_gdef\_layertext{#2}%
+ \_global\_maxlayers=#1
+ \_setbox\_slidepageB=\_vbox\_bgroup
+}
+
+ \_doc -----------------------------
+ Default `\layers <num>` macro (when `\slideshow` is not activated) is simple.
+ It prints the <layered-text> with `\layernum=<num>+1` because we need the
+ result after last layer is processed.
+ \_cod -----------------------------
+
+\_def\_layers #1 {\_par\_layernum=\_numexpr#1+1\_relax}
+\_let\endlayers=\_relax
+
+\_def\layers{\_layers}
+\_public \subtit \slideshow \pg \wideformat \use \pshow ;
+
+ \_doc -----------------------------
+ We must to redefine `\fnotenumpages` because the data from `.ref` file
+ are less usable for implementing such feature: the
+ footnote should be in more layers repeatedly. But we can suppose that
+ each page starts by `\pg;` macro, so we can reset the footnote counter by
+ this macro.
+ \_cod -----------------------------
+
+\_def \_fnotenumpages {\def\_fnotenum{\_the\_lfnotenum}\_pgfnotefalse
+ \_def\_lfnotenumreset{\_global\_lfnotenum=0 }}
+\_let \_lfnotenumreset=\_relax
+\_public \fnotenumpages ;
+
+\_endcode % ----------------------------------------------
+
+The user manual of \OpTeX/ slides are in `op-slides.tex` file.
+
diff --git a/macros/luatex/optex/styles.opm b/macros/luatex/optex/styles.opm
index 66414f85ff..13aaec91b2 100644
--- a/macros/luatex/optex/styles.opm
+++ b/macros/luatex/optex/styles.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \report {Basic styles of OpTeX <2020-03-12>}
+\_codedecl \report {Basic styles of OpTeX <2020-03-18>} % preloaded in format
\_doc -----------------------------
The `{\boxlines <line-1><eol><line-2><eol>...<line-n><eol>}`
@@ -46,7 +46,12 @@
\_parskip=\_medskipamount
\_nopagenumbers
}
-\_public \boxlines \letter \report ;
+
+\_def\_slides{\_par
+ \_input slides.opm
+}
+
+\_public \boxlines \letter \report \slides ;
\_endcode % -------------------------------------
diff --git a/macros/luatex/optex/table.opm b/macros/luatex/optex/table.opm
index 3596275e48..c210c75b34 100644
--- a/macros/luatex/optex/table.opm
+++ b/macros/luatex/optex/table.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \table {Basic macros for OpTeX <2020-03-12>}
+\_codedecl \table {Basic macros for OpTeX <2020-03-13>} % preloaded in format
\_doc -----------------------------
The result of `\table` is inserted into `\_tablebox`. You can change
diff --git a/macros/luatex/optex/uni-lcuc.opm b/macros/luatex/optex/uni-lcuc.opm
index 3e753370d9..92ed39d24c 100644
--- a/macros/luatex/optex/uni-lcuc.opm
+++ b/macros/luatex/optex/uni-lcuc.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-% A copy o uni-lcuc.tex fom csplain is here
+% Preloaded in format. A copy o uni-lcuc.tex fom csplain is here:
% uni-lcuc.tex -- sets \lccodes and \uccodes for Unicode chars, nothing more
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/luatex/optex/unimath-codes.opm b/macros/luatex/optex/unimath-codes.opm
index 3e5b95669d..83d59835b5 100644
--- a/macros/luatex/optex/unimath-codes.opm
+++ b/macros/luatex/optex/unimath-codes.opm
@@ -1,8 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-% This file is read when \loadmath is used.
-
-\_ifx \_ncharrmA\_undefined \_else \_endinput \_fi
+\_codedecl \_ncharrmA {Uni math codes <2020-03-14>} % preloaded on demand by \loadmath
\_umathnumB="0391
\_greekdef \Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta \Theta \Iota \Kappa
diff --git a/macros/luatex/optex/usebib.opm b/macros/luatex/optex/usebib.opm
index ebaf912b53..de6a0bf40d 100644
--- a/macros/luatex/optex/usebib.opm
+++ b/macros/luatex/optex/usebib.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_ifx\MakeReference\_udefined \_else \_endinput \_fi
+\_codedecl \MakeReference {Reading bib databases <2020-03-13>} % loaded on demand by \usebib
% we needn't \errmessage when bad TeX engnine is detected during \input librarian:
@@ -113,7 +113,8 @@
\_bibmark=\_ea{\_tmpb}%
\_else \_bibmark={}\_fi
\_edef\_tmpb{\EntryKey}%
- \_noindent \_dest[cite:\_the\_bibnum]\_printbib
+ \_noindent \_dest[cite:\_the\_bibnum]\_printlabel\EntryKey
+ \_printbib
{%
\_RetrieveFieldIn{entrytype}\_entrytype
\_csname _print:BEGIN\_endcsname
diff --git a/macros/luatex/optex/verbatim.opm b/macros/luatex/optex/verbatim.opm
index e0f86c810e..c7593a7d7a 100644
--- a/macros/luatex/optex/verbatim.opm
+++ b/macros/luatex/optex/verbatim.opm
@@ -1,6 +1,6 @@
%% This is part of OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \begtt {Verbatim <2020-02-14>}
+\_codedecl \begtt {Verbatim <2020-03-18>} % preloaded in format
\_doc ----------------------------
The internal parameters for verbatim macros are set.
@@ -10,6 +10,7 @@
\_mathchardef\_ttpenalty=100 % penalty between lines in \begtt, \verbinput
\_newcount\_viline % last line number in \verbinput
\_newread\_vifile % file fgiven by \verinput
+\_def\_ttfont{\_tt} % default tt font
\_doc ----------------------------
`\code{<text>}` expands to `\detokenize{<text>}` when `\escapechar=-1`. In
@@ -31,7 +32,7 @@
\_cod ----------------------------
\_def\_code#1{\_unexpanded\_ea{\_csname _code \_endcsname{#1}}}
-\_protected\_sdef{_code }#1{{\_escapechar=-1 \_tt \_the\_everyintt \_relax
+\_protected\_sdef{_code }#1{{\_escapechar=-1 \_ttfont \_the\_everyintt \_relax
\_ea\_printinverbatim\_ea{\_detokenize{#1}}}}
\_def\_printinverbatim#1{\_leavevmode\_hbox{#1}}
@@ -77,7 +78,7 @@
\_ifx\_savedttchar\_undefined\_else \_catcode\_savedttchar=\_savedttcharc \_fi
\_chardef\_savedttchar=`#1
\_chardef\_savedttcharc=\_catcode`#1
- \_adef{#1}{\_begingroup \_setverb \_adef{ }{\ }\_tt \_the\_everyintt\_relax \_readverb}%
+ \_adef{#1}{\_begingroup \_setverb \_adef{ }{\ }\_ttfont \_the\_everyintt\_relax \_readverb}%
\_def\_readverb ##1#1{\_printinverbatim{##1}\_endgroup}%
}
\_public \activettchar ;
@@ -126,7 +127,7 @@
\_setverb
\_ifnum\_ttline<0 \_let\_printverblinenum=\_relax \_else \_initverblinenum \_fi
\_adef{ }{\ }\_parindent=\_ttindent \_parskip=0pt
- \_the\_everytt \_relax #1\_relax \_tt
+ \_the\_everytt \_relax #1\_relax \_ttfont
\_endlinechar=`^^J
\_startverb
}
@@ -135,7 +136,7 @@
\_ea\_printverb \_tmpb\_end
\_par\_ttskip
\_endgroup
- \_noindent \_setbox0=\_lastbox
+ \_isnextchar\_par{}{\_noindent}%
}
\_def\_printverb #1^^J#2{\_ifx\_end#2
\_bgroup \_adef{ }{}\_if\_relax#1\_relax\_egroup \_else\_egroup \_printverbline{#1}\_fi
@@ -213,7 +214,7 @@
\_begingroup
\_ifnum\_ttline<-1 \_let\_printverblinenum=\_relax \_else \_initverblinenum \_fi
\_setverb \_adef{ }{\ }\_parindent=\_ttindent \_parskip=0pt
- \_the\_everytt\_relax \_tt
+ \_the\_everytt\_relax \_ttfont
\_endlinechar=`^^J \_tmpnum=0
\_loop \_ifeof\_vifile \_tmpnum=\_vinolines\_space \_fi
\_ifnum\_tmpnum<\_vinolines\_space
diff --git a/macros/musixtex/README b/macros/musixtex/README
index aebd633e31..3e87b0e509 100644
--- a/macros/musixtex/README
+++ b/macros/musixtex/README
@@ -1,4 +1,4 @@
-This is MusiXTeX, version 1.29 (2018-08-04).
+This is MusiXTeX, version 1.30 (2020-03-20).
MusiXTeX is a TeX-based system for typesetting music.
The main author was Daniel Taupin, who died in a climbing
diff --git a/macros/musixtex/doc/ChangeLog-130.txt b/macros/musixtex/doc/ChangeLog-130.txt
new file mode 100644
index 0000000000..69dae51de7
--- /dev/null
+++ b/macros/musixtex/doc/ChangeLog-130.txt
@@ -0,0 +1,5 @@
+
+Changes from MusiXTeX 129 to 130:
+
+ * defined \zdoublebar for use within a bar
+ * defined \hbp and \hbpp
diff --git a/macros/musixtex/doc/musixdoc.pdf b/macros/musixtex/doc/musixdoc.pdf
index d2b3b793db..073774546f 100644
--- a/macros/musixtex/doc/musixdoc.pdf
+++ b/macros/musixtex/doc/musixdoc.pdf
Binary files differ
diff --git a/macros/musixtex/doc/musixdoc/barlines.tex b/macros/musixtex/doc/musixdoc/barlines.tex
index 0303b7a9a4..92cd5624c7 100644
--- a/macros/musixtex/doc/musixdoc/barlines.tex
+++ b/macros/musixtex/doc/musixdoc/barlines.tex
@@ -14,10 +14,10 @@ To typeset a double bar line with two thin rules, use \keyindex{doublebar}. You
also issue \keyindex{setdoublebar} to cause the next \verb|\bar| (or
\keyindex{stoppiece}, \keyindex{alaligne}, or \keyindex{alapage}) to be replaced
by a double bar.
-
There is no specific command to print a thin-thick double bar line, but
\keyindex{setdoubleBAR} will cause one in the same cases where
\verb|\setdoublebar| would cause a thin-thin double bar line.
+To typeset a double-bar line in the middle of a bar, use \keyindex{zdoublebar}.
To make the next bar line invisible, use \keyindex{setemptybar} before
\verb|\bar|.
diff --git a/macros/musixtex/doc/musixdoc/beams.tex b/macros/musixtex/doc/musixdoc/beams.tex
index 354906640e..2805e0aff6 100644
--- a/macros/musixtex/doc/musixdoc/beams.tex
+++ b/macros/musixtex/doc/musixdoc/beams.tex
@@ -340,6 +340,10 @@ using the \keyindex{hb} macro:
\Notes\ibbl0j0\hb0j\tbl0\hb0j\en
\Notes\ibbl0h4\hb0h\tbl0\hb0j\en
\end{verbatim}\end{quote}\noindent
+There are also dotted and double-dotted versions \keyindex{hbp} and
+\keyindex{hbpp}.
+
+
A different look could be obtained as follows:
\begin{music}\nostartrule
diff --git a/macros/musixtex/doc/musixdoc/frontmatter.tex b/macros/musixtex/doc/musixdoc/frontmatter.tex
index 42d4e645c0..64be0c29fe 100644
--- a/macros/musixtex/doc/musixdoc/frontmatter.tex
+++ b/macros/musixtex/doc/musixdoc/frontmatter.tex
@@ -1,6 +1,6 @@
\title{\Huge\bfseries\musixtex\\[\bigskipamount]
\LARGE\bfseries Using \TeX{} to write polyphonic\\or
-instrumental music\\\Large\itshape Version 1.29}
+instrumental music\\\Large\itshape Version 1.30}
\author{}
@@ -68,7 +68,7 @@ Since then, the only significant update to \musixtex\ has been in version 1.15 (
takes advantage of the greater capacity of the e\TeX\ version of \TeX.
This manual
is the definitive reference to all features of
-\musixtex\ version~1.29.
+\musixtex\ version~1.30.
Novice users need not start here.
Most
diff --git a/macros/musixtex/doc/musixdoc/layout.tex b/macros/musixtex/doc/musixdoc/layout.tex
index 10d8bbc3cf..5d2b353b79 100644
--- a/macros/musixtex/doc/musixdoc/layout.tex
+++ b/macros/musixtex/doc/musixdoc/layout.tex
@@ -16,9 +16,10 @@ mid-bar location as an optional line-breaking point, use \keyindex{zbar}.
The heavy final double bar of a piece is one of the consequences of
\keyindex{Endpiece} or \keyindex{Stoppiece}. If you just want to terminate
the text with a simple bar, say \keyindex{stoppiece} or \keyindex{endpiece}.
-If you want to suppress right-justification of the last line of a score,
-use \keyindex{raggedstoppiece}.
To terminate it with no bar line at all, code \keyindex{zstoppiece}.
+If you want to suppress right-justification of the last line of a score,
+use \keyindex{raggedstoppiece}; the bar line can be suppressed by
+using \keyindex{setemptybar}.
Once you have stopped the score by any of these means, you may want to restart
it, and there are several ways to do so. If you don't need to change the key
diff --git a/macros/musixtex/doc/musixdoc/miscellaneous.tex b/macros/musixtex/doc/musixdoc/miscellaneous.tex
index 50be2c0344..f212b769d7 100644
--- a/macros/musixtex/doc/musixdoc/miscellaneous.tex
+++ b/macros/musixtex/doc/musixdoc/miscellaneous.tex
@@ -81,9 +81,14 @@ small circle above a note head at pitch $p$.
\end{itemize}
These marks are horizontally centered relative to solid note heads.
To
-compensate for the fact that whole notes are wider, you should use
-\keyindex{wholeshift}\verb|{|\ital{Any nonspacing macro}\verb|}| to center accents
-and other items (e.g.,~\verb|\Fermataup|) above a whole note.
+compensate for the fact that whole notes are wider, you may use
+\begin{quote}
+\keyindex{wholeshift}\verb|{|\ital{Any nonspacing macro}\verb|}|
+\end{quote}
+to center accents
+(and other items) above or below a whole note. For example,
+\keyindex{Fermataup}\pitchp~(described in Section~{\ref{ornaments}}) is
+\emph{defined} as \keyindex{wholeshift}\verb|{|\keyindex{fermataup}\pitchp\verb|}|.
There are also variants of the most common accents\footnote{Thanks to Klaus
{\sc Bechert}'s corrections.} which will be automatically positioned
@@ -139,6 +144,7 @@ The macro
\verb|\tuplettxt| serves the same role for the last two macros.
The font used is defined by
\verb|\txtfont| and is, by default, \verb|\eightit| (in normal music size) but may be re-defined.
+\zkeyindex{txtfont}
The first four commands in the table
are normally used with beamed xtuplets. As indicated in the
@@ -273,6 +279,7 @@ it is possible to define \verb|\txt| or
\end{verbatim}\end{quote}
\section{Ornaments}
+\label{ornaments}
\subsection{Simple ornaments}\index{ornaments}
@@ -302,7 +309,7 @@ compensate for the fact that whole notes are wider, you may use
\keyindex{wholeshift}\verb|{|\mbox{\ital{Any nonspacing macro}}\verb|}|
\end{quote}
to center any of these ornaments
-above a whole note.
+above (or below) a whole note.
In the following macros for fermatas, the argument $p$ is the pitch of the
@@ -951,6 +958,55 @@ The coding is
\zendextract
\end{verbatim}\end{quote}
\end{footnotesize}
+
+\clearpage
+
+Here is the same example with \verb|\tabstylespacetrue|:
+\begin{music}
+\input musixps
+\def\psslurhgt{0.5}
+\instrumentnumber{2}
+\songbottom1\songtop2
+\generalmeter{\meterfrac34}
+\generalsignature{-1}
+\setlines16
+\setclefsymbol1\tabclef\setclefsymbol2\treblelowoct
+\tabstylespacetrue
+\setsize1\largevalue
+\setsign10
+\nobarnumbers
+\interinstrument=4\internote
+\parindent=2ex
+\setname1{\tabstringfnt\baselineskip=1.5\internote%
+ \vbox{\hbox to\parindent{\hss E \hss}%
+ \hbox to\parindent{\hss B \hss}%
+ \hbox to\parindent{\hss G \hss}%
+ \hbox to\parindent{\hss D \hss}%
+ \hbox to\parindent{\hss A \hss}%
+ \hbox to\parindent{\hss D \hss}%
+}}
+\startextract
+\NOtesp\zltab55\zltab43\ltab32&\zh{d}\zhl{f}\qu{.h}\en
+\Notes\ltab32&\cu{h}\en
+\bar%
+\NOtes\zltab55\zltab45\zltab33\ltab10&\zq d\zql g\zq i\qu l\en
+\NOtesp\zltab54\zltab45\zltab32\ltab10&\rhl{^c}\rhu{g}\zh{h}\qu{.l}\en
+\Notes\ltab10&\cu{l}\en
+\bar%
+\NOtes\zltab40\zltab32\zltab23\ltab11&\zq d\zq h\zq k\qu{m}\en
+\NOtes\zltab51\zltab43\zltab33\ltab23&\zhl b\zh f\zq{.i}\qu{.k}\en
+\Notes\ltab35&\cu j\en
+\bar%
+\NOtes\zltab65\zltab45\ltab33&\zql N\zq g\qu i\en
+\NOtes\zltab50\zltab43\ltab32&\zql a\zq f\qu h\en
+\notes\zltab54\ltab45\ilsluru05\ltab43\ltab42\tlslur05\ltab43%
+&\zql{^c}\ibbu0g{-1}\qb0{g}\slur eed2\qb0{fe}\tqu0f\en
+\bar%
+\notes\zltab60\zltab50\ltab45\ilsluru05\ltab42\ltab43\tlslur05\ltab40%
+&\zq K\zql a\ibbu0g{-1}\qb0g\slur edd2\qb0e\qb0f\tqu0d\en
+\znotes&\lcn{14}{J.S. Bach}\en
+\zendextract
+\end{music}
Tablature support in \musixtex\ has been adapted
from \verb|tabdefs.tex| by R.J.~Gelten, which is available
\href{http://icking-music-archive.org/software/musixtex/add-ons/tabdefs.tex}
diff --git a/macros/musixtex/doc/musixdoc/parameters.tex b/macros/musixtex/doc/musixdoc/parameters.tex
index 6cdd48b62f..8ecffdad46 100644
--- a/macros/musixtex/doc/musixdoc/parameters.tex
+++ b/macros/musixtex/doc/musixdoc/parameters.tex
@@ -138,3 +138,83 @@ to their default values: \keyindex{staffbotmarg} (\verb|3\Interligne|),
number of lines per staff for all instruments ($5$); and will reset all clef
symbols to standard clef symbols.
+ \section{Split and Shortened Systems}
+It is sometimes desirable to typeset a ``shortened'' system or to split
+a system into left and right segments, as in the following (extracted from a
+Geminiani \emph{concerto grosso}):
+
+\begin{music}
+\smallmusicsize
+\setclef1\bass
+\setclef5\treble\settrebleclefsymbol5\trebleoct
+\generalsignature{-2}
+\instrumentnumber5
+\songbottom{1}\songtop{5}
+\setinterinstrument4{1\internote}
+\nobarnumbers
+\generalmeter{\meterfrac38}
+\hbox to\hsize\bgroup\vbox\bgroup\hsize=1.7in
+\startpiece\addspace\afterruleskip
+\Notes\qa G\sk&\ibu1i{-1}\qb1i\qb1{.g}&\ca d\qa g&\ca n\itieu3n\qa n&\ca g\ds\en
+\notes\ds\sk&\sk\tbbu1\tqu1g&\sk\sk&\sk\sk\ttie3&\ds\sk\en
+\znotes&&&&\lcn{q}{\bf D.S. al\kern3ex}\coda p\en
+\setdoublebar\endpiece
+\egroup\hfill\vbox\bgroup\hsize=3.7in
+\generalmeter{\allabreve}
+\startpiece\addspace\afterruleskip
+\znotes&&&&\coda o\en
+\NOtes\qa{.G}&\qa{.k}&\qa{.d}&\qa n&\qa g\en
+\notes\sk\sk\qs\cca N&\sk\sk\qs\cca i&\sk\sk\qs\cca k&\qs\ibbl3p{-2}\qb3{p}\qb3{o}\tql3n&\qp\sk\sk\sk\en
+\NOtes\qa{.M}&\qa{.h}&\qa{.k}&\qa o&\ha k\en
+\Notes\sk&\sk&\sk&\itieu3r\qa r&\sk\en
+\notes\qs\cca M&\qs\cca h&\qs\cca k&\sk\sk&\sk\sk\en
+\bar
+\NOtes\wh L\sk&\qa{g}\qa{g}&\ha{l}\sk&\ttie3\ha r\sk&\ha{g}\sk\en
+\NOTes\sk&\ha j&\ha{n}&\tr s\ha q&\ha{n}\en
+\bar
+\nspace
+\NOtesp\ha{.K}&\ha{.h}&\ha{.k}&\ha{.r}&\ha{.^m}\en
+\setdoublebar\endpiece
+\egroup\egroup
+\end{music}
+
+This was coded as follows:
+\begin{footnotesize}
+\begin{quote}\begin{verbatim}
+\setclef1\bass\setclef5\treble\settrebleclefsymbol5\trebleoct
+\generalsignature{-2}
+\instrumentnumber5\songbottom{1}\songtop{5}
+\nobarnumbers
+\generalmeter{\meterfrac38}
+\hbox to\hsize\bgroup\vbox\bgroup\hsize=1.7in % specify length of left segment
+\startpiece\addspace\afterruleskip
+\Notes\qa G\sk&\ibu1i{-1}\qb1i\qb1{.g}
+ &\ca d\qa g&\ca n\itieu3n\qa n&\ca g\ds\en
+\notes\ds\sk&\sk\tbbu1\tqu1g
+ &\sk\sk&\sk\sk\ttie3&\ds\sk\en
+\znotes&&&&\lcn{q}{\bf D.S. al\kern3ex}\coda p\en
+\setdoublebar\endpiece
+\egroup\hfill\vbox\bgroup\hsize=3.7in % specify length of right segment
+\generalmeter{\allabreve}
+\startpiece\addspace\afterruleskip
+\znotes&&&&\coda o\en
+\NOtes\qa{.G}&\qa{.k}&\qa{.d}&\qa n&\qa g\en
+\notes\sk\sk\qs\cca N&\sk\sk\qs\cca i
+ &\sk\sk\qs\cca k
+ &\qs\ibbl3p{-2}\qb3{p}\qb3{o}\tql3n
+ &\qp\sk\sk\sk\en
+\NOtes\qa{.M}&\qa{.h}&\qa{.k}&\qa o&\ha k\en
+\Notes\sk&\sk&\sk&\itieu3r\qa r&\sk\en
+\notes\qs\cca M&\qs\cca h&\qs\cca k
+ &\sk\sk&\sk\sk\en
+\bar
+\NOtes\wh L\sk&\qa{g}\qa{g}&\ha{l}\sk
+ &\ttie3\ha r\sk&\ha{g}\sk\en
+\NOTes\sk&\ha j&\ha{n}&\tr s\ha q&\ha{n}\en
+\bar
+\nspace
+\NOtesp\ha{.K}&\ha{.h}&\ha{.k}&\ha{.r}&\ha{.^m}\en
+\setdoublebar\endpiece
+\egroup\egroup % close open \bgroups
+\end{verbatim}\end{quote}
+\end{footnotesize}
diff --git a/macros/musixtex/doc/musixdoc/slurstiesTypeK.tex b/macros/musixtex/doc/musixdoc/slurstiesTypeK.tex
index b7bfca7d64..c387eb2b68 100644
--- a/macros/musixtex/doc/musixdoc/slurstiesTypeK.tex
+++ b/macros/musixtex/doc/musixdoc/slurstiesTypeK.tex
@@ -61,7 +61,11 @@ or right by substituting one of the commands \keyindex{ilsluru},
For shifts farther to the left, use
\keyindex{iLsluru},
\keyindex{iLslurd}
-or \keyindex{tLslur}.
+or \keyindex{tLslur};
+for shifts farther to the right, use
+\keyindex{iRsluru},
+\keyindex{iRslurd}
+or \keyindex{tRslur}.
You can control the shape of type~K slurs with variants of
diff --git a/macros/musixtex/doc/musixdoc/writingnotes.tex b/macros/musixtex/doc/musixdoc/writingnotes.tex
index 7bd5c83375..bc8b3cd4d7 100644
--- a/macros/musixtex/doc/musixdoc/writingnotes.tex
+++ b/macros/musixtex/doc/musixdoc/writingnotes.tex
@@ -44,7 +44,7 @@ macro from the letter.
\item[\keyindex{breve}{\tt\char123}$p${\tt\char125} :]breve (\hbox to 8pt{\zbreve1\hss}) .
\item[\keyindex{longa}{\tt\char123}$p${\tt\char125} :]longa (\hbox to8pt{\zlonga1\hss}) .
\item[\keyindex{longaa}{\tt\char123}$p${\tt\char125} :]longa with automatic stem direction\footnote{Editor's note: Evidently there is no explicit up-stemmed longa} .
- \item[\keyindex{zmaxima}{\tt\char123}$p${\tt\char125} :]maxima(\hbox to16pt{\zmaxima1\hss}) .
+ \item[\keyindex{maxima}{\tt\char123}$p${\tt\char125} :]maxima (\hbox to16pt{\zmaxima1\hss}) .
\item[\keyindex{wq}{\tt\char123}$p${\tt\char125} :]arbitrary duration note (\hbox to8pt{\zwq1\hss})
(also used as alternate representation of a \ital{breve}).
\item[\keyindex{wqq}{\tt\char123}$p${\tt\char125} :]long arbitrary duration note
@@ -214,7 +214,7 @@ Non spacing variants are also provided, namely
By appending one or two \verb|p|'s (for ``pointed'') to the name, many of the
macros just introduced provide one or two dots after the notehead:
-\keyindex{whp}\pitchp, \keyindex{whpp},
+\keyindex{whp}, \keyindex{whpp},
\keyindex{zwp}, \keyindex{zwpp},
\keyindex{hup}, \keyindex{hupp},
\keyindex{hlp}, \keyindex{hlpp},
@@ -226,12 +226,14 @@ macros just introduced provide one or two dots after the notehead:
\keyindex{zqp}, \keyindex{zqpp},
\keyindex{cup}, \keyindex{cupp},
\keyindex{clp}, \keyindex{clpp},
-\keyindex{qbp} and \keyindex{qbpp}.
-Naturally, the ones that start with ``\verb|z|'' are used in chords.
+\keyindex{qbp} and \keyindex{qbpp}, all followed by a pitch argument.
+The ones that start with ``\verb|z|'' are used in chords.
The dot(s) will be raised if the note is on a line.
-A more explicit way uses one of the macros \keyindex{pt}{\tt\char123}$p${\tt\char125},
-\keyindex{ppt}, or \keyindex{pppt} right
+A more explicit way uses one of the macros
+\keyindex{pt}{\tt\char123}$p${\tt\char125},
+\keyindex{ppt}{\tt\char123}$p${\tt\char125}, or
+\keyindex{pppt}{\tt\char123}$p${\tt\char125} right
before any note macro to place one to three dots after the normal note
head at pitch $p$. Again they will be raised if on a line. In fact this is the only
way to get a triple-dotted note.
@@ -239,6 +241,10 @@ For example a
quarter note with one dot could be coded \verb|\pt h\qu h|, with two dots
as \keyindex{ppt}\verb| h\qu h| and with three as
\keyindex{pppt}\verb| h\qu h|.
+As a matter of style, if two voices share one staff, the dots in
+the lower voice should be \emph{lowered} if the note is on a line. For
+this you can use \keyindex{lpt},
+\keyindex{lppt} and \keyindex{lpppt}.
Yet another method for posting a dot is to insert a \ital{period} before
the letter representing the pitch. Thus \verb|\qu{.a}| is equivalent to
@@ -248,14 +254,17 @@ section.
Non-spacing dotted notes can be produced using
\keyindex{zhup}, \keyindex{zhlp}, \keyindex{zqup}, \keyindex{zqlp},
-\keyindex{zcup}, \keyindex{zclp}, \keyindex{zqbp},
+\keyindex{zcup}, \keyindex{zclp}, \keyindex{zqbp}, followed by a pitch,
+and similarly with two \verb|p|'s for
+double-dotted notes.
+The following provide dotted chord notes shifted left or right:
+\keyindex{lhp},
+\keyindex{rhp},
+\keyindex{lqp},
+\keyindex{rqp},
and similarly with two \verb|p|'s for
double-dotted notes.
-As a matter of style, if two voices share one staff, the dots in
-the lower voice should be lowered if the note is on a line. For
-this you can use \keyindex{lpt}{\tt\char123}$p${\tt\char125} and
-\keyindex{lppt}{\tt\char123}$p${\tt\char125}.
\section{Sequences of equally spaced notes; collective coding}
\label{CollectiveCoding}
diff --git a/macros/musixtex/doc/notationmistakes/coulhack.tex b/macros/musixtex/doc/notationMistakes/coulhack.tex
index 1f797876cd..1f797876cd 100644
--- a/macros/musixtex/doc/notationmistakes/coulhack.tex
+++ b/macros/musixtex/doc/notationMistakes/coulhack.tex
diff --git a/macros/musixtex/doc/notationmistakes/sottieng.pdf b/macros/musixtex/doc/notationMistakes/sottieng.pdf
index ab29004645..ab29004645 100644
--- a/macros/musixtex/doc/notationmistakes/sottieng.pdf
+++ b/macros/musixtex/doc/notationMistakes/sottieng.pdf
Binary files differ
diff --git a/macros/musixtex/doc/notationmistakes/sottieng.tex b/macros/musixtex/doc/notationMistakes/sottieng.tex
index 1ce95adb9a..1ce95adb9a 100644
--- a/macros/musixtex/doc/notationmistakes/sottieng.tex
+++ b/macros/musixtex/doc/notationMistakes/sottieng.tex
diff --git a/macros/musixtex/doc/notationmistakes/sottiger.pdf b/macros/musixtex/doc/notationMistakes/sottiger.pdf
index 3dc37021e2..3dc37021e2 100644
--- a/macros/musixtex/doc/notationmistakes/sottiger.pdf
+++ b/macros/musixtex/doc/notationMistakes/sottiger.pdf
Binary files differ
diff --git a/macros/musixtex/doc/notationmistakes/sottiger.tex b/macros/musixtex/doc/notationMistakes/sottiger.tex
index a0b477cd0d..a0b477cd0d 100644
--- a/macros/musixtex/doc/notationmistakes/sottiger.tex
+++ b/macros/musixtex/doc/notationMistakes/sottiger.tex
diff --git a/macros/musixtex/doc/notationmistakes/sottigra.pdf b/macros/musixtex/doc/notationMistakes/sottigra.pdf
index 12cbc50e7d..12cbc50e7d 100644
--- a/macros/musixtex/doc/notationmistakes/sottigra.pdf
+++ b/macros/musixtex/doc/notationMistakes/sottigra.pdf
Binary files differ
diff --git a/macros/musixtex/doc/notationmistakes/sottigra.tex b/macros/musixtex/doc/notationMistakes/sottigra.tex
index e4fcafda06..e4fcafda06 100644
--- a/macros/musixtex/doc/notationmistakes/sottigra.tex
+++ b/macros/musixtex/doc/notationMistakes/sottigra.tex
diff --git a/macros/musixtex/doc/scripts/musixtex.1 b/macros/musixtex/doc/scripts/musixtex.1
index 5c3b84ca2c..839d07a882 100644
--- a/macros/musixtex/doc/scripts/musixtex.1
+++ b/macros/musixtex/doc/scripts/musixtex.1
@@ -1,5 +1,5 @@
.\" This manpage is licensed under the GNU Public License
-.TH MUSIXTEX 1 2018-07-27 "musixtex version 0.21" ""
+.TH MUSIXTEX 1 2020-03-20 "musixtex version 0.22" ""
.SH NAME
musixtex \- processes MusiXTeX files, using pre-processors prepmx, pmxab and autosp as necessary,
@@ -67,10 +67,10 @@ or
in that order, and process it as above.
.SH OPTIONS
.TP 10
-.B -v
+.B -v, -version, --version
output program name and version number, and quit
.TP
-.B -h
+.B -h, -help, --help
output usage summary and quit
.TP
.B -l
@@ -118,12 +118,16 @@ use
.B mtxx
as the mtx preprocessor; e.g., -M "prepmx -i".
.TP
+.B -X pmxx
+use
+.B pmxx
+as the pmx preprocessor; e.g., -X "./pmxab",
+.TP
.B -A aspcx
use
.B aspcx
as the aspc preprocessor; e.g., -A "autosp -l".
.TP
-.TP
.B -t
stop processing at the tex/mid files
.TP
@@ -153,7 +157,6 @@ quiet mode (only musixtex's own messages); other messages are diverted to a temp
If an error occurs at the TeX stage, processing halts immediately and the tail of the log file is sent to stderr.
Version information is copied from the temporary file to the log file.
-
.TP 0
Options affect processing of all succeeding MusiXTeX files unless changed by another option. Option flags cannot be combined; e.g., use \fB -l -x \fP rather than \fB -lx\fP.
diff --git a/macros/musixtex/doc/scripts/musixtex.pdf b/macros/musixtex/doc/scripts/musixtex.pdf
index e8caf62c92..ec49d4a3d6 100644
--- a/macros/musixtex/doc/scripts/musixtex.pdf
+++ b/macros/musixtex/doc/scripts/musixtex.pdf
Binary files differ
diff --git a/macros/musixtex/scripts/musixtex.lua b/macros/musixtex/scripts/musixtex.lua
index f591940b20..5f600b9955 100755
--- a/macros/musixtex/scripts/musixtex.lua
+++ b/macros/musixtex/scripts/musixtex.lua
@@ -1,12 +1,12 @@
#!/usr/bin/env texlua
-VERSION = "0.21"
+VERSION = "0.22"
--[[
musixtex.lua: processes MusiXTeX files using prepmx and/or pmxab and/or
autosp as pre-processors (and deletes intermediate files)
- (c) Copyright 2011-2018 Bob Tennent rdt@cs.queensu.ca
+ (c) Copyright 2011-2020 Bob Tennent rdt@cs.queensu.ca
and Dirk Laurie dirk.laurie@gmail.com
This program is free software; you can redistribute it and/or modify it
@@ -29,6 +29,10 @@ VERSION = "0.21"
ChangeLog:
+ version 0.22 2020-03-20 RDT
+ add -X option
+ add -version, --version, -help, --help options
+
version 0.21 2018-07-27 RDT
add -P option.
@@ -134,8 +138,8 @@ Usage: [texlua] musixtex.lua { option | basename[.mtx | .pmx | .aspc | .tex | .
The normal route after preprocessing goes tex-dvi-ps-pdf, but shorter
routes are also available, see the options. The default processing route
for .tex files is etex-musixflx-etex.
-Options: -v version
- -h help
+Options: -v, --version version
+ -h, --help help
-l latex source
-p direct tex-pdf (pdftex etc)
-F fmt use fmt as the TeX processor
@@ -146,6 +150,7 @@ Options: -v version
-m stop at pmx
-M prepmxx use prepmxx as the mtx preprocessor
-A autospx use autospx as the aspc preprocessor
+ -X pmxabx use pmxabx as the pmx preprocessor
-t stop at tex/mid
-s stop at dvi
-g stop at ps
@@ -289,9 +294,9 @@ function report_error(filename)
end
function process_option(this_arg)
- if this_arg == "-v" then
+ if this_arg == "-v" or this_arg == "-version" or this_arg == "--version" then
os.exit(0)
- elseif this_arg == "-h" then
+ elseif this_arg == "-h" or this_arg == "-help" or this_arg == "--help" then
usage()
os.exit(0)
elseif this_arg == "-l" then
@@ -345,6 +350,9 @@ function process_option(this_arg)
elseif this_arg == "-P" then
narg = narg+1
ps2pdf = arg[narg]
+ elseif this_arg == "-X" then
+ narg = narg+1
+ pmx = arg[narg]
else
print("! Unknown option "..this_arg.." ignored")
end
diff --git a/macros/musixtex/tex/musixps.tex b/macros/musixtex/tex/musixps.tex
index e2033e2b07..6e877494e7 100644
--- a/macros/musixtex/tex/musixps.tex
+++ b/macros/musixtex/tex/musixps.tex
@@ -1,5 +1,6 @@
%% PostScript slurs, ties and crescendos
% Coded by Stanislav Kneifl
+% RDT added \psRslurskip \iRslur \tRslur \psRtieskip \tRtie \psLtieskip \tLtie 2019/06/17
\ifx\undefined\startpiece\errmessage{Input musixtex.tex before musixps.tex}\fi
\ifx\undefined\liftcresc\else\endinput\fi
@@ -26,6 +27,7 @@
\def\psbslurraise{2} % vert. offset for slurs on beams
\def\psLslurskip{-0.2} % horiz. offset of slurs shifted more to the left
+\def\psRslurskip{4} % horiz. offset of slurs shifted more to the right
\def\pslslurskip{0.4} % horiz. offset of slurs shifted to the left
\def\psislurskip{1.4} % horiz. offset of the slur beginnings
\def\pstslurskip{1.2} % horiz. offset of the slur endings
@@ -48,6 +50,8 @@
\def\psttieskip{0.3} % horiz. offset of the tie endings
\def\psltieskip{-0.2} % horiz. offset of ties shifted to the left
\def\psrtieskip{3} % horiz. offset of ties shifted to the right
+\def\psLtieskip{-0.4} % horiz. offset of ties shifted more to the left
+\def\psRtieskip{4} % horiz. offset of ties shifted more to the right
\def\pstiehgt{0.7} % height coeficient of the ties
\def\pstiemaxhgt{30} % maximal height if the ties
@@ -554,7 +558,9 @@
\def\ilsluru#1#2{\iSlur{#1}{#2}{\psslurraise}{\pslslurskip}}
\def\ilslurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\pslslurskip}}
\def\iLsluru#1#2{\iSlur{#1}{#2}{\psslurraise}{\psLslurskip}}
-\def\iLslurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\psLslurskip}}
+\def\iLsluru#1#2{\iSlur{#1}{#2}{\psslurraise}{\psLslurskip}}
+\def\iRslurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\psRslurskip}}
+\def\iRslurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\psRslurskip}}
\def\tfslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pstslurskip}{\psfslurhgt}{\psslurangul}}
\def\tslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pstslurskip}{\psslurhgt}{\psslurangul}}
@@ -576,6 +582,7 @@
\def\tLfslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psfslurhgt}{\psslurangul}}
\def\tLslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psslurhgt}{\psslurangul}}
+\def\tRslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psRslurskip}{\psslurhgt}{\psslurangul}}
\def\tLhslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\pshslurhgt}{\psslurangul}}
\def\tLHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psHslurhgt}{\psHslurangul}}
\def\tLHHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psHHslurhgt}{\psHHslurangul}}
@@ -599,6 +606,8 @@
\def\ttie#1{\tTie{#1}{\psttieskip}}
\def\tltie#1{\tTie{#1}{\psltieskip}}
\def\trtie#1{\tTie{#1}{\psrtieskip}}
+\def\tLtie#1{\tTie{#1}{\psLtieskip}}
+\def\tRtie#1{\tTie{#1}{\psRtieskip}}
\def\icresc#1{\Icresc{#1}{\d@nh}{0}}
\def\idecresc#1{\Idecresc{#1}{\d@nh}{0}}
diff --git a/macros/musixtex/tex/musixtex.tex b/macros/musixtex/tex/musixtex.tex
index 55382f5dfe..b11caaa6b5 100644
--- a/macros/musixtex/tex/musixtex.tex
+++ b/macros/musixtex/tex/musixtex.tex
@@ -25,16 +25,20 @@
\def\mufl@x{0.83}%
\def\mxmajorvernumber{1}
-\def\mxminorvernumber{29}
+\def\mxminorvernumber{30}
\def\mxvernumber{\mxmajorvernumber\mxminorvernumber}% make it possible to compare with \ifnum
-\def\mxversuffix{}%
+\def\mxversuffix{beta}%
\edef\mxversion{\mxmajorvernumber.\mxminorvernumber\mxversuffix}
-\def\mxdate{2018-08-04}
+\def\mxdate{2018-08-09}
\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}%
\everyjob{\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}}%
+% version 1.30
+% defined \zdoublebar for use within a bar
+% defined \hbp and \hbpp
+
% version 1.29
% defined \tabfnt, \tabcleffnt, \tabstringfnt, \tab etc. to support tablature
@@ -2284,6 +2288,7 @@
% if you need a line which appears ragged
\def\raggedstoppiece{\ifx\ragg@d\empty \fil@{r}\fi % version 1.18 RDT (from musixext)
\check@nopen\n@wbar\hfill\z@suspend\@nds@ction}
+\def\zendpiece{\setemptybar\raggedstoppiece}
\def\Stoppiece{\setdoubleBAR\stoppiece}
\let\Endpiece\Stoppiece
@@ -2580,14 +2585,13 @@
\fi}
\def\zzleftrightrepeat{% % RDT 1.28
- \advance\barno\m@ne
- \setrightrepeat
- \stoppiece
- \let\z@sw\@ne
- \contpiece
- \addspace{\h@lf\afterruleskip}%
- \kernm\afterruleskip\l@eftrepeat\kern\afterruleskip
- \advance\lastbarpos\afterruleskip \b@rrul@
+\advance\barno\m@ne%
+\setrightrepeat%
+\stoppiece%
+\let\z@sw\@ne%
+\contpiece%
+\advance\barno\m@ne%
+\leftrepeat% % RDT revised 1.30
}
\def\zleftrightrepeat@II{% % RDT 1.28
@@ -2603,6 +2607,9 @@
\let\leftrightrepeat\leftrightrepeat@II
\let\zleftrightrepeat\zleftrightrepeat@II % RDT 1.28
+
+\def\zdoublebar{\advance\barno\m@ne\doublebar} % RDT 1.30
+
\def\alapage{\stoppiece\eject\contpiece}
\def\zalapage{\zstoppiece\eject\contpiece}
@@ -3657,6 +3664,8 @@
\def\hlpp{\h@symbol\@qlpp}
\def\hb{\h@symbol\@qb}
+\def\hbp{\h@symbol\@qbp}
+\def\hbpp{\h@symbol\@qbpp}
\def\zh{\h@symbol\@zq}
\def\zhp{\h@symbol\@zqp}
@@ -4156,6 +4165,18 @@
\def\lppt{\g@pt\m@ne\@ne}
\def\lpppt{\g@pt\m@ne\tw@}
+
+% Shifted, pointed chord notes
+%
+\def\lhp#1{\loff{\zhp{#1}}}
+\def\rhp#1{\roff{\zhp{#1}}}
+\def\lqp#1{\loff{\zqp{#1}}}
+\def\rqp#1{\roff{\zqp{#1}}}
+\def\rhpp#1{\roff{\zhpp{#1}}}
+\def\lhpp#1{\loff{\zhpp{#1}}}
+\def\rqpp#1{\roff{\zqpp{#1}}}
+\def\lqpp#1{\loff{\zqpp{#1}}}
+
\def\g@pt#1#2#3{\check@staff
\inhgetn@i#3\relax \relax % two \relax since the first one
\ifnum\n@i<\@c % in swallowed by \inhgetn@i
diff --git a/macros/musixtex/windows/musixflx.bat b/macros/musixtex/windows/musixflx.bat
index 1f0d4a8f99..684441ebb3 100644
--- a/macros/musixtex/windows/musixflx.bat
+++ b/macros/musixtex/windows/musixflx.bat
@@ -1,6 +1,6 @@
-:: wrapper script to call musixflx.lua
-:: Usage: musixflx basename[.mx1 | .tex] [debug mode]
-:: Suggested by Tomasz Luczak (Tomek) t34www@googlemail.com
-
-@for /f "delims=" %%I in ('kpsewhich --format=texmfscripts %~n0.lua') do texlua "%%I" %*
-:end
+:: wrapper script to call musixflx.lua
+:: Usage: musixflx basename[.mx1 | .tex] [debug mode]
+:: Suggested by Tomasz Luczak (Tomek) t34www@googlemail.com
+
+@for /f "delims=" %%I in ('kpsewhich --format=texmfscripts %~n0.lua') do texlua "%%I" %*
+:end
diff --git a/macros/musixtex/windows/musixtex.bat b/macros/musixtex/windows/musixtex.bat
index c9bf9af63f..249ae595c4 100644
--- a/macros/musixtex/windows/musixtex.bat
+++ b/macros/musixtex/windows/musixtex.bat
@@ -1,6 +1,6 @@
-:: wrapper script to call musixtex.lua
-:: Usage: musixtex [options] basename[.tex]
-:: Suggested by Tomasz Luczak (Tomek) t34www@googlemail.com
-
-@for /f "delims=" %%I in ('kpsewhich --format=texmfscripts %~n0.lua') do texlua "%%I" %*
-:end
+:: wrapper script to call musixtex.lua
+:: Usage: musixtex [options] basename[.tex|.ltx|.mtx|.pmx|.aspc]
+:: Suggested by Tomasz Luczak (Tomek) t34www@googlemail.com
+
+@for /f "delims=" %%I in ('kpsewhich --format=texmfscripts %~n0.lua') do texlua "%%I" %*
+:end
diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
index 48a44b69ad..5a196b3a73 100644
--- a/systems/win32/w32tex/ChangeLog
+++ b/systems/win32/w32tex/ChangeLog
@@ -1,5 +1,9 @@
W32TeX (x86 & x64) ChangeLog
+[2020/03/19]
+(01) ltxpkgdocs.tar.xz
+ Update documents for packages.
+
[2020/03/18]
(01) context.tar.xz
Update OpenSSL (1.1.1e) in curl.exe.
diff --git a/timestamp b/timestamp
index 6c6d59c783..67d76aac90 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2020-03-20-02-02
+2020-03-21-02-02