summaryrefslogtreecommitdiff
path: root/macros/xetex/plain
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/xetex/plain
Initial commit
Diffstat (limited to 'macros/xetex/plain')
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/GoudyBookletter1911--League-of-Moveable-Type.pdfbin0 -> 83089 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/LinLibertine-R--complete-tables-40-pages.pdfbin0 -> 440319 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/SBL--hebrew-part.pdfbin0 -> 53933 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/Scheherazade--arabic-part.pdfbin0 -> 73243 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/art-nouveau-caps--dieter-steffman.pdfbin0 -> 51559 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/gutenberg-textura--dieter-steffman.pdfbin0 -> 81855 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/hack-regular.pdfbin0 -> 213876 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisiann--dieter-steffman.pdfbin0 -> 70279 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-contour-black--dieter-steffman.pdfbin0 -> 99478 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-shadow-black--dieter-steffman.pdfbin0 -> 86516 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/oskiwbold--syllabics-part.pdfbin0 -> 128570 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/raleway-bold--League-of-Moveable-Type.pdfbin0 -> 111878 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Bold.pdfbin0 -> 116533 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Regular.pdfbin0 -> 114309 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--LinLibertine.pdfbin0 -> 309914 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--unifont.pdfbin0 -> 32672 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Geometric-Shapes--Libertine.pdfbin0 -> 26054 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Greek-Extended--Libertine.pdfbin0 -> 461228 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Latin-Extended-Additional--Libertine.pdfbin0 -> 50144 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Mathematical-Alphanumeric-Symbols--Libertine.pdfbin0 -> 30917 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Private-Use-Area--Libertine.pdfbin0 -> 59718 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ancient-languages-PLUS--unifont.pdfbin0 -> 577109 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/list-Unicode-symbols-etc.pngbin0 -> 232189 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/mathematical-operators--Libertine.pdfbin0 -> 35452 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/number-forms--Libertine.pdfbin0 -> 30937 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/sources-fonts-unicode.html410
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/FORM-PLAIN.tex161
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/GUIDE-to-petr-olsak.mac.pdfbin0 -> 244584 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/FORM-for-RIGHT-to-LEFT.tex196
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/additional.mac48
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancestors.mac42
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_fonts.mac36
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_semitic.mac38
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/color.tex16
-rwxr-xr-xmacros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/format_XETEX.mac227
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/macros.mac145
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_fonts.mac259
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_hebrew_fonts.mac93
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/petr_olsak.mac1843
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_hebrew.mac127
-rwxr-xr-xmacros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_latin.mac73
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/additional.mac48
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/ancestors.mac42
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.pdfbin0 -> 31449 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.tex188
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/chevalier_de_la_croix_rouge.jpgbin0 -> 591560 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/color.tex16
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.pdfbin0 -> 21775 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.tex161
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/format_XETEX.mac227
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.pdfbin0 -> 1374731 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.tex251
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/kcolorchooser_mix_light_brown.pngbin0 -> 33664 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.pdfbin0 -> 17113 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.tex99
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/macros.mac145
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/my_fonts.mac259
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/petr_olsak.mac1843
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.pdfbin0 -> 44523 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.tex399
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/unicode_latin.mac73
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/README.txt24
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.pdfbin0 -> 20655 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.tex207
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/SBL-hebrew-part.pdfbin0 -> 53933 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/Scheherazade--arabic-part-.pdfbin0 -> 73243 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/additional.mac48
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancestors.mac42
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancient_semitic.mac38
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.pdfbin0 -> 47248 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.tex211
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic_fonts.mac31
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/chart-unicode-hebrew-definitions.pdfbin0 -> 38549 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/format_XETEX.mac227
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.pdfbin0 -> 61326 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.tex285
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/macros.mac145
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_fonts.mac259
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_hebrew_fonts.mac93
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo-leviticus.tex259
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo_leviticus.pdfbin0 -> 1229997 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/petr_olsak.mac1843
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_hebrew.mac147
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_latin.mac73
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/5sec.txt4
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bak29
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bell12
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/border41
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/del15
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/empty.txt7
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/photos2eps48
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/reduce50043
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/rotate18
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-debbie.mac40
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.pdfbin0 -> 11767 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.tex101
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.pdfbin0 -> 33334 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.tex194
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.pdfbin0 -> 161198 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.tex338
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.pdfbin0 -> 35993 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.tex182
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.pdfbin0 -> 52700 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.tex393
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.pdfbin0 -> 31758 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.tex234
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.pdfbin0 -> 20712 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.tex190
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.pdfbin0 -> 31462 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.tex201
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.pdfbin0 -> 93107 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.tex278
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.pdfbin0 -> 50155 bytes
-rw-r--r--macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.tex314
-rw-r--r--macros/xetex/plain/font-change-xetex/README.txt24
-rw-r--r--macros/xetex/plain/font-change-xetex/doc/font-change-xetex.pdfbin0 -> 574273 bytes
-rw-r--r--macros/xetex/plain/font-change-xetex/doc/font-change-xetex.tex1119
-rw-r--r--macros/xetex/plain/font-change-xetex/tex/macros/font-change-xetex.tex1135
-rw-r--r--macros/xetex/plain/xetexfontinfo/README16
-rw-r--r--macros/xetex/plain/xetexfontinfo/aat-info.tex123
-rw-r--r--macros/xetex/plain/xetexfontinfo/opentype-info.tex98
121 files changed, 16594 insertions, 0 deletions
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/GoudyBookletter1911--League-of-Moveable-Type.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/GoudyBookletter1911--League-of-Moveable-Type.pdf
new file mode 100644
index 0000000000..69583e6853
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/GoudyBookletter1911--League-of-Moveable-Type.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/LinLibertine-R--complete-tables-40-pages.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/LinLibertine-R--complete-tables-40-pages.pdf
new file mode 100644
index 0000000000..86aaf9e557
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/LinLibertine-R--complete-tables-40-pages.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/SBL--hebrew-part.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/SBL--hebrew-part.pdf
new file mode 100644
index 0000000000..3fbb1a826c
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/SBL--hebrew-part.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/Scheherazade--arabic-part.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/Scheherazade--arabic-part.pdf
new file mode 100644
index 0000000000..72079c97c9
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/Scheherazade--arabic-part.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/art-nouveau-caps--dieter-steffman.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/art-nouveau-caps--dieter-steffman.pdf
new file mode 100644
index 0000000000..5dca005c05
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/art-nouveau-caps--dieter-steffman.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/gutenberg-textura--dieter-steffman.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/gutenberg-textura--dieter-steffman.pdf
new file mode 100644
index 0000000000..d5e9469a40
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/gutenberg-textura--dieter-steffman.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/hack-regular.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/hack-regular.pdf
new file mode 100644
index 0000000000..f49cf551ef
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/hack-regular.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisiann--dieter-steffman.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisiann--dieter-steffman.pdf
new file mode 100644
index 0000000000..5a64e500e7
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisiann--dieter-steffman.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-contour-black--dieter-steffman.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-contour-black--dieter-steffman.pdf
new file mode 100644
index 0000000000..d761e7c65e
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-contour-black--dieter-steffman.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-shadow-black--dieter-steffman.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-shadow-black--dieter-steffman.pdf
new file mode 100644
index 0000000000..b003f20565
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/louisianne-shadow-black--dieter-steffman.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/oskiwbold--syllabics-part.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/oskiwbold--syllabics-part.pdf
new file mode 100644
index 0000000000..149e1ac7e9
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/oskiwbold--syllabics-part.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/raleway-bold--League-of-Moveable-Type.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/raleway-bold--League-of-Moveable-Type.pdf
new file mode 100644
index 0000000000..1ba86a34a9
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/SPECIFIC-FONT-TABLES/raleway-bold--League-of-Moveable-Type.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Bold.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Bold.pdf
new file mode 100644
index 0000000000..35c87de25c
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Bold.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Regular.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Regular.pdf
new file mode 100644
index 0000000000..61fdf7cbc6
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--Hack-Regular.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--LinLibertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--LinLibertine.pdf
new file mode 100644
index 0000000000..eca2add83b
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--LinLibertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--unifont.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--unifont.pdf
new file mode 100644
index 0000000000..4f610258a9
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ARROWS--unifont.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Geometric-Shapes--Libertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Geometric-Shapes--Libertine.pdf
new file mode 100644
index 0000000000..4164a7043c
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Geometric-Shapes--Libertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Greek-Extended--Libertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Greek-Extended--Libertine.pdf
new file mode 100644
index 0000000000..86e1c476fd
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Greek-Extended--Libertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Latin-Extended-Additional--Libertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Latin-Extended-Additional--Libertine.pdf
new file mode 100644
index 0000000000..f0c6b14eec
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Latin-Extended-Additional--Libertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Mathematical-Alphanumeric-Symbols--Libertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Mathematical-Alphanumeric-Symbols--Libertine.pdf
new file mode 100644
index 0000000000..3f6132fd54
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Mathematical-Alphanumeric-Symbols--Libertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Private-Use-Area--Libertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Private-Use-Area--Libertine.pdf
new file mode 100644
index 0000000000..b03a14e117
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/Private-Use-Area--Libertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ancient-languages-PLUS--unifont.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ancient-languages-PLUS--unifont.pdf
new file mode 100644
index 0000000000..c22a088205
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/ancient-languages-PLUS--unifont.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/list-Unicode-symbols-etc.png b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/list-Unicode-symbols-etc.png
new file mode 100644
index 0000000000..1d4df331da
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/list-Unicode-symbols-etc.png
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/mathematical-operators--Libertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/mathematical-operators--Libertine.pdf
new file mode 100644
index 0000000000..d347cbdb46
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/mathematical-operators--Libertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/number-forms--Libertine.pdf b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/number-forms--Libertine.pdf
new file mode 100644
index 0000000000..ef7fc96f02
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/VARIOUS-UNICODE-TABLES/number-forms--Libertine.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/sources-fonts-unicode.html b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/sources-fonts-unicode.html
new file mode 100644
index 0000000000..23b976ef5d
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FONTS+UNICODE/sources-fonts-unicode.html
@@ -0,0 +1,410 @@
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html> <!--closes at very end-->
+
+ <head> <!--ADD IN NOT VISIBLE-->
+ <title>[sources_fonts_unicode.html]</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Quanta Plus">
+ </head>
+
+ <!--body closes at end, just before /html-->
+
+ <body bgcolor="#D9D9D9" lang ="fr">
+
+ <!--THE IMAGEGALLERIES DO NOT HAVE COLOURS FOR LINKS
+ HAVE TO PUT IN SEPARATELY, SEE FORM
+ -->
+
+ <!--followin is for links colours vlink was darkGreen; I changed to keep same-->
+<body link="darkBlue" vlink="darkBlue">
+ <!--the two [body]s and [html] close ONCE! at end-->
+
+
+ <!--*****TEXT STARTS HERE, FILL IN TITLE ABOVE***-->
+
+<!--EVERYTHING IS LEFT,EXCEPT THE CENTRED HEADINGS-->
+<!--THIS AVOIDS MISSED </DIV> ETC-->
+<div align="left"> <!--THE LEFT ALIGNMENT CLOSES AT THE VERY END-->
+
+<!--EVERYTHING is font size="+2" from here on-->
+<font size="+2"> <!--closes at very end-->
+
+
+ <!--TITLE-->
+<div align="center">
+ <font size="+3"> <!--CHANGE SIZE-->
+ <b>Sources for Fonts and Unicode</b>
+ </font>
+</div>
+
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+
+ <!--DEFINITION LIST WITH CENTRING -->
+<dl> <!--[DL] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <dt>
+ <div align="center">
+ <b>Sources dealing with Unicode</b>
+ </div>
+ </dt>
+
+ <p>
+ <dd> <!--[DD] LIST STARTS. BE SURE TO CLOSE AT END-->
+
+ The XeTex site:
+ <a href=" https://www.tug.org/xetex/">
+ https://www.tug.org/xetex/
+ </a>
+
+ <p>
+ For a glossary of terms:
+ <a href="https://github.com/jagracey/Awesome-Unicode/blob/master/GLOSSARY.md">
+ https://github.com/jagracey/Awesome-Unicode/blob/master/GLOSSARY.md
+ </a>
+
+ <p>
+ For everything about Unicode:
+ <a href="www.unicode.org/">www.unicode.org/
+ </a>
+ <p.
+
+ A list of languages and symbol groups from the Unicode consortium:
+ <a href=" http://www.unicode.org/charts/"> http://www.unicode.org/charts/
+ </a>
+ <br>
+ <i>Example</i>: You want to typeset (or learn about!) "Cuneiform Numbers and Punctuation".
+ <br>
+ The site tells you that these correspond to the range 12400 -- 1247F and
+ you see all the symbols.
+ <br>In addition there is a precise definition of each symbol.
+ <br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;You can download the charts for <i>private use.</i>
+ <br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;You have to find an appropriate font yourself.
+ <p>
+ <a href=" ">
+ </a>
+
+ <p>
+ Type in a symbol to find the Unicode identification:
+ <br>
+ <a href="http://www.babelstone.co.uk/Unicode/whatisit_fr.html">
+ http://www.babelstone.co.uk/Unicode/whatisit_fr.html
+ </a>
+
+ <p>
+Choose a language and pick from the virtual keyboard:
+ <br>
+ <a href="http://www.babelstone.co.uk/Unicode/babelmap_fr.html">
+ http://www.babelstone.co.uk/Unicode/babelmap_fr.html
+ </a>
+ <p>
+
+ If you can not type a symbol, then draw it:
+ <a href="http://shapecatcher.com/">
+ http://shapecatcher.com/
+ </a>
+
+ <p>
+ Various input methods:
+ <a href=" http://hapax.qc.ca/">
+ http://hapax.qc.ca/
+ </a>
+
+ </dd> <!--BE SURE TO CLOSE [DD] HERE!-->
+</dl> <!--BE SURE TO CLOSE [DL] (Definition List HERE!-->
+<p>
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+
+ <!--DEFINITION LIST WITH CENTRING -->
+<dl> <!--[DL] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <dt>
+ <div align="center">
+ <b> fntsample </b>
+ </div>
+ </dt>
+
+ <p>
+ <dd> <!--[DD] LIST STARTS. BE SURE TO CLOSE AT END-->
+
+ Use <i>fntsample</i> to obtain complete charts, in PDF format, ordered according to the Unicode designation
+ <br>
+ of all the characters available in a font. The program fntsample can be downloaded at:
+ <br>
+ <a href=" https://sourceforge.net/projects/fntsample/ ">
+ https://sourceforge.net/projects/fntsample/
+ </a>
+ <p>
+
+<b>Usage</b>: copy and paste ff into a terminal and replace *
+ by the name of the font:
+<br>
+ <I> fntsample &nbsp;&nbsp; -f</i> &nbsp;&nbsp;&nbsp; <tt>*.ttf</tt>
+ <br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <i>-o</i> &nbsp;&nbsp;
+ <tt>*.ttf_[fnt_sample_chart].pdf </tt>
+<p>
+ <b>example</b>:
+ <br>
+<I> fntsample -f</i>&nbsp;&nbsp; <tt>DejaVuSerif-BoldItalic.ttf </tt>
+<br>
+&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;<i>-o</i>&nbsp;&nbsp;
+<tt>DejaVuSerif-BoldItalic.ttf_[fnt_sample_chart].pdf </tt>
+
+ <p>
+ If you do not have a font, whose name you know:
+ <a href="http://www.identifont.com/ ">
+ http://www.identifont.com/
+ </a>
+ <p>
+ Wikipedia has a list of open-source fonts:
+ <br>
+ <a href="https://en.wikipedia.org/wiki/Open-source_Unicode_typefaces">
+ https://en.wikipedia.org/wiki/Open-source_Unicode_typefaces
+ </a>
+ </dd> <!--BE SURE TO CLOSE [DD] HERE!-->
+</dl> <!--BE SURE TO CLOSE [DL] (Definition List HERE!-->
+
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+
+
+
+ <!--DEFINITION LIST WITH CENTRING -->
+<dl> <!--[DL] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <dt>
+ <div align="center">
+ <b>Some Sources for Fonts </b>
+ </div>
+ </dt>
+
+ <p>
+ <dd> <!--[DD] LIST STARTS. BE SURE TO CLOSE AT END-->
+
+ <p>
+I have used fonts from the following, and other, sources. I have placed a
+selection of PDF tables
+<br>
+in the directory FONTS+UNICODE/SPECIFIC_FONT_TABLES:
+
+<p>
+Libertine Fonts. I use the serif version as my main type:
+ <a href=" http://libertine-fonts.org/ ">
+ http://libertine-fonts.org/
+ </a>
+
+ <p>
+ Dieter Steffmann has many, very interesting and finely crafted, fonts:
+ <br>
+ <a href=" http://www.steffmann.de/wordpress/test-2/">
+ http://www.steffmann.de/wordpress/test-2/
+ </a>
+
+ <p>
+ The League of Moveable Type:
+ <a href=" https://www.theleagueofmoveabletype.com/">
+ https://www.theleagueofmoveabletype.com/
+ </a>
+ has Raleway and other nice fonts.
+
+ <p>
+ Hack is an excellent mono space (teletype =\tt or fixed spacing) designed
+for coding:
+<br>
+ <a href=" https://sourcefoundry.org/hack/">
+ https://sourcefoundry.org/hack/
+ </a>
+
+ </dd> <!--BE SURE TO CLOSE [DD] HERE!-->
+</dl> <!--BE SURE TO CLOSE [DL] (Definition List HERE!-->
+
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+
+ <!--DEFINITION LIST WITH CENTRING -->
+<dl> <!--[DL] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <dt>
+ <div align="center">
+ <b>Other Sites of Possible Interest </b>
+ </div>
+ </dt>
+
+ <p>
+ <dd> <!--[DD] LIST STARTS. BE SURE TO CLOSE AT END-->
+
+ <p>
+
+
+
+
+ <p>
+ Various fonts such as "Old Italic":
+ <a href="http://scholarsfonts.net/">
+ http://scholarsfonts.net/
+ </a>
+ <p>
+ If you need a glyph and can not find another font that has it, then
+ Unifont is for you!
+ <br>
+ "[There are] ... glyphs for every printable code point in the Unicode Basic Multilingual Plane (BMP).
+ <br>
+The BMP occupies the first 65,536 code points of the Unicode space, denoted as U+0000..U+FFFF."
+<br>
+ <a href="http://unifoundry.com/unifont/index.html">
+ http://unifoundry.com/unifont/index.htm
+ </a>
+
+ <br>
+ For more on Unifont, see:
+ <a href=" https://savannah.gnu.org/projects/unifont">
+ https://savannah.gnu.org/projects/unifont
+ </a>
+ </dd> <!--BE SURE TO CLOSE [DD] HERE!-->
+</dl> <!--BE SURE TO CLOSE [DL] (Definition List HERE!-->
+
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+ <!--DEFINITION LIST WITH CENTRING -->
+<dl> <!--[DL] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <dt>
+ <div align="center">
+ <b> Hebrew and Arabic</b>
+ </div>
+ </dt>
+
+ <p>
+ <dd> <!--[DD] LIST STARTS. BE SURE TO CLOSE AT END-->
+ See the tables and sample texts in the directory: RIGHT-to-LEFT_TEXTS.
+ <p>
+My main interest is in biblical Hebrew and ancient semitic scripts and in addition
+I am in the process of learning to read modern Arabic.
+<p>
+For the biblical texts I use the Society of Biblical Literature SBL Hebrew Font:
+<br>
+ <a href="https://www.sbl-site.org/educational/biblicalfonts_sblhebrew.aspx">
+ https://www.sbl-site.org/educational/biblicalfonts_sblhebrew.aspx
+ </a>
+ <p>
+This is the default font at:
+ <a href=" http://tanach.us">
+ http://tanach.us
+ </a>
+ <br>
+ This excellent site has the most up-to-date electronic version of the <i>Lenningrad Codex</i>.
+ <br>
+ You can copy portions of the Bible off the screen, then paste them into
+ the [FORM_for_RIGHT_to_LEFT.tex]
+ <br>
+ and obtain very eloquent versions using XeTex.
+<p>
+For detailed instructions on how to use tanach.us, see:
+ <a href="http://web.ncf.ca/en493/JUDAICA/judaica.html">
+ http://web.ncf.ca/en493/JUDAICA/judaica.html
+ </a>
+
+ <p>
+ Other Hebrew fonts and <i>ancient semitic fonts</i> are available at:
+ <a href="http://culmus.sourceforge.net/">
+ http://culmus.sourceforge.net/
+ </a>
+
+ <p>
+ There are also Hebrew fonts available at:
+ <a href="https://opensiddur.org/help/fonts/ ">
+ https://opensiddur.org/help/fonts/
+ </a>
+
+<p>
+For Arabic one can obtain the Scheherazade font at:
+ <a href="https://software.sil.org/scheherazade/">
+ https://software.sil.org/scheherazade/
+ </a>
+
+ </dd> <!--BE SURE TO CLOSE [DD] HERE!-->
+</dl> <!--BE SURE TO CLOSE [DL] (Definition List HERE!-->
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+ <!--DEFINITION LIST WITH CENTRING -->
+<dl> <!--[DL] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <dt>
+ <div align="center">
+ <b>Other Languages</b>
+ </div>
+ </dt>
+
+ <p>
+ <dd> <!--[DD] LIST STARTS. BE SURE TO CLOSE AT END-->
+
+ <p>
+ SIL has been developing scripts for various languages and also fonts which are aimed at
+literacy groups:
+ <a href="https://scripts.sil.org/">
+ https://scripts.sil.org/
+ </a>
+
+ <p>
+Xetex was developed in the 1990s by Jonathan Kew who was at SIL; see the interview
+with him at:
+ <a href="http://tug.org/interviews/kew.html">
+ http://tug.org/interviews/kew.html
+ </a>
+
+ </dd> <!--BE SURE TO CLOSE [DD] HERE!-->
+</dl> <!--BE SURE TO CLOSE [DL] (Definition List HERE!-->
+
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+ <!--DEFINITION LIST WITH CENTRING -->
+<dl> <!--[DL] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <dt>
+ <div align="center">
+ <b> Canadian Aboriginal Syllabics</b>
+ </div>
+ </dt>
+
+ <p>
+ <dd> <!--[DD] LIST STARTS. BE SURE TO CLOSE AT END-->
+ <p>
+
+ A wide variety of fonts and a great deal of information are available
+ at Chris Harvey's site:
+ <br>
+ <a href="http://www.languagegeek.com/">
+ http://www.languagegeek.com/
+ </a>
+ </dd> <!--BE SURE TO CLOSE [DD] HERE!-->
+</dl> <!--BE SURE TO CLOSE [DL] (Definition List HERE!-->
+
+
+
+<p>
+ <hr width="50%" size="4" noshade />
+<p>
+
+
+<!-- all the text is before this ending-->
+<!--THERE IS ONLY ONE LEFT ALIGNEMENT, AVOIDS CONFUSION -->
+</div> <!--closes: align="left"-->
+</font> <!--closes: font size="+2"-->
+
+</body>
+</html>
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/FORM-PLAIN.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/FORM-PLAIN.tex
new file mode 100644
index 0000000000..79756b53ca
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/FORM-PLAIN.tex
@@ -0,0 +1,161 @@
+% [FORM-PLAIN.tex]
+
+% This a form that I have created over the years. Users will want to
+% make adjustments, especially to dimensions. Note in particular that
+% \pdfpageheight and \pdfpagewidth, as well as \hsize, \vsize and the
+% PSTRICKS form (after \bye) are given in inches. The reason for this
+% is that the paper that I use is "8.5 in x 11.0 in" ("letter"). Other
+% measurements are in cm and points.
+%
+% Because this is a presentation form I have added explanations. The
+% symbol !! indicates that this is a dimension etc. that you should
+% consider changing.
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+% these macro files are explained in more detail at the top of each file
+% here I give a brief indication of the content.
+
+\input format_XETEX.mac
+ % spacing, special symbols ...
+
+\input unicode_latin.mac
+ % French and German accented letters
+
+\input macros.mac
+ % information boxes, special formats
+
+\input ancestors.mac
+ % abbreviations used in my genealogical texts
+
+\input additional.mac
+ % \printdate + \raggedleft (for right to left)
+
+\input petr_olsak.mac
+ % Petr Olsak's collection of pure Tex macros for:
+ % tables, marginal notes, footnotes, multiple columns etc.
+ % see after \bye below for the footnote commands
+
+\input my_fonts.mac
+ % different fonts at various sizes; e.g \bftwenty
+ % NOTE: [my_fonts.mac] must be placed AFTER [petr_olsak.mac]
+ % as the latter redefines \rm.
+
+\input pstricks
+\input epsf
+ % PSTRICKS is used for importing images (there is a form after \bye)
+ % see [images-colour-marginal-notes.tex] for the use of these inputs
+ % the shell file [photos2eps] (in the directory SHELL_FILES) will convert
+ % all your .jpg and .png files to .eps
+
+\input color % a copy, downloaded from github.com, is included with this package
+ % it allows typesetting text in colour via \definecolor \textcolor and \colorbox
+ % [see also the graph­ics-pln" package at CTAN]
+ % colour can also be obtained via [petr_olsak.mac], section 8 and
+ % PSTRICKS
+
+% TEXSIS This package is available at CTAN.
+% Preliminary testing shows that that this is compatible with the above
+% commands here. Double columns and twin page out appear to work.
+% There are commands for tables etc.
+
+% EPLAIN is another powerful package (hyperlinks, multiple columns etc.)
+% for PLAIN TEX. Unfortunately it appears to conflict with the
+% above inputs (I suspect with \input pstricks)
+
+%%%%%%%%%%%%%%%% END XETEX INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein % !! % these are xetex commands
+\pdfpagewidth= 8.5truein %!! % presently set for "letter" size
+
+\vsize = 8.50 in %!!
+{\hsize = 5.94 in %!!
+
+\voffset = 0.5 truecm %!!
+\hoffset = 0.70truecm %!!
+
+\baselineskip = 14pt % default = 12pt!!
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+% =======> 3 CHANGES TO MAKE <=========
+
+ \nopagenumbers
+
+ % 2000 was chosen so that I will notice and change
+ % in final versions
+ \pageno = 2000 % 3 CHANGES TO MAKE
+
+ % this footer puts a page number in bold at the bottom of each page, EXCEPT FIRST
+ \footline = { % THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \ifnum \pageno = 2000 % do nothing <== keep with false #
+ \else
+ {\centerline{\bf \folio}} % centerline closes here for page #
+ \fi % this matches \ifnum
+ }
+ %
+ % NO DATES HERE, ONLY IN TITLE
+\headline = {% THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \centerline{ % CAN NOT PUT \CENTERLINE AFTER ELSE, FOULS UP!
+ \ifnum \pageno = 2000 % do nothing <== keep with false #
+ \else
+ {\bfthirteen +++++++++++}
+ \fi % THIS MATCHES \IFNUM
+ } %THIS MATCHS CENTERLINE
+ } % THIS MATCHES { WITH \FOOTLINE
+
+%%%%%%%%%%%%%%%%%%%% END FOOTER AND HEADER %%%%%%%%%%%%%%%%%%%%%
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+%
+ {\rm % !! 12.5pt I like a larger font, defined in [my_fonts.mac]
+%
+%
+{\verysmall . } % !! 0.1pt used to move text up via \vskip -20pt\nin !!
+%
+\vskip -20pt\nin % \nin = \noindent, see [format_XETEX.mac]
+%
+\centerline{\bftwenty ++} % defined in [my_fonts.mac]
+%
+\mni % \medskip\noindent see [format_XETEX.mac]
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % KEEP THIS ENDING!!! had when needed headers
+\vfill\eject
+%%
+ } % ends roman
+ \par} % ends \hsize
+ \bye
+
+%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%%%
+%
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centerline{}
+%
+\vskip 0.7cm\nin
+%
+% FOOTNOTES FORM: section 14 of [petr_olsak.mac]
+% \fnotemark{*.} next to the text
+% \fnotetext{*} place somewhere after location of \fnotemark
+% it may require two runs to complete
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/GUIDE-to-petr-olsak.mac.pdf b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/GUIDE-to-petr-olsak.mac.pdf
new file mode 100644
index 0000000000..4b1de26397
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/GUIDE-to-petr-olsak.mac.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/FORM-for-RIGHT-to-LEFT.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/FORM-for-RIGHT-to-LEFT.tex
new file mode 100644
index 0000000000..1e4e17fcad
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/FORM-for-RIGHT-to-LEFT.tex
@@ -0,0 +1,196 @@
+% [FORM-for-RIGHT-to-LEFT.tex]
+% N.B. This has my Hebrew font definitions. Change to the desired point size
+% Uncomment \input arabic.mac for Arabic texts.
+
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+% See [FORM_PLAIN.tex ] and the top of each macro file for
+% a discussion of the following
+
+\input format_XETEX.mac
+\input unicode_latin.mac
+\input macros.mac
+\input ancestors.mac
+\input additional.mac
+\input petr_olsak.mac
+\input my_fonts.mac
+\input pstricks
+\input epsf
+\input color
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+% KEEP BIDI UP HERE AND AFTER OTHER *.MAC
+\input bidi % bi-directional, enables right to left
+
+
+% A = interline glue If A < B then sets A to C p. 134
+\lineskiplimit = 2pt % B % pg 134 they have 2pt plus .5pt
+\lineskip= 1.8pt % C % pg 134 they have 1pt
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt % p. 156
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein
+\pdfpagewidth= 8.5truein
+
+\vsize = 8.50 in
+{\hsize = 5.94 in
+
+\voffset = 0.5 truecm %1.0truecm
+\hoffset = 0.70truecm
+
+\baselineskip = 14pt % default = 12pt
+\nopagenumbers
+
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%% SPECIAL HEBREW+ENGLISH FONT DEFINITIONS %%%%%%%%%%%%%
+
+\def\H{\sblBBB} % SBL at 20pt main Hebrew
+
+% CHANGE THE FONT SIZES AS DESIRED
+% For typing Hebrew inside English text
+\def\heb#1{\RL{\H#1}}
+% For typing English inside Hebrew text
+\def\eng#1{\LR{\rmfifteen #1}}
+
+% These are for larger letters on the first word of a paragraph
+% H = Hebrew, E = English
+\def\firstH{\frbfBBBBBB} % first Hebrew word
+\def\firstE{\RalewayBoldAA} % first Latin word
+
+
+%%%%%%%%%%%%%%%%% Other SPECIAL DEFINITIONS %%%%%%%%%%%%%
+
+% QUESTION MARK for use with libertine
+\def\Q{\RL{\bffourteen ?}}
+
+%%%%%%%%%%%%%%%%% END SPECIAL HEBREW+ENGLISH FONT DEFINITIONS + SHORTCUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% START TEXT %%%%%%%%%%%%%
+
+{\rm % 12.5 | \bf = 12.5 | \it =13.0 | \bi = 13.5
+%
+%{\verysmall .}
+%
+% \vskip -20pt % to move up
+
+\centerline {\bfsixteen [\gl FORM\unl for\unl RIGHT\unl to\unl LEFT.tex\gl]} % English title
+\mni
+%
+% because of \rm the text will start off in English
+% use the following for HEBREW
+% to insert English use \eng{**text**}
+%
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+ \y\A\d\Th \eng{\rmfifteen (\gl hand\gl)}
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+{\rmfifteen Hand\Th (\gl\heb{\y\A\d}\gl)}
+%
+% still in English
+\vskip 40pt
+\centreline{\bi More copies of these forms after \bsl bye\/}
+
+
+
+
+
+%
+\end % it says to put, probably to end \bidi
+%
+\vfill\eject
+ } % end \rm
+\par} % ends \hsize
+ \bye
+
+%%%%%%%%%%%%%%%%%%%%%% END OF TEXT %%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+**********
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+*************
+
+
+
+
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+**********
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+*************
+
+
+
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+**********
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+*************
+
+
+
+%
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centerline{}
+%
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/additional.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/additional.mac
new file mode 100644
index 0000000000..32870db4fa
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/additional.mac
@@ -0,0 +1,48 @@
+% [additional.mac]
+
+% 1. printdate
+% 2. ragged left (used in typesetting RIGHT to LEFT languages)
+%
+
+
+% %%%%%%%%%%%%%%%%%%%% PRINTDATE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% MACRO: for printing the date on preliminary versions
+\def\printdate{
+%
+\count255 = \year
+\count254 = \month
+\count253 = \day
+%
+\count252 =\time % from midnight
+\count251 = \count252 % copy: from midnight
+\divide \count252 by 60 % integer hours from midnight
+\count250 = \count252 % print: integer hours from midnight
+\count249 = \count252 % use to multiply by 60
+\multiply\count249 by 60 % whole hour minutes from midnight
+\advance\count251 by -\count249
+\count249 = \count251 % print: integer minutes after hour
+{\tt This text was printed:\quad
+%
+DATE:\hskip 1.5pt \number\count255.\number\count254.\number\count253\quad
+%
+TIME:\hskip 1.5pt \number\count250:\hskip 1.5pt \number\count249
+\vskip 1truecm
+} % end \tt10000
+} % end \def
+% END OF \printdate
+
+
+% %%%%%%%%%%%%%%%%%%%% \RAGGEDLEFT % %%%%%%%%%%%%%%%%%%%%
+% Answer to my question on Tex Exchange by Marcel Krüger
+
+\def\raggedleft{
+% if make =0.2 not wide enough, this goes into left margin
+% \kern -12pt moves to right, but not uniform do in text
+\leftskip = -0.0cm plus 4em %\rightskip absolutely need plus 4em
+\spaceskip = .3333em % these two are pg 107 eh?
+\xspaceskip = .5em
+\parfillskip = 0pt
+\relax % stops \TeX from doing other things such as adding bits
+\noindent}
+%
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancestors.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancestors.mac
new file mode 100644
index 0000000000..ddb5e2e3e4
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancestors.mac
@@ -0,0 +1,42 @@
+% [ancestors.mac]
+% These shortcuts saved a LOT of typing and avoided MANY mistakes in
+% my genealogical texts
+% Below are the partial contents to show the schema
+
+%
+% contains abbreviations for the names of ancestors and their town
+% 7 groups. in each names first, then towns
+% names = 2 lettres towns = 3 letters
+
+% the hyphenation is indicated in the individual definitions
+
+
+%%%%%%%%%%% Grandparents / Great-Grandparents %%%%%%%%%%%%%%%
+\def\gp{Grandparents}
+\def\ggp{Great-Grandparents}
+\def\gm{Grandmother}
+\def\ggm{Great-Grandmother}
+\def\gf{Grandfather}
+\def\ggf{Great-Grandfather}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\atd{autour de{ }} % shortcut used with dates
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% group 1: Frankenberg group/ common
+\def\ka{Katzenstein}
+\def\aka{Abraham Katz\-en\-stein} .
+\def\mk{Manus Katz\-en\-stein}
+%
+\def\mx{Marx}
+\def\k-s{Katz-Stiefel} % \ks = Koppel Sommer
+\def\amx{Amalie Marx}
+%
+\def\fnau{Fran\-ken\-au}
+\def\fbrg{Fran\-ken\-berg}
+\def\gru{Gr\uu sen}
+
+% etc groups 2 ... 7
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_fonts.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_fonts.mac
new file mode 100644
index 0000000000..2346574e99
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_fonts.mac
@@ -0,0 +1,36 @@
+% [ancient_fonts].mac
+
+% source: http://culmus.sourceforge.net/
+% These were designed by Yoram Gnat
+
+
+%%%%%%%%%%%%%%%%%%% ANCIENT FONTS %%%%%%%%%%%%%%%%%%%
+
+\font\meshaBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Mesha.ttf] at 20.0pt
+\font\meshaBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Mesha.ttf] at 22.5pt
+\font\meshaBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Mesha.ttf] at 25.0pt
+\font\meshaBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Mesha.ttf] at 27.5pt
+\font\meshaBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Mesha.ttf] at 30.0pt
+\font\meshaBBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Mesha.ttf] at 32.0pt
+
+\font\qumranBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Qumran.ttf] at 17.5pt
+\font\qumranBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Qumran.ttf] at 20.0pt
+\font\qumranBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Qumran.ttf] at 22.5pt
+\font\qumranBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Qumran.ttf] at 25.0pt
+\font\qumranBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Qumran.ttf] at 27.5pt
+\font\qumranBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Qumran.ttf] at 30.0pt
+\font\qumranBBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Qumran.ttf] at 32.0pt
+
+\font\siloamBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Siloam.ttf] at 20.0pt
+\font\siloamBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Siloam.ttf] at 22.5pt
+\font\siloamBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Siloam.ttf] at 25.0pt
+\font\siloamBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Siloam.ttf] at 27.5pt
+\font\siloamBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Siloam.ttf] at 30.0pt
+\font\siloamBBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Paleo-Siloam.ttf] at 32.0pt
+
+\font\samaritanBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Samaritan.ttf] at 20.0pt
+\font\samaritanBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Samaritan.ttf] at 22.5pt
+\font\samaritanBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Samaritan.ttf] at 25.0pt
+\font\samaritanBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Samaritan.ttf] at 27.5pt
+\font\samaritanBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Samaritan.ttf] at 30.0pt
+\font\samaritanBBBBBBBB=[/home/roger/MY-FONTS/HEBREW/ANCIENT_SEMITIC_USED/Hebrew-Samaritan.ttf] at 32.0pt
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_semitic.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_semitic.mac
new file mode 100644
index 0000000000..8383e9baa2
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/ancient_semitic.mac
@@ -0,0 +1,38 @@
+% [ancient_semitic.mac]
+
+%%%%%%%%%%%%%%%%%%% ANCIENT FONTS %%%%%%%%%%%%%%%%%%%
+% DO NOT CHANGE THE DIRECTORY NAME FROM HEBREW to HEBREW+ANCIENT!!!!
+
+\font\meshaBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 20.0pt
+\font\meshaBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 22.5pt
+\font\meshaBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 25.0pt
+\font\meshaBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 27.5pt
+\font\meshaBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 30.0pt
+\font\meshaBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 32.0pt
+
+% [did_not_work_paleo_lev] fntsample chart shows
+%\font\moabiteBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/moabite_stone.ttf] at 20.0pt
+
+
+% 20PT TOO LARGE IN [paleo_leviticus.tex]
+\font\qumranBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 17.5pt
+\font\qumranBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 20.0pt
+\font\qumranBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 22.5pt
+\font\qumranBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 25.0pt
+\font\qumranBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 27.5pt
+\font\qumranBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 30.0pt
+\font\qumranBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 32.0pt
+
+\font\siloamBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 20.0pt
+\font\siloamBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 22.5pt
+\font\siloamBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 25.0pt
+\font\siloamBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 27.5pt
+\font\siloamBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 30.0pt
+\font\siloamBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 32.0pt
+
+\font\samaritanBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 20.0pt
+\font\samaritanBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 22.5pt
+\font\samaritanBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 25.0pt
+\font\samaritanBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 27.5pt
+\font\samaritanBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 30.0pt
+\font\samaritanBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 32.0pt
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/color.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/color.tex
new file mode 100644
index 0000000000..8516d46e4d
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/color.tex
@@ -0,0 +1,16 @@
+
+% [color.tex]
+% downloaded 2019.01 from:
+% https://github.com/davidcarlisle/dpctex/blob/master/graphics-pln/color.tex
+
+%%%%%%%%%%%%%%%%%%% verbatim copy of the github file %%%%%%%%%%%%
+
+% Plain TeX interface to color package.
+% David Carlisle
+
+\input miniltx
+
+\def\Gin@driver{dvips.def}
+\input color.sty
+
+\resetatcatcode
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/format_XETEX.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/format_XETEX.mac
new file mode 100755
index 0000000000..bda1b30645
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/format_XETEX.mac
@@ -0,0 +1,227 @@
+% [format_XETEX.mac]
+
+% Note, for example, that using \def\lb{\char"007B} for left braces (instead of $\($ )
+% produces a size which corresponds to the font being used.
+% The same philosopy is applied elsewhere in this list
+
+
+%%%%%%%%%%%% FIXED VERTICAL DISTANCES (increasing order)
+% I do not bother with the glue as I change distances via \vskip if not correct
+
+\def\pni{\par\noindent}
+\def\pin{\par\indent}
+
+% \smallskip = 3pt; I want a little more
+\def\sni{\vskip 4truept\noindent}
+\def\sin{\vskip 4truept\indent}
+
+% \medskip = 6pt; I want a little more
+\def\mni{\vskip 8 truept\noindent}
+\def\min{\vskip 8 truept\indent}
+
+% \bigskip is 12pt
+\def\bni{\vskip 12truept\noindent}
+\def\bin{\vskip 12truept\indent}
+
+\def\nin{\noindent}
+
+\def\centreline{\centerline} % Canadian spelling which I naturally tend to write
+
+%%%%%%%%%%%% FIXED HORIZONTAL DISTANCES (increasing order)
+%
+\def\gl{\hglue 1.0pt} % gl = GLUE , does not break
+\def\th{\hskip 1.5pt} % = approx \thinspace GLUE
+\def\thh{\hskip 2.25pt} % between \th and Th
+
+% just like \big and \Big
+\def\Th{\hskip 3.0pt} % = \jot
+\def\TH{\hskip 4.0pt}
+
+% just like \big and \Big
+\def\en{\enspace} % \hskip 5pt BREAKS
+\def\En{\enspace} % \hskip 6pt BREAKS
+\def\EN{\enspace} % \hskip 7pt BREAKS
+
+% conflicts with Hebrew qof, so use \quad with Hebrew
+% and comment out this next line
+\def\q{\quad} % \hskip 10pt BREAKS
+\def\qq{\qquad} % \hskip 20pt BREAKS
+
+%%%%%%%%%%%% SLASHES %%%%%%%%%%%
+\def\bsl{\char"005C\gl}
+
+\def\fsl{\hskip 1.8pt/\hskip 1.5pt} % was 2.5pt
+
+%%%%%%%%%%%% SPECIAL INDENTS + SQUEEZE %%%%%%%%%%%
+\def\bibl{\mni\hangindent=\parindent\noindent}
+\def\bib{\mni\hangindent=\parindent\noindent}
+
+% USAGE: \squeeze{\spaceskip = 1.5pt proud, shallow, ....}
+\def\squeeze{\hbox to \hsize }
+
+%%%%%%%%%%%% UNDERBAR IN FILE TITLE %%%%%%%%%%%
+\def\un{\kern -0.85pt \gl\_\gl }
+\def\unl{\kern -0.85pt \gl\_\gl }
+
+%%%%%%%%%%% TIRET + DOTS + GUILLEMETS + ANGLE BRACKETS %%%%%%%%%%
+\def\tiret{\Th--\Th}
+
+\def\dots{\th{\rmfourteen ...}\th} % OK DO NOT PUT A PERIOD
+
+\def\lgui{{\rmsixteen\char"00AB\kern -1pt}} % ««
+\def\rgui{{\gl \rmsixteen\char"00BB}} % »»
+
+\def\<{\gl{\rmsixteen\char"003C\gl}} % <
+\def\>{{\gl\rmsixteen\char"003E}\gl} % >
+
+%%%%%%%%%%%% BRACES two choices %%%%%%%%%%%
+\def\lb{\char"007B} % left braces
+\def\lbr{\char"007B} % left braces
+
+\def\rb{\char"007D}% right braces
+\def\rbr{\char"007D } % right braces
+
+%%%%%%%%%%% BRACKETS + PARENTHESIS Use inside italics %%%%%%%%%%
+
+\def\[{{\rm \char"005B\gl}} % [ Use inside italics
+\def\]{{\rm \gl \char"005D}} % ] Use inside italics
+\def\({{\rm \char"0028\gl}} % [ Use inside italics
+\def\){{\rm \gl \char"0029}}
+
+%%%%%%%%%%% QUOTATION MARKS + APOSTROPHE %%%%%%%%%%
+% eloquent quotations
+\def\lq{\char"201C\kern -0.1pt}
+\def\rq{\char"201D} % NEEDS CLOSING
+
+\def\"{\char"0022} % plain quotation
+
+% apostrophe is 0027, but it says that 2019 is preferred,
+% this is true as 2019 has the nice curl on top
+\def\'{\char"2019}
+\def\apos{\char"2019}
+\def\aps{\char"2019}
+\def\ap{\char"2019}
+
+%%%%%%%%%%% SEPARATING LINES %%%%%%%%%%
+% modify according to teste
+
+ \def\linea{\nin\centerline{\vrule height 2.0pt width 1.5truein depth 0 pt}}
+ \def\lineb{\nin\centerline{\vrule height 1.0pt width 1.5truein depth 0 pt}}
+
+ \def\lineA{\nin\centerline{\vrule height 2.0pt width 2.5truein depth 0 pt}}
+ \def\lineAa{\nin\centerline{\vrule height 2.5pt width 4.3truein depth 0pt}}
+
+\def\lineAA{\nin\centerline{\vrule height 3.2pt width 5.5truein depth 0pt}}
+%
+% next size up would be lineaaa etc
+
+%%%%%%%%%%%%% SPECIALIZED DEFINITIONS, INTRODUCED AS NEEDED %%%%%
+% I used many of these in my genealogical books to indicate various sources etc.
+% \msamA, \msbmBBBB and \cmsyAA are defined in [my_fonts.mac]
+
+\def\dvd{\hglue 1.0pt$^{\hbox{\boldmedsmall DVD}}$\hglue 1.0pt}
+\def\DVD{\hglue 1.0pt$^{\hbox{\boldmedsmall DVD}}$\hglue 1.0pt}
+\def\html{\kern 1.0truept{\raise 3.0pt \hbox{\bfnine HTML}}}
+\def\HTML{\kern 1.0truept{\raise 3.0pt \hbox{\bfnine HTML}}}
+\def\copyright{\char"00A9}
+\def\pdf{\raise 4pt\hbox{\boldmedsmall PDF}} % can not put \} in case there is a period after.
+\def\copyright{\char"00A9}
+\def\euro{{\char"20AC}}
+\def\pilcrow{{\char"00B6}}
+\def\star{\raise 3.5pt \hbox{\gl\msamA \char70}}
+\def\web{\gl{\msbmBBBB\char121}\hfill}
+\def\square{\th\raise 3.7pt\hbox{\msamAaaa\char4}}
+\def\tilda{{\cmsyAA \char24}}
+%
+% a separating | I use \| as command, since \ and | are on same key
+% used for identifying numbers in genealogy, e.g. {\tt 122\|1}
+\def\|{\th\raise 1.5pt \hbox{\cmsyAa\char 15}\th}
+%
+% I use \club to indicated a place in the text where changes are needed
+\def\club{\raise 3.5pt \hbox{\gl$\clubsuit$}}
+
+ %%%%%%%%%%%% ARROWS %%%%%%%%%%%%
+% n.b. the names of the arrows are just: hackd etc, without a for arrow
+%
+% these are with hackbold
+\def\hackD{\hbox{\hackboldBB \char"21A6}\hbox to 10truept{}}% |--->
+\def\hackE{\hbox{\hackboldBB \char"21E2}\hbox to 10truept{}} % --->
+\def\hackF{\hbox{\hackboldBB \char"2192}\hbox to 10truept{}} % ==>
+
+% these are regular hack for smaller, lighter arrows
+% 21DA <-- triple line 21DB --> triple line
+\def\hackd{\hbox{\hackseventeen \char"21A6}\hbox to 10truept{}} % |-->
+\def\hacke{\hbox{\hackseventeen \char"21E2}\hbox to 10truept{}} % -->
+\def\hackf{\hbox{\hackseventeen \char"2192}\hbox to 10truept{}} % ==>
+
+% libertine 21D0: <= no opposite of 21A6
+% libertine 2190 <---- single line
+%
+\def\libertineEA{\lower 1pt \hbox{\rmfifteen \char"21A6}\kern -1.5pt{}} % same as above |--->
+\def\libertineEAA{\lower 1pt \hbox{\rmeighteen \char"21A6}\kern -1.5pt{}} % same as above |--->
+\def\libertineEAAA{\lower 1pt \hbox{\rmtwenty \char"21A6}\kern -1.5pt{}} % same as above |--->
+
+% right facing
+\def\libertineEBR{\lower 1pt \hbox{\rmfifteen \char"21D2}\kern -1.5pt{}} % ==>
+\def\libertineEBBR{\lower 1pt \hbox{\rmeighteen \char"21D2}\kern -1.5pt{}} % ==>
+\def\libertineEBBBR{\lower 1pt \hbox{\rmtwenty \char"21D2}\kern -1.5pt{}} % ==>
+% left facing
+\def\libertineEBL{\lower 1pt \hbox{\rmfifteen \char"21D0}\kern -1.5pt{}} % <==
+\def\libertineEBBL{\lower 1pt \hbox{\rmeighteen \char"21D0}\kern -1.5pt{}} % <==
+\def\libertineEBBBL{\lower 1pt \hbox{\rmtwenty \char"21D0}\kern -1.5pt{}} % <==
+
+% These are long, double and slanted arrows set in \cmsy
+% long + double arrows
+\def\LRA{$\Longrightarrow$} % SEE REGULAR DOUBLE ARROWS BELOW
+\def\LLA{$\Longleftarrow$}
+\def\EWAA{\hbox{\cmsyAAAA \char 44}\hbox to 10truept{}} % DOUBLE ARROW, BOTH WAYs
+
+% arrows in SE, SW, NW , NE
+\def\SEA{\lower 5truept\hbox{\cmsyAAAA \char38}}
+\def\SWA{\lower 5truept\hbox{\cmsyAAAA \char 46}\hbox to 10truept{}}
+%
+\def\NWA{\lower 5truept\hbox{\cmsyAAAA \char 45\hbox to 10truept{}}}
+%
+\def\NEA{\lower 5truept\hbox{\cmsyAAAA \char 37\hbox to 10truept{}}}
+%
+% arrows in E, S, W , N 10 to big for EA
+\def\EA{\hbox{\cmsyAAAA \char 33}\hbox to 5truept{}}
+%
+\def\SA{\hbox{\cmsyAAAA \char 35}\hbox to 10truept{}}
+%
+\def\WA{\hbox{\cmsyAAAA \char 32}\hbox to 10truept{}}
+%
+\def\NA{\hbox{\cmsyAAAA \char 34}\hbox to 10truept{}}
+
+% double arrows in E, S, W , N
+%
+\def\EAA{\hbox{\cmsyAAAA \char 41}\hbox to 10truept{}}
+%
+\def\SAA{\hbox{\cmsyAAAA \char 43\hbox to 10truept{}}}
+%
+\def\WAA{\hbox{\cmsyAAAA \char 40\hbox to 10truept{}}}
+%
+\def\NAA{\hbox{\cmsyAAAA \char 42\hbox to 10truept{}}}
+
+%%%%%%%%%% TRIG DEFINITIONS %%%%%%%%%%
+% the following definition allows me to fix the R inside $ $; note \hbox{ }
+\def\R{\hbox{\rm R}} % leave out '' ( '' because I already have.
+%
+% I took out \sin because it interfered with \sin = \small\noindent
+\def\cos{\hbox{\rm cos}}
+\def\tan{\hbox{\rm tan}}
+\def\csc{\hbox{\rm csc}}
+\def\sec{\hbox{\rm sec}}
+\def\cot{\hbox{\rm cot}}
+\def\ln{\hbox{\rm ln}}
+\def\log{\hbox{\rm log}}
+\def\lim{\hbox{\rm lim}}
+
+ %%%%%%%%%% END %%%%%%%%%%
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/macros.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/macros.mac
new file mode 100644
index 0000000000..98864fad6c
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/macros.mac
@@ -0,0 +1,145 @@
+% [macros.mac]
+% these are REAL macros with #1 ...
+
+%
+% %%%%%%%%%%%%%%%%%%%% THICKNESS OF RULES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ====> CHANGE THICKNESS AS DESIRED
+
+\newdimen\hruledefaultheight \hruledefaultheight = 1.1pt
+\newdimen\hruledefaultdepth \hruledefaultdepth = 0.0pt
+\newdimen\vruledefaultwidth \vruledefaultwidth = 1.1pt
+\def\ehrule{\hrule height\hruledefaultheight depth\hruledefaultdepth}%
+\def\evrule{\vrule width\vruledefaultwidth}%
+
+
+% %%%%%%%%%%%%%%%%%%%% \INFOBOXING MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \boxit{#1}, taken from the TeXbook, trivially generalized to allow
+% something other than 3pt around the box.
+
+% ====> CHANGE \BOXITSPACE AS DESIRED
+
+% \boxit{#1} is not used directly; it is used in \infobox{#1}
+% \long, permits \par inside definition
+%
+%
+\newdimen\boxitspace \boxitspace = 8pt %13pt too much % WAS 3PT,
+\long\def\boxit#1{%
+ \centerline{\vbox{%
+ \ehrule
+ \hbox{%
+ \evrule
+ \kern\boxitspace
+ \vbox{\kern\boxitspace \parindent = 0pt #1\kern\boxitspace}%
+ \kern\boxitspace
+ \evrule
+ }%
+ \ehrule
+ } % \vbox
+ }% \centerline
+ } % end of def
+
+%
+% MACRO: \infobox{#1}, based on \boxit withspace = 8pt, line thickness 1.1pt
+%
+\long\def\infobox#1{ % start defn
+ \vskip 15truept\noindent
+ \hbox{
+ \boxit{\hbox{#1}} % was \bf
+ }
+ \vskip 6truept\noindent} % end of def
+
+
+% %%%%%%%% MACROS FOR GENEALOGY: NUMBER+NAME+INFO +FILE %%%%%%%%%%%%%%%
+% three macros here. the test for \ancestor is at the end
+% 1: \ancestor: (formely \identity) is used in [coralie_weill_list-ancestors.tex].
+% 3 entries: {\ttfourteen number}{\bffourteen name}{\rm = 12.5 dates and documents}
+% the identitification number is on a separate line, and the fonts are
+% larger than for \person
+%
+% 2: \person : similar to \ancestor, but name is first; all on one line and fonts are
+% different
+%
+% the number is in parentheses ( ); also colon after number
+% 3 entries: {\bfthirteen name} ({\tt =12.5 number}): {\rm = 12.5 dates and documents}
+% =====) can use for children after \item{1.}\person{}{}{}
+%
+% 3: \former: used inside \person for former name
+%
+% 4: \marriage
+% \marriage moved to AFTER husband, so no need for name or identification
+% {\tt Married}: {\rm date and place of marriage + source}
+%
+% I PUT THE PERIODS IN THE DEFINITION
+
+% 1: DEFINING \ancestor
+% \long allows paragraph etc
+% fifteen seems to big. I seem to have to change -3pt, -2pt
+% all 3 inputs are in {}
+% NO PERIOD AFTER #3 FOR THIS SIMPLE LIST
+\long\def\ancestor#1#2#3{
+\noindent
+\hskip -5pt\hbox{\ttfourteen #1} % identiification number
+\vskip -1.0 truept % \sni = 4pt was too much space between # and name as compared to between couple
+ % even + 1.0pt seems to much
+ % increase distance between mother/father to \sni + 2pt =6pt? ?this is
+ % distance before separation line
+\hangindent = 2.0\parindent\noindent % noindent here
+%
+ \hskip -1pt %I had this to move number over to line up
+ {\bffourteen #2}\TH % #2 =NAME + \quad skip before text
+ {#3.} % #3 is just text on same line
+ } % end of def %
+
+% \ancestorB for list of ancestors
+\def\ancestorB#1#2{
+\hskip -5pt\hbox{\ttfourteen #1}\TH % identiification number
+{\bffourteen #2}
+ } % end of def %
+
+
+% 2: DEFINING \PERSON
+% ==============) ( ) and : are built in
+% PERIOD AFTER #3
+\long\def\person #1#2#3{
+ \noindent % need after \vfill, perhaps other times
+ % may be different on 2005 and 2014
+ % was thirteen , but children are fourteen!!
+ \kern -3.4pt{\bffourteen #1}\TH % use \former inside \person{NAME\former{OLD}}
+ (\gl {\tt #2}\gl)\TH
+ {#3.}
+ } % end of def %
+
+% 3: DEFINING \FORMER; use INSIDE \PERSON
+% I took off ( ) because the identity # is inside ( )
+% But I added in a comma
+ \long\def\former #1{ % not allowed to use #2
+ % was \it = 13pt, increased to match \person
+ \kern -2.5truept{\rm ,}\Th {\it #1\/}} % end of def
+
+
+%
+% 4: DEFINING \MARRIAGE #2 (name) and # 3 (number) eliminated
+% PERIOD AFTER #1
+% ==============) ( ) and : are built in
+
+\long\def\marriage #1{
+ \hskip -0.1pt{\tt marriage}\th:\TH % \Th too big, -2,-5 too big
+ %{\bfthirteen #1}\TH
+ % {\tt #2}\th:\TH
+ {#1.}
+ } % end of def marriage%
+
+%
+% \file, for putting file letter in [coralie_list]
+\def\file #1{
+ \TH [\th\hbox{\bf #1}\th]} % \biggl[ only for $$? \big
+ % end defn file
+
+
+% \titleA ancestor title for list of ancestors
+% #1 = name, #2 = number, same font ( ) built in
+\def\titleA#1#2{\centerline{\bffifteen #1 \(#2\)}}
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_fonts.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_fonts.mac
new file mode 100644
index 0000000000..f6a21e0e52
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_fonts.mac
@@ -0,0 +1,259 @@
+% [my_fonts.mac]
+% The idea of this mac file is to be able to call up various font faces, styles and sizes
+% with an abbreviation. I add sizes as needed
+
+% Notice the format (this may vary with your operating system)
+% \font\<ASSIGNEDNAME> % NO DASHES OR UNDERLINES
+% = [\full path .../ <NAME OF FONT>.otf ] % ENCLOSE IN [ ]
+% % RENAME FONT, NO DASHES AND UNDERLINES
+% at <POINT SIZE> pt
+
+% I prefer to place the fonts in my home directory so as to avoid the need for permissions, etc
+% to change the name of the fonts.
+% In my case I use: /home/liliane/ROGER/
+
+%%%%%%%%%%%%% LIBERTINE FONTS (open source) %%%%%%%%%%%%%
+% available at: http://libertine-fonts.org
+% They have a whole range of families (sans serif etc)
+%
+% These are my main typesetting fonts.
+
+%%%%%%%%%%% LIBERTINE SERIF TYPES %%%%%%%%%%%%%%% very stylized
+
+% %%%%%%%% ROMAN %%%%%%%%
+%
+% The normal size roman font
+ \font\rm = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 12.5 pt % roman
+
+ % very small indeed. I used this so that I can have a negative \vskip
+ % to move material at the start of a page (often after \eject
+ \font\verysmall = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 0.01 pt
+
+
+ \font\tiny = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 0.01 pt
+% /home/liliane/ROGER/MY-FONTS/
+ \font\small = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.0 pt % COMPATIBLE
+ \font\rmten = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.0 pt
+ \font\rmeleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 11.0 pt
+ \font\rmtwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 12.0 pt
+ \font\rmthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 13.0 pt
+ \font\rmfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 14.0 pt
+ \font\rmfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 15.0 pt
+ \font\rmsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 16.0 pt
+ \font\rmseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 17.0 pt
+ \font\rmeighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 18.0 pt
+ \font\rmtwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 20.0 pt
+
+% %%%%%%%% ROMAN BOLD %%%%%%%%
+% The normal size bold face font
+ \font\bf = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 12.5 pt
+
+ \font\bfnine = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 9.0 pt
+ \font\bften = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 10.0 pt
+ \font\bfeleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 11.0 pt
+ \font\bftwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 12.0 pt
+ \font\bfthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 13.0 pt
+ \font\bffourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 14.0 pt
+ \font\bffifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 15.0 pt
+ \font\bfsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 16.0 pt
+ \font\bfseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 17.0 pt
+ \font\bfeighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 18.0 pt
+ \font\bftwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 20.0 pt
+ \font\bftwentytwo = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 22.0 pt
+
+% SMALL BOLDFACE for $^{CD}$ % I made 5pt in notes
+\font\boldmedsmall = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 6.6pt
+
+
+ %%%%%%%% ROMAN ITALICS %%%%%%%
+ %
+ % The normal size italic face font
+ \font\it = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 13.0 pt % slightly larger than \rm
+
+ \font\itten = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 10.0 pt
+ \font\iteleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 11.0 pt
+ \font\ittwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 12.0 pt
+ \font\itthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 13.5 pt
+ % this goes with rmfourteen & bffourteen
+ \font\itfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 14.5 pt
+ \font\itfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 15.5 pt
+ \font\itsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 16.5 pt
+ \font\itseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 17.5 pt
+ \font\iteighteen= [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 18.0 pt
+
+ % %%%%%%%% ROMAN BOLD ITALICS % %%%%%%%%
+ %
+\font\bi = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 13.5 pt
+% for {\bfsixteen .... [italicized] }
+\font\bififteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 15.5 pt
+\font\bisixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 16.5 pt
+\font\biseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 17.5 pt
+\font\bieighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 18.5 pt
+\font\bitwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 20.0 pt
+
+ %%%%%%%% MONO use in place of \TeX \tt %%%%%%%
+%
+% The normal size moni font
+\font\tt = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 12.5 pt % mono
+
+ \font\ttnine = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 9.0 pt % mono
+ \font\ttten = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 10.0 pt % mono
+\font\tteleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 11.0 pt % mono
+\font\tttwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 12.0 pt % mono
+\font\ttthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 13.0 pt % mono
+\font\ttfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 14.0 pt % mono
+\font\ttfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 15.0 pt % mono
+\font\ttsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 16.0 pt % mono
+\font\ttseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 17.0 pt % mono
+\font\tteighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 18.0 pt % mono
+\font\ttnineteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 19.0 pt % mono
+\font\tttwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 20.0 pt % mono
+
+
+%%%%%%% ROMAN SEMI-BOLDS FOR TITLES %%%%%%
+% I use forty for posters
+% roman semi-bold
+\font\sb = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 14.5 pt
+\font\sbtwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 20.0 pt
+\font\sbtwentyfive= [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 25.0 pt
+\font\sbthirty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 30.0 pt
+\font\sbthirtyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 35.0 pt
+\font\sbforty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 40.0 pt
+\font\sbfortyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 45.0 pt
+\font\sbfifty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 50.0 pt
+\font\sbfiftyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 55.0 pt % used for haftarah poster
+
+ % roman semi-bold-italics
+\font\sbi = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 12.5 pt
+\font\sbiforty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 40.0 pt
+\font\sbifortyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 45.0 pt
+\font\sbififty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 50.0 pt
+\font\sbififtyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 55.0 pt % used for haftarah poster
+
+%%%%%%%%%%%%% END LIBERTINE %%%%%%%%%%%%%
+
+%%%%%%%%%%% RALEWAY %%%%%%%%%
+% These fonts are available at:
+% https://www.theleagueofmoveabletype.com/
+% [They have other interesting fonts]
+
+% I use these fonts for posters, woodburning etc.
+% There are other fonts in the Raleway family.
+
+% Notice how multiples of A, B, C and D are use to group font sizes
+
+% BOLD
+\font\RalewayBoldA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 15pt
+\font\RalewayBoldAA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 20pt
+\font\RalewayBoldAAA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 25pt
+
+\font\RalewayBoldB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 50pt
+\font\RalewayBoldBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 55pt
+\font\RalewayBoldBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 60pt
+\font\RalewayBoldBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 65pt
+\font\RalewayBoldBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 70pt
+\font\RalewayBoldBBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 75pt
+
+% EXTRA BOLD
+\font\RalewayExtraBoldB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 50pt
+\font\RalewayExtraBoldBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 55pt
+\font\RalewayExtraBoldBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 60pt
+\font\RalewayExtraBoldBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 65pt
+\font\RalewayExtraBoldBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 70pt
+\font\RalewayExtraBoldBBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 75pt
+
+\font\RalewayExtraBoldC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 80pt
+\font\RalewayExtraBoldCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 85pt
+\font\RalewayExtraBoldCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 90pt
+\font\RalewayExtraBoldCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 95pt
+\font\RalewayExtraBoldCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 100pt
+\font\RalewayExtraBoldCCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 105pt
+
+\font\RalewayExtraBoldD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 110pt
+\font\RalewayExtraBoldDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 115pt
+\font\RalewayExtraBoldDDD= [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 120pt
+\font\RalewayExtraBoldDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 125pt
+\font\RalewayExtraBoldDDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 130pt
+\font\RalewayExtraBoldDDDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 135pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% END RALEWAY %%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% HACK %%%%%%%%%%%%%%%
+% These fonts are available at: https://sourcefoundry.org/hack/
+% Hack is a mono space (teletype =\tt or fixed spacing) designed for coding.
+% The heavier version are excellent for arrows; see the file [format_XETEX.mac]
+
+%%%%%%%%%%% REGULAR HACK %%%%%%%%%%%%%%
+\font\hackthirteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 13.0pt
+\font\hackfourteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 14.0pt
+\font\hackfifteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 15.0pt
+\font\hacksixteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 16.0pt
+\font\hackseventeen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 17.0pt
+
+%%%%%%%%%%% BOLD HACK %%%%%%%%%%%%%%
+\font\bfhackthirteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 13.0pt
+\font\bfhackfourteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 14.0pt
+\font\bfhackfifteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 15.0pt
+\font\bfhacksixteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 16.0pt
+\font\bfhackseventeen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 17.0pt
+
+\font\hackboldA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 13.0pt
+\font\hackboldAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 14.0pt
+\font\hackboldAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 16.0pt
+\font\hackboldAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 18.0pt
+\font\hackboldAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 20.0pt
+\font\hackboldAAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 30.0pt
+\font\hackboldAAAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 40pt
+
+\font\hackboldB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 50.0pt
+\font\hackboldBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 55.0pt
+\font\hackboldBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 60.0pt
+\font\hackboldBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 65.0pt
+\font\hackboldBBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 70.0pt
+\font\hackboldBBBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 75.0pt
+
+% HackBoldOblique.otf
+\font\hackboldobliqueA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 13.0pt
+\font\hackboldobliqueAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 14.0pt
+\font\hackboldobliqueAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 16.0pt
+\font\hackboldobliqueAAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 18.0pt
+\font\hackboldobliqueAAAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 20.0pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% END HACK %%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%% TEX CMSY, MSAM AND MSBM FONTS %%%%%%%
+
+% These are used in [format.mac] for some special symbols
+% Since these are special fonts corresponding to sets of symbols,
+% i did not bother to convert to unicode
+% Choose the font which corresponds to the chart on which the
+% the symbol is located, as indicated below by: % \exists chart
+% e.g \| is the bullet on the cmsy10 table at position 15.
+% so I use \font\cmsyAa to define it at the font size that I want
+%
+\font\cmsyAAAA = cmsy10 at 17.0pt % used for arrows
+\font\cmsyAAA = cmsy10 at 15.0pt
+\font\cmsyAA = cmsy10 at 13.0pt
+\font\cmsyA = cmsy10 at 11.0pt
+\font\cmsyAa = cmsy10 at 10.0pt % \exists chart
+
+% ff used for star (char70), square (char04)
+\font\msamAAAA = msam10 at 17.0pt
+\font\msamAAA = msam10 at 15.0pt
+\font\msamAA = msam10 at 13.0pt % \exists chart
+\font\msamA = msam10 at 11.0pt
+\font\msamAa = msam10 at 10.0pt % used for \square
+\font\msamAaa = msam10 at 9.0pt % used for \square
+\font\msamAaaa = msam10 at 8.0pt % used for \square
+
+% I use B here, because of msBm
+\font\msbmBBBB = msbm10 at 17.0pt % used with \web
+\font\msbmBBB = msbm10 at 15.0pt
+\font\msbmBB = msbm10 at 13.0pt % \exists chart
+\font\msbmB = msbm10 at 11.0pt
+
+%%%%%%%%%%%% END: TEX CMSY, MSAM AND MSBM FONTS %%%%%%%
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_hebrew_fonts.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_hebrew_fonts.mac
new file mode 100644
index 0000000000..ca6b38a79d
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/my_hebrew_fonts.mac
@@ -0,0 +1,93 @@
+% [my_hebrew_fonts.mac]
+% [ancient_fonts.mac] is separate
+
+%%%%%%%%%%%%%%%%%%%%%%%% FONTS %%%%%%%%%%%%%%%%%%%%%
+% my identification is LC, but leave font name capital
+% ====>> NO DASHES OR UNDERLINES in identification name
+
+
+% SBL = SOCIETY BIBLICAL LITTERATURE
+ % https://www.sbl-site.org/educational/biblicalfonts_sblhebrew.aspx
+% This is the default font at Tanach.us
+% ===> SIL has a faulty yod-heeriq combination
+
+% Here I use the AA notation, whereas for the English I use \font\sbiforty
+
+\font\sblb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 10pt
+\font\sblbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 11pt
+\font\sblbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 12pt
+\font\sblbbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 13 pt
+\font\sblbbbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 14 pt
+\font\sblbbbbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 15 pt
+
+ % repeat 15pt for convenience
+\font\sblB=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 15pt
+\font\sblBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 17.5pt
+\font\sblBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 20pt
+\font\sblBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 22.5pt
+\font\sblBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 25.0pt
+\font\sblBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 27.5pt
+\font\sblBBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 30.0pt
+
+\font\sblC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 35pt
+\font\sblCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 40pt
+\font\sblCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 45pt
+\font\sblCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 50pt
+
+\font\sblCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 55pt
+\font\sblCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 60pt
+\font\sblCCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 65pt
+\font\sblCCCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 70pt
+%
+%
+
+% for the following and other fonts, see:
+% http://culmus.sourceforge.net/ ===> summary + download
+% https://opensiddur.org/help/fonts/
+
+%%%%%%%%%%%%%%% BOLD CLASSIC FOR TITLES+FIRST WORKDS %%%%%%%%%%%%%%
+
+% I keep the same letters as for sbl
+\font\frbfB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 15.0pt
+\font\frbfBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 17.5pt
+\font\frbfBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 20.0pt
+\font\frbfBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 22.5pt
+\font\frbfBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 25.0pt
+\font\frbfBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 27.5pt
+\font\frbfBBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 30.0pt
+
+\font\frbfC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 35pt
+\font\frbfCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 40pt
+\font\frbfCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 45pt
+\font\frbfCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 50pt
+\font\frbfCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 55pt
+\font\frbfCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 60pt
+\font\frbfCCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 65pt
+
+ %%%%%%%% OBLIQUES + \QERE %%%%%%%
+
+\def\HI{\ketermediumobliqueBBBBB} % KOREH for Hebrew oblIque 25.0pt
+
+% THIS IS THE ONLY ONE OF THE 3 THAT WILL PLACE THE QERE ([hebrew_font_trials_[2017.11.12].tex])
+\font\ketermediumobliqueBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 20pt
+\font\ketermediumobliqueBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 22.5pt
+\font\ketermediumobliqueBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 25.0pt
+\font\ketermediumobliqueBBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 27.5pt
+
+\font\keterboldobliqueBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGBoldOblique.ttf] at 20pt
+
+\font\ShofarDemiBoldObliqueBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/ShofarDemiBoldOblique.ttf] at 20pt
+
+ %%%% END: OBLIQUES + \QERE %%%
+
+ %%%%%%%%%%%%%% TORAH FONTS %%%%%%%%%%%%%%%%%%%%%
+\font\ashktorahBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 20.0pt
+\font\ashktorahBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 22.5pt
+\font\ashktorahBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 25.0pt
+\font\ashktorahBBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 27.5pt
+
+%\font\sephtorahBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamSefaradCLM.ttf] at 20.0pt
+
+ %%%%%%%%%%%%%% END: TORAH FONTS %%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/petr_olsak.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/petr_olsak.mac
new file mode 100644
index 0000000000..71f740800b
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/petr_olsak.mac
@@ -0,0 +1,1843 @@
+% [petr_olsak.mac]
+% The coding after these preliminary statements is a VERBATIM copy
+% of Peter Olsak's [opmac.tex].
+% This was extracted from his CTAN package [csplain] available at:
+% https://www.ctan.org/pkg/csplain
+% All credits and licenses are those of Peter Olsak and should be respected.
+
+% The extension ".mac" was used for the purpose of a uniform presentation.
+% The name change from "OPmac" to "petr_olsak" was made precisely to avoid the
+% impression that any of the macros in this file are due to me.
+% Roger H-F, Ottawa, 2019.01.08
+
+% N.B. the \rm statements here intefered with the definition of \rm in [my_fonts.mac]
+% so the latter should be placed AFTER this mac file in the input statements
+
+%%%%%%% THE VERBATIM COPY STARTS AFTER THIS LINE %%%%%%%%%%%%%%%
+
+
+% OPmac
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Petr Olsak, 2012 -- 2016
+
+%% The history of versions is at the end of this file, after \endpinput
+
+\ifx\OPmacversion\undefined \else \endinput \fi
+\def\OPmacversion{Aug. 2018}
+\immediate\write16{This is OPmac (Olsak's Plain macros), version <\OPmacversion>}
+
+%%%%%%%%%%%%%% Basic macros, sec. 3.1 in opmac-d.pdf
+
+\newcount\tmpnum % auxiliary count
+\newdimen\tmpdim % auxiliary dimen
+
+\def\opwarning#1{\immediate\write16{l.\the\inputlineno\space OPmac WARNING: #1.}}
+
+\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\def\protectlist{}
+\def\addprotect#1{\addto\protectlist{\doprotect#1}}
+\addprotect~
+
+\ifx\pdfextension\undefined \else
+ \let\pdfoutput=\outputmode \def\pdfcolorstackinit{\pdffeedback colorstackinit}\fi
+
+\newif\ifpdftex \pdftextrue
+\ifx\pdfoutput\undefined \pdftexfalse \else \ifnum\pdfoutput=0 \pdftexfalse \fi \fi
+\ifx\XeTeXversion\undefined \else \pdftextrue \fi
+
+\def\sdef#1{\expandafter\def\csname#1\endcsname}
+\def\sxdef#1{\expandafter\xdef\csname#1\endcsname}
+\def\slet#1#2{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
+
+\def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}}
+
+\def\isdefined #1#2{\expandafter\ifx \csname#1\endcsname \relax
+ \csname iffalse\expandafter\endcsname
+ \else
+ \csname iftrue\expandafter\endcsname
+ \fi
+}
+\long\def\isinlist#1#2#3{\begingroup \long\def\tmp##1#2##2\end{\def\tmp{##2}%
+ \ifx\tmp\empty \endgroup \csname iffalse\expandafter\endcsname \else
+ \endgroup \csname iftrue\expandafter\endcsname \fi}% end of \def\tmp
+ \expandafter\tmp#1\endlistsep#2\end
+}
+\long\def\isnextchar#1#2#3{\begingroup\toks0={\endgroup#2}\toks1={\endgroup#3}%
+ \let\tmp=#1\futurelet\next\isnextcharA
+}
+\def\isnextcharA{\the\toks\ifx\tmp\next0\else1\fi\space}
+
+\def\eoldef#1{\def#1{\begingroup \catcode`\^^M=12 \eoldefA#1}%
+ \expandafter\def\csname\string#1:M\endcsname}
+{\catcode`\^^M=12 \gdef\eoldefA#1#2^^M{\endgroup\csname\string#1:M\endcsname{#2}}}
+
+\def\maybebreak{\afterassignment\maybebreakA\tmpdim=}
+\def\maybebreakA{\ifvmode \vskip0pt plus\tmpdim \penalty-130 \vskip0pt plus-\tmpdim
+ \else \hskip0pt plus\tmpdim \penalty-130 \hskip0pt plus-\tmpdim \fi \relax
+}
+\long\def\uv#1{\clqq#1\crqq}
+\let\\=\undefined
+{\lccode`\?=`\% \lowercase{\gdef\percent{?}}}
+{\lccode`\?=`\\ \lowercase{\gdef\bslash{?}}}
+\def\,{\relax\ifmmode \mskip\thinmuskip \else \thinspace \fi}
+\addprotect\percent \addprotect\bslash \addprotect\, \addprotect\exfont
+
+\bgroup \catcode`!=3 \catcode`?=3
+\gdef\replacestrings#1#2{\long\def\replacestringsA##1#1{\def\tmpb{##1}\replacestringsB}%
+ \long\def\replacestringsB##1#1{\ifx!##1\relax \else\addto\tmpb{#2##1}%
+ \expandafter\replacestringsB\fi}% improved version <May 2016> inspired
+ \expandafter\replacestringsA\tmpb?#1!#1% from pysyntax.tex by Petr Krajnik
+ \long\def\replacestringsA##1?{\def\tmpb{##1}}\expandafter\replacestringsA\tmpb
+}
+\egroup
+
+%%%%%%%%%%%%%% Global parameters, sec. 3.2 in opmac-d.pdf
+
+\widowpenalty=10000
+\clubpenalty=10000
+\showboxdepth=7
+\showboxbreadth=30
+
+\newdimen\iindent \iindent=\parindent
+ % indentation of items, TOC, captions, list of bib. references
+\newdimen\ttindent \ttindent=\parindent
+ % indentation in \begtt...\endtt and \verbinput
+
+\def\ttskip{\medskip} % space above and below \begtt, \verbinput
+\mathchardef\ttpenalty=100 % penalty between lines in \begtt, \verbinput
+\def\tthook{} % hook in \begtt, \verbinput
+\def\intthook{} % hook in in-text verbatim
+\def\ptthook{} % hook in \begtt, \verbinput for post-processing
+
+\def\iiskip{\medskip} % space above and below \begitems...\enditems
+\def\itemhook{} % hook in \startitem
+\def\bibskip{\smallskip} % space between bibitems
+
+\def\tabstrut{\strut} % strut in the \table
+\def\tabiteml{\enspace} % left material before each \table item
+\def\tabitemr{\enspace} % right material after each \table item
+\def\vvkern{1pt} % space between vertical lines
+\def\hhkern{1pt} % space between horizontal lines
+
+\def\multiskip{\medskip} % space above and below \begmulti...\endmulti
+\newdimen\colsep \colsep=2em % space between columns
+
+\newdimen\mnoteindent \mnoteindent=10pt % ditance between mnote and text
+\newdimen\mnotesize \mnotesize=20mm % the width of the mnote paragraph
+
+\def\picdir{} % the directory with picture files
+\def\bibtexhook{} % hook in \usebibtex and \usebbl macros
+\def\chaphook{} % hook in \chap
+\def\sechook{} % hook in \sec
+\def\secchook{} % hook in \secc
+\def\cnvhook{} % hook before conversion of outlines
+\def\prepghook{} % hook before page building in \output routine
+\def\pghook{} % next hook in \output routine
+\def\toclinehook{} % hook in \tocline
+\def\fnotehook{} % hook in \fnote
+\def\mnotehook{} % hook in \mnote
+\def\captionhook#1{} % hook in \caption (#1 is "t" or "f")
+
+%%%%%%%%%%%%%% OPmac, CSplain and LaTeX logos, sec. 3.3 in opmac-d.pdf
+
+\def\OPmac{\leavevmode
+ \lower.2ex\hbox{\thefontscale[1400]O}\kern-.86em P{\em mac}}
+\def\CS{$\cal C$\kern-.1667em\lower.5ex\hbox{$\cal S$}}
+\def\csplain{\CS plain}
+
+\def\LaTeX{\tmpdim=.42ex L\kern-.36em \kern\slantcorr % slant correction
+ \raise\tmpdim\hbox{\thefontscale[710]A}%
+ \kern-.15em \kern-\slantcorr \TeX}
+\def\slantcorr{\expandafter\ignorept\the\fontdimen1\the\font\tmpdim}
+
+\addprotect\TeX \addprotect\OPmac \addprotect\CS \addprotect\LaTeX
+
+
+%%%%%%%%%%%%%% Sizes of fonts and \baselineskip, sec. 3.4 in opmac-d.pdf
+
+\ifx\regfont\undefined
+ \ifx\uselanguage\undefined % if this is etex.src, the following warning is suppressed
+ \opwarning{No multilanguage support (csplain is recommended)}
+ \fi
+ % macros from csplain, file csfontsm.tex:
+ \ifx\tenbi\undefined \font\tenbi=cmbxti10 \def\bi{\tenbi}\fi
+ \def\letfont#1#2{\ifx#2=\expandafter\letfont\expandafter#1\else
+ \expandafter\font\expandafter#1\expandafter\rfontskipat\fontname#2 \relax\space \fi}
+ \def\rfontskipat#1{\ifx#1"\expandafter\rfskipatX\else\expandafter\rfskipatN\expandafter#1\fi}
+ \def\rfskipatX #1" #2\relax{"\whichtfm{#1}"} \def\rfskipatN #1 #2\relax{\whichtfm{#1}}
+ \def\sizespec{} \def\whichtfm#1{#1}
+ \def\resizefont#1{\letfont#1#1\sizespec}
+ \def\regfont#1{\expandafter\def\expandafter\resizeall\expandafter{\resizeall \resizefont#1}}
+ \def\resizeall{}
+ \regfont\tenrm \regfont\tenit \regfont\tenbf \regfont\tenbi \regfont\tentt
+\fi
+
+\newdimen\ptunit \ptunit=1pt
+\newdimen\fontdim \fontdim=10pt
+
+\ifx\normalmath\undefined \input ams-math \fi % ams-math.tex is in csplain package
+
+{\lccode`\?=`\p \lccode`\!=`\t \lowercase{\gdef\ignorept#1?!{#1}}}
+
+\def\typosize[#1/#2]{\fontsizex[#1]\setbaselineskip[#2]\ignorespaces}
+\def\typoscale[#1/#2]{\fontscalex[#1]\scalebaselineskip[#2]\ignorespaces}
+
+\def\fontsizex[#1]{\if$#1$\else
+ \textfontsize[#1]%
+ \tmpdim=0.7\fontdim \edef\tmpa{\expandafter\ignorept\the\tmpdim}%
+ \tmpdim=0.5\fontdim \edef\tmpb{\expandafter\ignorept\the\tmpdim}%
+ \edef\tmp{\noexpand\setmathsizes[\expandafter\ignorept\the\fontdim/\tmpa/\tmpb]}%
+ \tmp \normalmath
+ \fi
+}
+\def\textfontsize[#1]{\if$#1$\else
+ \fontdim=#1\ptunit \ifx\fontdimB\undefined \edef\fontdimB{\the\fontdim}\fi
+ \let\dgsize=\fontdim
+ \edef\sizespec{at\the\fontdim}%
+ \resizeall \rm \let\dgsize=\undefined
+ \fi
+}
+\def\setbaselineskip[#1]{\if$#1$\else
+ \tmpdim=#1\ptunit
+ \baselineskip=\tmpdim \relax
+ \ifx\baselineskipB\undefined \edef\baselineskipB{\the\baselineskip}\fi
+ \bigskipamount=\tmpdim plus.33333\tmpdim minus.33333\tmpdim
+ \medskipamount=.5\tmpdim plus.16666\tmpdim minus.16666\tmpdim
+ \smallskipamount=.25\tmpdim plus.08333\tmpdim minus.08333\tmpdim
+ \normalbaselineskip=\tmpdim
+ \jot=.25\tmpdim
+ \maxdepth=.33333\tmpdim
+ \setbox\strutbox=\hbox{\vrule height.709\tmpdim depth.291\tmpdim width0pt}%
+ \fi
+}
+\def\withoutunit#1#2{\expandafter#1\expandafter[\expandafter\ignorept\the#2]}
+
+\def\fontscalex[#1]{\if$#1$\else \ifnum#1=1000 \else
+ \tmpdim=3277sp \tmpdim=#1\tmpdim \divide\tmpdim by50
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\fontsizex\tmpdim
+ \fi\fi
+}
+\def\textfontscale[#1]{\if$#1$\else
+ \tmpdim=#1pt \divide\tmpdim by1000
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\textfontsize\tmpdim
+ \fi
+}
+\def\scalebaselineskip[#1]{\if$#1$\else \ifnum#1=1000 \else
+ \tmpdim=3277sp \tmpdim=#1\tmpdim \divide\tmpdim by50
+ \tmpdim=\expandafter\ignorept\the\tmpdim \baselineskip
+ \withoutunit\setbaselineskip\tmpdim
+ \fi\fi
+}
+\def\thefontsize[#1]{\fontdim=#1\ptunit
+ \expandafter\let \expandafter\thefont \the\font
+ \edef\sizespec{at#1\ptunit}\def\dgsize{#1\ptunit}\resizefont\thefont
+ \thefont \let\dgsize=\undefined \ignorespaces
+}
+\def\thefontscale[#1]{%
+ \tmpdim=#1pt \divide\tmpdim by1000
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\thefontsize\tmpdim
+}
+\def\magstep#1{\ifcase#1 1000\or1200\or1440\or1728\or2074\or2488\fi\space}
+
+\def\typobase{\ifx\baselineskipB\undefined \def\baselineskipB{12pt}\fi
+ \ifx\fontdimB\undefined \def\fontdimB{10pt}\fi
+ \baselineskip=\baselineskipB\relax \fontdim=\fontdimB\relax
+}
+\def\em {\expandafter\ifx \the\font \tenit \additcorr \rm \else
+ \expandafter\ifx \the\font \tenbf \bi\aftergroup\afteritcorr\else
+ \expandafter\ifx \the\font \tenbi \additcorr \bf \else
+ \it \aftergroup\afteritcorr\fi\fi\fi}
+\def\additcorr{\ifdim\lastskip>0pt \skip0=\lastskip \unskip\/\hskip\skip0 \else\/\fi}
+\def\afteritcorr{\def\tmp{\ifx\next..\else\ifx\next,,\else\/%
+ \expandafter\expandafter\expandafter\next\expandafter\fi\fi}%
+ \afterassignment\tmp \let\next= }
+
+\addprotect\thefontsize \addprotect\thefontscale
+\addprotect\typosize \addprotect\typoscale
+\addprotect\textfontsize \addprotect\textfontscale
+\addprotect\em
+
+\def\fontfam{\par \input fontfam \fontfam}
+
+%%%%%%%%%%%%%% Multilingual support, sec. 3.5 in opmac-d.pdf
+
+\def\mtext#1{\csname mt:#1:\csname lan:\the\language\endcsname\endcsname}
+
+\sdef{mt:chap:en}{Chapter} \sdef{mt:chap:cs}{Kapitola} \sdef{mt:chap:sk}{Kapitola}
+\sdef{mt:t:en}{Table} \sdef{mt:t:cs}{Tabulka} \sdef{mt:t:sk}{Tabu\v lka}
+\sdef{mt:f:en}{Figure} \sdef{mt:f:cs}{Obr\'azek} \sdef{mt:f:sk}{Obr\'azok}
+
+\ifx\r\undefined \csname csaccents\endcsname \fi
+
+\sdef{lan:0}{en} \sdef{lan:100}{en} \sdef{lan:101}{en}
+\sdef{lan:5}{cs} \sdef{lan:15}{cs} \sdef{lan:115}{cs}
+\sdef{lan:6}{sk} \sdef{lan:16}{sk} \sdef{lan:116}{sk}
+
+\ifx\uselanguage\undefined \def\isolangset#1#2{}\else
+ \message{OPmac: etex.src macros detected}
+ \def\isolangset#1#2{{\uselanguage{#1}\sxdef{lan:\the\language}{#2}%
+ \global\expandafter\chardef\csname#2Patt\endcsname=\language}}
+ \isolangset{USenglish}{en} \isolangset{czech}{cs} \isolangset{slovak}{sk}
+\fi
+
+%%%%%%%%%%%%%% REF file, sec 3.6 in opmac-d.pdf
+
+\newwrite\reffile
+\newread\testin
+
+\def\wrefrelax#1#2{}
+\let\wref=\wrefrelax
+
+\def\inputref{
+ \openin\testin=\jobname.ref
+ \ifeof\testin \else
+ \closein\testin
+ \input \jobname.ref
+ \fnotenum=0 \mnotenum=0
+ \openrefA{\string\inputref}%
+ \fi
+}
+\def\openref{%
+ \ifx\wref\wrefrelax \openrefA{\string\openref}\fi
+ \gdef\openref{}%
+}
+\def\openrefA#1{%
+ \immediate\openout\reffile=\jobname.ref
+ \gdef\wref##1##2{\write\reffile{\string##1##2}}%
+ \immediate\write\reffile {\percent\percent\space OPmac - REF file (#1)}%
+ \immediate\wref\Xrefversion{{\REFversion}}%
+}
+\def\REFversion{2}
+\def\Xrefversion#1{\ifnum#1=\REFversion\relax \else \endinput \fi}
+
+%%%%%%%%%%%%%% \label, \ref, \pgref, sec. 3.7 in opmac-d.pdf
+
+\def\label[#1]{\isdefined{l0:#1}%
+ \iftrue \opwarning{duplicated label [#1], ignored}\else \xdef\lastlabel{#1}\fi
+ \ignorespaces}
+
+\def\wlabel#1{%
+ \ifx\lastlabel\undefined \else
+ \dest[ref:\lastlabel]%
+ {\protectlist\edef\tmp{\wref\Xlabel{{\lastlabel}{#1}}}\expandafter}\tmp
+ \sxdef{lab:\lastlabel}{#1}\sxdef{l0:\lastlabel}{}%
+ \global\let\lastlabel=\undefined
+ \fi
+}
+\def\ref[#1]{\isdefined{lab:#1}%
+ \iftrue \reflink[#1]{\csname lab:#1\endcsname}%
+ \else ??\opwarning{label [#1] unknown. Try to TeX me again}\openref
+ \fi
+}
+\def\pgref[#1]{\isdefined{pgref:#1}%
+ \iftrue \pglink{\csname pgref:#1\endcsname}%
+ \else ??\opwarning{pg-label [#1] unknown. Try to TeX me again}\openref
+ \fi
+}
+\def\Xlabel#1#2{\sdef{lab:#1}{#2}\sxdef{pgref:#1}{\the\lastpage}}
+
+%%%%%%%%%%%%%% Chapters, sections, subsections -- sec. 3.8 in opmac-d.pdf
+
+\def\printchap#1{\vfill\supereject
+ {\chapfont \noindent \mtext{chap} \dotocnum{\thetocnum}\par
+ \nobreak\smallskip\noindent #1\nbpar}\mark{}%
+ \nobreak \remskip\bigskipamount \firstnoindent
+}
+\def\printsec#1{\par \norempenalty-400 \bigskip
+ {\secfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}\insertmark{#1}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\def\printsecc#1{\par \norempenalty-200 \medskip
+ {\seccfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\eoldef\tit#1{\vglue4em
+ {\leftskip=0pt plus1fill \rightskip=\leftskip
+ \titfont \noindent #1\par}%
+ \nobreak\bigskip
+}
+\def\titfont{\typobase\typoscale[\magstep4/\magstep4]\bfshape}
+\def\chapfont{\typobase\typoscale[\magstep3/\magstep3]\bfshape}
+\def\secfont{\typobase\typoscale[\magstep2/\magstep2]\bfshape}
+\def\seccfont{\typobase\typoscale[\magstep1/\magstep1]\bfshape}
+\def\bfshape{\let\tenit=\tenbi \everymath\expandafter{\the\everymath\boldmath}\bf}
+
+\newcount\chapnum \newcount\secnum \newcount\seccnum \newcount\nonumnum
+\newif\ifnotoc \notocfalse \def\notoc{\global\notoctrue}
+\newif\ifnonum \nonumfalse \def\nonum{\global\nonumtrue}
+
+\eoldef\chap#1{\ifnonum\else \global\advance\chapnum by1 \fi
+ \chaphook {\globaldefs=1 \secnum=0 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax
+ \edef\thechapnum{\the\chapnum}\let\thetocnum=\thechapnum
+ \edef\thesecnum{\othe\chapnum.\the\secnum}%
+ \def\dotocnumafter{\wtotoc0\bfshape{#1}}%
+ \printchap{#1}\resetnonumnotoc
+}
+\eoldef\sec#1{\ifnonum\else \global\advance\secnum by1 \fi
+ \sechook {\globaldefs=1 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax
+ \edef\thesecnum{\othe\chapnum.\the\secnum}\let\thetocnum=\thesecnum
+ \def\dotocnumafter{\wtotoc1\rm{#1}}%
+ \printsec{#1}\resetnonumnotoc
+}
+\eoldef\secc#1{\ifnonum\else \global\advance\seccnum by1 \fi
+ \secchook {}\relax
+ \edef\theseccnum{\othe\chapnum.\the\secnum.\the\seccnum}\let\thetocnum=\theseccnum
+ \def\dotocnumafter{\wtotoc2\rm{#1}}%
+ \printsecc{#1}\resetnonumnotoc
+}
+\def\wtotoc#1#2#3{% #1 = level, #2 = info, #3 = titletext
+ \ifnotoc\else
+ \def\act{\wref{\Xtoc{#1}{\noexpand#2}}}%
+ \expandafter\act\expandafter{\expandafter{\thetocnum}{#3}{\the\pageno}}%
+ \fi
+}
+\def\wcontents#1#2{% #1 = sequence to REF, #2 = titletext
+ \ifnotoc\else
+ \expandafter\wref\expandafter#1\expandafter
+ {\expandafter{\thetocnum}{#2}{\the\pageno}}%
+ \fi
+}
+\def\dotocnum#1{%
+ \leavevmode
+ {\ifnonum \global\advance\nonumnum by1 \edef\thetocnum{!\the\nonumnum}\fi
+ \wlabel\thetocnum \dest[toc:\tocilabel.\thetocnum]%
+ \dotocnumafter}\ifnonum\else#1\fi
+ \global\let\dotocnumafter=\relax
+}
+\def\resetnonumnotoc{\global\notocfalse \global\nonumfalse
+ \ifx\dotocnumafter\relax \else
+ \opwarning{\noexpand\dotocnum unused in printchap/printsec/printsecc}\fi
+}
+\def\insertmark#1{\toks0={#1}\mark{{\ifnonum\else\thetocnum\fi} {\the\toks0}}}
+
+\newskip\remskipamount
+\def\remskip{\afterassignment\remskipA \global\remskipamount}
+\def\remskipA{\vskip\remskipamount \penalty11333 }
+\def\norempenalty{\ifnum\lastpenalty=11333
+ \vskip-\remskipamount \tmpnum=\else \removelastskip \penalty \fi}
+
+\def\othe#1.{\ifnum#1>0 \the#1.\fi}
+\def\thechapnum{} \def\thesecnum{} \def\theseccnum{}
+
+\def\afternoindent{\global\everypar={\wipeepar\setbox7=\lastbox}}
+\def\wipeepar{\global\everypar={}}
+\let\firstnoindent=\afternoindent
+\def\nbpar{{\interlinepenalty=10000\endgraf}}
+\def\nl{\hfil\break}
+
+%%%%%%%%%%%%%% Captions, equations -- sec. 3.9 in opmac-d.pdf
+
+\newcount\tnum \newcount\fnum \newcount\dnum
+
+\def\thetnum{\thesecnum.\the\tnum}
+\def\thefnum{\thesecnum.\the\fnum}
+\def\thednum{(\the\dnum)}
+
+\def\caption/#1 {\isdefined{#1num}%
+ \iftrue \global\advance \csname #1num\endcsname by1
+ \else \opwarning{Unknown caption /#1}%
+ \fi
+ \bgroup
+ \leftskip=\iindent plus1fil
+ \rightskip=\iindent plus-1fil
+ \parfillskip=0pt plus2fil
+ \def\par{\nbpar\egroup}%
+ \captionhook{#1}\noindent
+ \wlabel{\csname the#1num\endcsname}%
+ \printcaption{\mtext{#1}}{\csname the#1num\endcsname}%
+}
+\def\printcaption#1#2{{\bf#1 #2}\enspace}
+
+\expandafter\def\expandafter\endinsert\expandafter{\expandafter\par\endinsert}
+
+\def\eqmark{\global\advance\dnum by1
+ \ifinner\else\eqno \fi
+ \wlabel\thednum \thednum
+}
+
+%%%%%%%%%%%%%% Items -- sec. 3.10 in opmac-d.pdf
+
+\newcount\itemnum \itemnum=0
+
+\def\begitems{\par\iiskip\bgroup
+ \itemnum=0 \adef*{\startitem}
+ \advance\leftskip by\iindent
+ \let\printitem=\normalitem
+}
+\def\enditems{\par\egroup\iiskip}
+
+\def\startitem{\par \advance\itemnum by1
+ \itemhook \noindent\llap{\printitem}\ignorespaces}
+\def\normalitem{$\bullet$\enspace}
+
+\def\style#1{\expandafter\let\expandafter\printitem\csname item:#1\endcsname
+ \ifx\printitem\relax \let\printitem=\normalitem \fi
+}
+\sdef{item:o}{\raise.4ex\hbox{$\scriptscriptstyle\bullet$} }
+\sdef{item:-}{- }
+\sdef{item:n}{\the\itemnum. }
+\sdef{item:N}{\the\itemnum) }
+\sdef{item:i}{(\romannumeral\itemnum) }
+\sdef{item:I}{\uppercase\expandafter{\romannumeral\itemnum}\kern.5em}
+\sdef{item:a}{\athe\itemnum) }
+\sdef{item:A}{\uppercase\expandafter{\athe\itemnum}) }
+\sdef{item:x}{\raise.3ex\fullrectangle{.6ex} }
+\sdef{item:X}{\raise.2ex\fullrectangle{1ex}\kern.5em}
+
+\def\fullrectangle#1{\hbox{\vrule height#1 width#1}}
+
+\def\athe#1{\ifcase#1?\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or
+ m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else ?\fi
+}
+
+%%%%%%%%%%%%%% TOC -- sec. 3.11 in opmac-d.pdf
+
+\def\toclist{} \newif\ifischap \ischapfalse
+
+\def\Xtoc#1#2#3#4#5{\ifnum#1=0 \ischaptrue\fi \addto\toclist{\tocline{#1}{#2}{#3}{#4}{#5}}}
+\def\Xchap{\Xtoc0\bfshape} \def\Xsec{\Xtoc1\rm} \def\Xsecc{\Xtoc2\rm}
+
+\def\tocline#1#2#3#4#5{{\leftskip=#1\iindent \rightskip=2\iindent
+ \ifischap\advance\leftskip by\iindent\fi
+ \ifnum#1>1 \advance\leftskip by\iindent\fi
+ \toclinehook \noindent\llap{#2\toclink{#3}\enspace}%
+ {#2#4}\nobreak\tocdotfill\pglink{#5}\nobreak\hskip-2\iindent\null\par}}
+\def\tocdotfill{\leaders\hbox to.8em{\hss.\hss}\hskip 1em plus1fill\relax}
+
+\def\maketoc{\par \ifx\toclist\empty
+ \opwarning{\noexpand\maketoc -- data unavailable, TeX me again}\openref
+ \else \toclist \fi}
+
+\def\toclinkA#1{\def\tmp##1!##2\end{\if^##1^\kern.8em \else##1\fi}\tmp#1!\end}
+
+%%%%%%%%%%%%%% Index -- sec. 3.12 on opmac-d.pdf
+
+\def\iindex#1{\openref\wref\Xindex{{#1}{\the\pageno}}}
+
+\def\ii #1 {\leavevmode\def\tmp{#1}\iiA #1,,}
+
+\def\iiA #1,{\if$#1$\else\def\tmpa{#1}%
+ \ifx\tmpa\iiatsign \expandafter\iiB\tmp,,\else\iindex{#1}\fi
+ \expandafter\iiA\fi}
+\def\iiatsign{@}
+
+\def\iiB #1,{\if$#1$\else \iiC#1/\relax \expandafter\iiB\fi}
+\def\iiC #1/#2\relax{\if$#2$\else\iindex{#2#1}\fi}
+
+\def\iid #1 {\leavevmode\iindex{#1}#1\futurelet\tmp\iiD}
+\def\iiD{\ifx\tmp,\else\ifx\tmp.\else\space\fi\fi}
+
+\def\Xindex{\Xindexg,}
+\def\Xindexg#1#2#3{\bgroup \def~{ }% #1=prefix, #2=index-item, #3=pageno
+ \isdefined{#1#2}\iftrue
+ \ifx^#3^\else
+ \expandafter\firstdata \csname#1#2\endcsname \XindexA
+ \ifnum#3=\tmpa % \ii on the same page
+ \else
+ \tmpnum=#3 \advance\tmpnum by\pgfolioB-1
+ \expandafter\seconddata \csname#1#2\endcsname \XindexB
+ \ifx\tmp\empty
+ \sxdef{#1#2}{{#3/+}{\pgfolioA{#3}}} % previous item: empty page
+ \else
+ \if\tmpb+% state: the pagelist ends by a pagenumber
+ \ifnum\tmpnum=\tmpa % the consecutive page
+ \sxdef{#1#2}{{#3/-}{\tmp\iiendash}}
+ \else % the pages drop
+ \sxdef{#1#2}{{#3/+}{\tmp, \pgfolioA{#3}}}
+ \fi
+ \else % state: the pagelist ends by --
+ \ifnum\tmpnum=\tmpa % the consecutive page
+ \sxdef{#1#2}{{#3/-}{\tmp}}
+ \else % the pages drop
+ \sxdef{#1#2}{{#3/+}{\tmp\pgfolioA{\tmpa}, \pgfolioA{#3}}}
+ \fi\fi\fi\fi\fi
+ \else % first occurrence of the index item #2
+ \ifx^#3^\sxdef{#1#2}{{0/+}{}}\else \sxdef{#1#2}{{#3/+}{\pgfolioA{#3}}}\fi
+ \ifx,#1
+ \global \expandafter\addto \expandafter\iilist \csname#1#2\endcsname
+ \else
+ \isdefined{iilist:#1}\iftrue
+ \global\expandafter\addto \csname iilist:#1\expandafter\endcsname \csname#1#2\endcsname
+ \else \sxdef{iilist:#1}{\expandafter\noexpand \csname#1#2\endcsname}
+ \fi\fi\fi
+ \egroup
+}
+\def\iilist{} \def\iiendash{--}
+
+\def\firstdata#1#2{\expandafter\expandafter\expandafter #2\expandafter\firstdataA#1}
+\def\firstdataA#1#2{#1&}
+\def\seconddata#1#2{\expandafter\expandafter\expandafter #2\expandafter\seconddataA#1}
+\def\seconddataA#1#2{#2&}
+
+\def\XindexA#1/#2&{\def\tmpa{#1}\let\tmpb=#2}
+\def\XindexB#1&{\def\tmp{#1}}
+
+\def\pgfolioA#1{\ifnum#1<0 \romannumeral-\fi#1}
+\def\pgfolioB{\ifnum\tmpnum<0-\fi}
+
+\def\makeindex{\par
+ \ifx\iilist\empty \opwarning{index data-buffer is empty. TeX me again}
+ \else
+ \bgroup
+ \setprimarysorting
+ \def\act##1{\ifx##1\relax \else
+ \firstdata##1\XindexA \seconddata##1\XindexB
+ \if\tmpb+%
+ \preparesorting##1% converted item by sorting data in \tmpb
+ \xdef##1{{\tmpb}{\tmp}}
+ \else
+ \preparesorting##1% converted item by sorting data in \tmpb
+ \xdef##1{{\tmpb}{\tmp\pgfolioA{\tmpa}}}
+ \fi
+ \expandafter\act\fi}
+ \expandafter \act \iilist \relax
+ \egroup
+ \dosorting % sorting is in progress
+ \bgroup
+ \rightskip=0pt plus1fil \exhyphenpenalty=10000 \leftskip=\iindent
+ \def\act##1{\ifx##1\relax \else \prepii##1%
+ \seconddata##1\printiipages \expandafter\act \fi}
+ \expandafter \act \iilist \relax
+ \egroup
+ \fi
+}
+\def\printiipages#1&{ #1\par}
+
+\def\prepii #1{\isinlist \iispeclist #1\iftrue
+ \expandafter\expandafter\expandafter \printii \csname\string#1\endcsname&%
+ \else \expandafter\prepiiA\string #1&%
+ \fi
+}
+\def\prepiiA #1#2#3&{\printii#3&}
+
+\def\iis #1 #2{\bgroup \def~{ }%
+ \global\expandafter\addto\expandafter\iispeclist\csname,#1\endcsname
+ \global\sdef{\expandafter\string\csname,#1\endcsname}{#2}%
+ \egroup \ignorespaces
+}
+\def\iispeclist{}
+
+\def\printii #1&{\gdef\currii{#1}\noindent\everyii
+ \hskip-\iindent \ignorespaces\printiiA#1//}
+\def\printiiA #1/{\if^#1^\let\previi=\currii \else
+ \expandafter\scanprevii\previi/&\def\tmpb{#1}\edef\tmpb{\meaning\tmpb}%
+ \ifx\tmpa\tmpb \iiemdash \else#1 \gdef\previi{}\fi
+ \expandafter\printiiA\fi
+}
+\def\iiemdash{\kern.1em---\space}
+\def\everyii{}
+
+\def\scanprevii#1/#2&{\def\previi{#2}\def\tmpa{#1}\edef\tmpa{\meaning\tmpa}}
+\def\previi{} % previous index item
+
+%%%%%%%%%%%%%% Sorting -- sec. 3.13 in opmac-d.pdf
+
+\def\sortingdata{%
+ /,{ },-,&,@,%
+ aA\"a\"A\'a\'A,%
+ bB,%
+ cC,%
+ \v c\v C,%
+ dD\v d\v D,%
+ eE\'e\'E\v e\v E,%
+ fF,%
+ gG,%
+ hH,%
+ ^^T^^U^^V,% ch Ch CH
+ iI\'i\'I,%
+ jJ,%
+ kK,%
+ lL\'l\'L\v l\v L,%
+ mM,%
+ nN\v n\v N,%
+ oO\"o\"O\'o\'O\^o\^O,%
+ pP,%
+ qQ,%
+ rR\'r\'R,%
+ \v r\v R,%
+ sS,%
+ \v s\v S,%
+ tT\v t\v T,%
+ uU\"u\"U\'u\'U\r u\r U,%
+ vV,%
+ wW,%
+ xX,%
+ yY\'y\'Y,%
+ zZ,%
+ \v z\v Z,%
+ 0,1,2,3,4,5,6,7,8,9,'.%
+}
+\def\setignoredchars{\setlccodes ,.;.?.!.:.'.".|.(.).[.].<.>.=.+.{}{}}
+\def\specsortingdatacs {ch:^^T Ch:^^U CH:^^V}
+\def\specsortingdatask {ch:^^T Ch:^^U CH:^^V} % DZ etc. are sorted normally
+
+\def\setprimarysorting {%
+ \isdefined{sortingdata\csname lan:\the\language\endcsname}\iftrue
+ \expandafter \let\expandafter\sortingdata
+ \csname sortingdata\csname lan:\the\language\endcsname\endcsname
+ \xdef\sortingmessage{using \string\sortingdata\csname lan:\the\language\endcsname}%
+ \else
+ \xdef\sortingmessage{using internal \string\sortingdata}%
+ \ifx\r\undefined
+ \opwarning{\noexpand\csaccents is unused, falling back to ASCII sorting}%
+ \global\let\asciisorting=t%
+ \fi\fi
+ \ifx\asciisorting\undefined
+ \xdef\sortingdata{\sortingdata}% expand sorting data now
+ \isdefined{specsortingdata\csname lan:\the\language\endcsname}\iftrue
+ \xdef\specsortingdata{\csname specsortingdata\csname lan:\the\language\endcsname
+ \endcsname\space}%
+ \expandafter\setprimarysortingA \meaning\specsortingdata\relax
+ \else \gdef\specsortingdata{}\fi
+ \else
+ \gdef\sortingdata{.}\gdef\specsortingdata{}\gdef\sortingmessage{ASCII}%
+ \fi
+ \def\act##1{\ifx##1.\else
+ \ifx##1,\advance\tmpnum by1
+ \else \lccode`##1=\tmpnum \fi
+ \expandafter \act \fi}%
+ \tmpnum=60 \expandafter \act\sortingdata \setignoredchars
+}
+\def\setprimarysortingA#1->#2\relax{\gdef\specsortingdata{#2}}
+\def\sortingmessage{ASCII default}
+
+\def\setsecondarysorting {\def\act##1{\ifx##1.\else
+ \ifx##1,\else \advance\tmpnum by1 \lccode`##1=\tmpnum \fi
+ \expandafter \act \fi}%
+ \tmpnum=60 \expandafter \act\sortingdata \setignoredchars
+}
+
+\def\preparesorting#1{\expandafter\preparesortingA\string#1&}
+\gdef\preparesortingA#1#2#3&{\xdef\tmpb{#3}%
+ \expandafter\preparesortingB\specsortingdata.:{}
+ \lowercase\expandafter{\expandafter\gdef\expandafter\tmpb\expandafter{\tmpb}}%
+ \replacestrings{.}{}%
+}
+\def\preparesortingB#1#2:#3 {\ifx.#1\else \replacestrings{#1#2}{#3}\expandafter\preparesortingB\fi}
+
+\newif \ifAleB
+
+\def\isAleB #1#2{%
+ \edef\tmp{\firstdata#1\empty\relax\firstdata#2\empty\relax \noexpand#1\noexpand#2}%
+ \expandafter \testAleB \tmp
+}
+\def\testAleB #1#2\relax #3#4\relax #5#6{%
+ \if #1#3\if #1&\testAleBsecondary #5#6%
+ \else \testAleB #2\relax #4\relax #5#6%
+ \fi
+ \else \ifnum `#1<`#3 \AleBtrue \else \AleBfalse \fi
+ \fi
+}
+\def\testAleBsecondary#1#2{%
+ \bgroup
+ \setsecondarysorting
+ \preparesorting#1\let\tmpa=\tmpb \preparesorting#2%
+ \edef\tmp{\tmpa0\relax\tmpb1\relax}%
+ \expandafter\testAleBsecondaryX \tmp
+ \egroup
+}
+\def\testAleBsecondaryX #1#2\relax #3#4\relax {%
+ \if #1#3\testAleBsecondaryX #2\relax #4\relax
+ \else \ifnum `#1<`#3 \global\AleBtrue \else \global \AleBfalse \fi
+ \fi
+}
+\def\dosorting{%
+ \message{Opmac: Sorting index (\sortingmessage)...}%
+ \def\act##1{\ifx##1\relax\else \addto\iilist{##1,}%
+ \expandafter\act\fi}%
+ \edef\iilist{\expandafter}\expandafter\act \iilist\relax
+ \edef\iilist{\expandafter}\expandafter\mergesort \iilist \end,\end
+}
+
+\def\mergesort #1#2,#3{% by Miroslav Olsak
+ \ifx,#1% % prazdna-skupina,neco, (#2=neco #3=pokracovani)
+ \addto\iilist{#2,}% % dvojice skupin vyresena
+ \sortreturn{\fif\mergesort#3}% % \mergesort pokracovani
+ \fi
+ \ifx,#3% % neco,prazna-skupina, (#1#2=neco #3=,)
+ \addto\iilist{#1#2,}% % dvojice skupin vyresena
+ \sortreturn{\fif\mergesort}% % \mergesort dalsi
+ \fi
+ \ifx\end#3% % neco,konec (#1#2=neco)
+ \ifx\empty\iilist % neco=kompletni setrideny seznam
+ \def\iilist{#1#2}%
+ \sortreturn{\fif\fif\gobbletoend}% % koncim
+ \else % neco=posledni skupina nebo \end
+ \sortreturn{\fif\fif % spojim \indexbuffer+necoa cele znova
+ \edef\iilist{\expandafter}\expandafter\mergesort\iilist#1#2,#3}%
+ \fi\fi % zatriduji: p1+neco1,p2+neco2, (#1#2=p1+neco1 #3=p2)
+ \isAleB #1#3\ifAleB % p1<p2
+ \addto\iilist{#1}% % p1 do bufferu
+ \sortreturn{\fif\mergesort#2,#3}% % \mergesort neco1,p2+neco2,
+ \else % p1>p2
+ \addto\iilist{#3}% % p2 do bufferu
+ \sortreturn{\fif\mergesort#1#2,}% % \mergesort p1+neco1,neco2,
+ \fi
+ \relax % zarazka, na ktere se zastavi \sortreturn
+}
+\def\sortreturn#1#2\fi\relax{#1} \def\fif{\fi}
+\def\gobbletoend #1\end{}
+
+%%%%%%%%%%%%%% \begmulti ... \endmulti TBN p. 244, 245 -- sec. 3.14 in opmac-d.pdf
+
+\newcount\mullines
+\def\corrsize #1{%% #1 := #1 + \splittopskip - \topskip
+ \advance #1 by \splittopskip \advance #1 by-\topskip
+}
+\def\begmulti #1 {\par\bgroup\wipeepar\multiskip\penalty0 \def\Ncols{#1}
+ \setbox6=\vbox\bgroup\penalty0
+ %% \hsize := Sirka sloupce = (\hsize+\colsep) / n - \colsep
+ \advance\hsize by\colsep
+ \divide\hsize by\Ncols \advance\hsize by-\colsep
+ \mullines=0
+ \def\par{\ifhmode\endgraf\global\advance\mullines by\prevgraf\fi}%
+}
+\def\endmulti{\vskip-\prevdepth\vfil
+ \expandafter\egroup\expandafter\baselineskip\the\baselineskip\relax
+ \dimen0=.8\maxdimen \tmpnum=\dimen0 \divide\tmpnum by\baselineskip
+ \splittopskip=\baselineskip
+ \setbox1=\vsplit6 to0pt
+ %% \dimen1 := the free space on the page
+ \ifdim\pagegoal=\maxdimen \dimen1=\vsize \corrsize{\dimen1}
+ \else \dimen1=\pagegoal \advance\dimen1 by-\pagetotal \fi
+ \ifdim \dimen1<2\baselineskip
+ \vfil\break \dimen1=\vsize \corrsize{\dimen1} \fi
+ \ifnum\mullines<\tmpnum \dimen0=\ht6 \else \dimen0=.8\maxdimen \fi
+ \divide\dimen0 by\Ncols \relax
+ %% split the material to more pages?
+ \ifdim \dimen0>\dimen1 \splitpart
+ \else \balancecolumns \fi % only balancing
+ \multiskip\egroup
+}
+\def\makecolumns{\bgroup % full page, destination height: \dimen1
+ \vbadness=20000 \setbox1=\hbox{}\tmpnum=0
+ \loop \ifnum\Ncols>\tmpnum
+ \advance\tmpnum by1
+ \setbox1=\hbox{\unhbox1 \vsplit6 to\dimen1 \hss}
+ \repeat
+ \hbox{}\nobreak\vskip-\splittopskip \nointerlineskip
+ \line{\unhbox1\unskip}
+ \dimen0=\dimen1 \divide\dimen0 by\baselineskip \multiply\dimen0 by\Ncols
+ \global\advance\mullines by-\dimen0
+ \egroup
+}
+\def\splitpart{%
+ \makecolumns % full page
+ \vskip 0pt plus 1fil minus\baselineskip \break
+ \ifnum\mullines<\tmpnum \dimen0=\ht6 \else \dimen0=.8\maxdimen \fi
+ \divide\dimen0 by\Ncols \relax
+ \ifx\balancecolumns\flushcolumns \advance\dimen0 by-.5\vsize \fi
+ \dimen1=\vsize \corrsize{\dimen1}\dimen2=\dimen1
+ \advance\dimen2 by-\Ncols\baselineskip
+ %% split the material to more pages?
+ \ifvoid6 \else
+ \ifdim \dimen0>\dimen2 \expandafter\expandafter\expandafter \splitpart
+ \else \balancecolumns % last balancing
+ \fi \fi
+}
+\def\balancecolumns{\bgroup \setbox7=\copy6 % destination height: \dimen0
+ \ifdim\dimen0>\baselineskip \else \dimen0=\baselineskip \fi
+ \vbadness=20000
+ \def\tmp{%
+ \setbox1=\hbox{}\tmpnum=0
+ \loop \ifnum\Ncols>\tmpnum
+ \advance\tmpnum by1
+ \setbox1=\hbox{\unhbox1
+ \ifvoid6 \hbox to\wd6{\hss}\else \vsplit6 to\dimen0 \fi\hss}
+ \repeat
+ \ifvoid6 \else
+ \advance \dimen0 by.2\baselineskip
+ \setbox6=\copy7
+ \expandafter \tmp \fi}\tmp
+ \hbox{}\nobreak\vskip-\splittopskip \nointerlineskip
+ \hbox to\hsize{\unhbox1\unskip}%
+ \egroup
+}
+
+%%%%%%%%%%%%%% Colors -- sec. 3.15 in opmac-d.pdf
+
+\newif\iflocalcolor \localcolorfalse
+\let\localcolor=\localcolortrue
+
+% for backward compatibility:
+\let\longlocalcolor=\localcolor \let\locpgcolor=\relax
+\def\linecolor#1{}
+
+\def\Blue{\setcmykcolor{1 1 0 0}}
+\def\Red{\setcmykcolor{0 1 1 0}}
+\def\Brown{\setcmykcolor{0 0.67 0.67 0.5}}
+\def\Green{\setcmykcolor{1 0 1 0}}
+\def\Yellow{\setcmykcolor{0 0 1 0}}
+\def\Cyan{\setcmykcolor{1 0 0 0}}
+\def\Magenta{\setcmykcolor{0 1 0 0}}
+\def\White{\setcmykcolor{0 0 0 0}}
+\def\Grey{\setcmykcolor{0 0 0 0.5}}
+\def\LightGrey{\setcmykcolor{0 0 0 0.2}}
+\def\Black{\setcmykcolor{0 0 0 1}}
+
+\def\setcmykcolor#1{\global\let\ensureblacko=\ensureblackoA
+ \iflocalcolor \edef\currentcolor{#1}\colorstackpush\currentcolor \aftergroup\colorstackpop
+ \else \xdef\currentcolor{#1}\colorstackset\currentcolor \fi
+}
+\def\pdfblackcolor{0 0 0 1}
+\xdef\currentcolor{\pdfblackcolor}
+\def\ensureblacko#1{#1}
+\def\ensureblackoA#1{\colorstackpush\pdfblackcolor #1\colorstackpop}
+
+\ifx\pdfcolorstackinit\undefined
+ \def\colorstackpush#1{\pdfliteral{#1 k #1 K}}
+ \def\colorstackpop{\colorstackpush\currentcolor}
+ \let\colorstackset=\colorstackpush
+\else
+ \mathchardef\colorstackcnt=\pdfcolorstackinit page {0 g 0 G}
+ \def\colorstackpush#1{\pdfcolorstack\colorstackcnt push{#1 k #1 K}}
+ \def\colorstackpop{\pdfcolorstack\colorstackcnt pop}
+ \def\colorstackset#1{\pdfcolorstack\colorstackcnt set{#1 k #1 K}}
+\fi
+
+\addprotect\setcmykcolor \addprotect\localcolor \addprotect\longlocalcolor
+
+\ifpdftex\else
+ \def\setcmykcolor#1{} \def\pdfliteral#1{}
+\fi
+
+\def\draft{\addto\prepghook{\draftbox{\tenbf DRAFT}\nointerlineskip}}
+\def\draftbox#1{\vbox to0pt{\setbox0=\hbox{\typosize[10/]#1}%
+ \kern.5\vsize \kern4\wd0 \hbox to0pt{\kern.5\hsize \kern-2.5\wd0
+ \pdfsave \pdfrotate{55}\pdfscale{10}{10}%
+ \hbox to0pt{\localcolor\LightGrey \box0\hss}%
+ \pdfrestore
+ \hss}\vss}}
+
+\ifpdftex\else
+ \def\draft{\opwarning{\string\draft: Grey color is possible in pdfTeX only}}
+\fi
+
+%%%%%%%%%%%%%% Hyperrefs -- sec. 3.16 in opmac-d.pdf
+
+\def\destheight{1.4em}
+\def\destactive[#1:#2]{\if$#2$\else\ifvmode
+ \tmpdim=\prevdepth \prevdepth=-1000pt
+ \destbox[#1:#2]\prevdepth=\tmpdim
+ \else \destbox[#1:#2]%
+ \fi\fi
+}
+\def\destbox[#1]{\vbox to0pt{\kern-\destheight \pdfdest name{#1} xyz\vss}}
+\def\dest[#1]{}
+
+\def\linkactive[#1:#2]#3#4{\leavevmode\pdfstartlink height.9em depth.3em
+ \pdfborder{#1} goto name{#1:#2}\relax {#3#4}\pdfendlink
+}
+\def\link[#1]#2#3{\leavevmode{#3}}
+
+\def\urllink[#1:#2]#3{{\let~=\relax \let\\=\relax \let\{=\relax \let\}=\relax
+ \leavevmode\pdfstartlink height.9em depth.3em
+ \pdfborder{#1}user{/Subtype/Link/A <</Type/Action/S/URI/URI(#2)>>}\relax
+ {\def~{\nobreak\space}\urlcolor#3}\pdfendlink}%
+}
+\def\toclink#1{\toclinkA{#1}}
+\def\pglink#1{\leavevmode{\pgfolioA{#1}}}
+\def\citelink#1#2{\leavevmode{#2}}
+\def\reflink[#1]#2{\leavevmode{#2}}
+\def\ulink[#1]#2{\leavevmode{#2}}
+\def\urlcolor{}
+
+\def\hyperlinks#1#2{%
+ \let\dest=\destactive \let\link=\linkactive
+ \def\toclink##1{\link[toc:\tocilabel.##1]{\localcolor#1}{\toclinkA{##1}}}%
+ \def\pglink##1{\link[pg:\pgilabel.##1]{\localcolor#1}{\pgfolioA{##1}}}%
+ \def\citelink##1##2{\link[cite:##1]{\localcolor#1}{##2}}%
+ \def\reflink[##1]##2{\link[ref:##1]{\localcolor#1}{##2}}%
+ \def\ulink[##1]##2{\urllink[url:##1]{##2}}%
+ \def\urlcolor{\localcolor#2}%
+}
+\def\tocilabel{} \def\pgilabel{}
+
+\def\pdfborder#1{\if^#1^\else \isdefined{#1border}\iftrue
+ \if^\csname#1border\endcsname^\else attr{/C[\csname#1border\endcsname] /Border[0 0 .6]}\fi
+ \else attr{/Border[0 0 0]}\fi\fi
+}
+
+\ifpdftex \else
+ \def\link[#1]#2#3{#3}
+ \def\urllink[#1]#2{#2}
+ \def\hyperlinks#1#2{\opwarning{No pdfTeX detected, \noexpand\hyperlinks ignored}}
+\fi
+
+\def\url#1{{\def\tmpb{#1}%
+ \replacestrings{//}{{\urlskip\urlslashslash\urlbskip}}%
+ \replacestrings{/}{{\urlskip/\urlbskip}}%
+ \replacestrings{.}{{\urlskip.\urlbskip}}%
+ \replacestrings{?}{{\urlskip?\urlbskip}}%
+ \replacestrings{=}{{\urlskip=\urlbskip}}%
+ \replacestrings{~}{{\char`\~}}%
+ \replacestrings{_}{{\char`\_}}%
+ \replacestrings{^}{{\char`\^}}%
+ \replacestrings{\\}{\bslash}%
+ \replacestrings{\{}{{\char`\{}}%
+ \replacestrings{\}}{{\char`\}}}%
+ \replacestrings{&}{{\urlbskip\char`\& \urlskip}}%
+ \def\|{}\ulink[#1]{\urlfont\tmpb\null}%
+}}
+\def\urlfont{\tt \let\|=\urlspecchar}
+\def\urlspecchar{\penalty10 }
+\def\urlskip{\null\nobreak\hskip0pt plus0.05em\relax}
+\def\urlbskip{\penalty100 \hskip0pt plus0.05em\relax}
+\def\urlslashslash{/\urlskip/}
+\addprotect\url
+
+%%%%%%%%%%%%%% Outlines -- sec. 3.17 in opmac-d.pdf
+
+\def\outlines#1{\pdfcatalog{/PageMode/UseOutlines}\openref\ifx\toclist\empty
+ \opwarning{\noexpand\outlines -- data unavailable. TeX me again}%
+ \else
+ \ifx\urlcolor\empty
+ \opwarning{\noexpand\outlines doesn't work when \noexpand\hyperlinks isn't declared}\fi
+ {\let\tocline=\outlinesA
+ \count0=0 \count1=0 \toclist % calculate numbers o childs
+ \def\outlinelevel{#1}\let\tocline=\outlinesB
+ \count0=0 \count1=0 \toclist}% create outlines
+ \fi
+}
+\def\outlinesA#1#2#3#4#5{%
+ \advance\count#1 by1
+ \ifcase#1\or
+ \addoneol{ol:\the\count0}\or
+ \addoneol{ol:\the\count0:\the\count1}\fi
+}
+\def\addoneol#1{\isdefined{#1}%
+ \iftrue \tmpnum=\csname#1\endcsname\relax
+ \advance\tmpnum by1 \sxdef{#1}{\the\tmpnum}%
+ \else \sxdef{#1}{1}%
+ \fi
+}
+\def\outlinesB#1#2#3#4#5{%
+ \advance\count#1 by1
+ \ifcase#1\tmpnum=\isdefined{ol:\the\count0}%
+ \iftrue\csname ol:\the\count0\endcsname\else0\fi \or
+ \tmpnum=\isdefined{ol:\the\count0:\the\count1}%
+ \iftrue\csname ol:\the\count0:\the\count1\endcsname\else0\fi \or
+ \tmpnum = 0 \fi
+ \protectlist \def~{ }\setcnvcodesA
+ \ifx\toasciidata\empty \let\lowercase=\relax \else \expandafter\setlccodes\toasciidata{}{}\fi
+ \cnvhook \lowercase{\gdef\tmp{#4}}%
+ \outlinesC{#1}{toc:\tocilabel.#3}{\ifnum#1<\outlinelevel\space\else-\fi}{\tmpnum}{\tmp}%
+}
+\def\outlinesC#1#2#3#4#5{\pdfoutline goto name{#2} count #3#4{#5}\relax}
+
+\def\setcnvcodesA{\global\let\setcnvcodesA=\relax % I am working only once
+ \isdefined{toasciidata\csname lan:\the\language\endcsname}\iftrue
+ \xdef\toasciidata{\csname toasciidata\csname lan:\the\language\endcsname\endcsname}%
+ \else
+ \ifx\r\undefined
+ \gdef\toasciidata{}
+ \opwarning{\noexpand\csaccents unused, CZ/SK outline-conversion is off}%
+ \else
+ \xdef\toasciidata{\toasciidata}%
+ \fi\fi
+}
+\def\toasciidata{% Removes Czech+Slovak accents
+ AA\'AA\"AA\'aa\"aaBBCC\v CC\v ccDD\v DD\v ddEE\'EE\v EE\'ee\v ee%
+ FFGGHHII\'II\'iiJJKKLL\'LL\v LL\'ll\v llMMNN\v NN\v nnOO\'OO\"OO\^OO%
+ \'oo\"oo\^ooPPQQRR\v RR\v rrSS\v SS\v ssTT\v TT\v ttUU\'UU\"UU\r UU%
+ \'uu\"uu\r uuVVWWXXYY\'YY\'yyZZ\v ZZ\v zz%
+}
+\def\setlccodes#1#2{\if\relax#2\relax \else \lccode`#1=`#2 \expandafter \setlccodes \fi}
+
+\newcount\oulnum
+\def\insertoutline#1{\global\advance\oulnum by1
+ \pdfdest name{oul:\the\oulnum} xyz\relax
+ \pdfoutline goto name{oul:\the\oulnum} count0 {#1}\relax
+}
+
+\ifpdftex \else
+ \def\outlines#1{\opwarning{DVI output has no outlines}\gdef\outlines##1{}}
+ \let\insertoutline=\outlines
+\fi
+
+%%%%%%%%%%%%%% Verbatim, \begtt, \endtt -- sec. 3.18 in opmac-d.pdf
+
+\newcount\ttline \ttline=-1
+\newcount\viline
+\newread\vifile
+
+\def\setverb{\frenchspacing\def\do##1{\catcode`##1=12}\dospecials \catcode`\*=12 }
+\def\begtt{\par \vskip\parskip \ttskip \bgroup \wipeepar
+ \setverb \adef{ }{\ }%
+ \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi
+ \parindent=\ttindent \parskip=0pt
+ \tthook\relax
+ \ifnum\ttline<0 \else
+ \tenrm \thefontscale[700]\let\sevenrm=\thefont
+ \everypar\expandafter{\the\everypar \global\advance\ttline by1 \printttline}\fi
+ \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}%
+ \obeylines \startverb}
+{\catcode`\|=0 \catcode`\\=12
+|gdef|startverb#1\endtt{|tt|ptthook#1|egroup|par|ttskip|testparA}}
+\def\testparA{\expandafter\testparB\romannumeral-`\.}
+\def\testparB{\futurelet\tmpa\testparC}
+\def\testparC{\ifx\tmpa\par\else\afternoindent\fi}
+
+\def\printttline{\llap{\sevenrm\the\ttline\kern.9em}}
+
+\def\activettchar#1{%
+ \ifx\savedttchar\undefined\else \catcode\savedttchar=\savedttcharc \fi
+ \chardef\savedttchar=`#1%
+ \chardef\savedttcharc=\catcode`#1%
+ \bgroup\lccode`\~=`#1%
+ \lowercase {\egroup\def~}{\leavevmode\hbox\bgroup\setverb\adef{ }{\ }%
+ \intthook\tt\readverb}%
+ \bgroup\lccode`\~=`#1\lowercase{\egroup\def\readverb ##1~}{##1\egroup}%
+ \catcode`#1=13
+}
+
+\def\verbinput (#1) #2 {\par \def\tmpa{#2}%
+ \ifx\vifilename\tmpa \else
+ \openin\vifile=#2
+ \global\viline=0 \global\let\vifilename=\tmpa
+ \ifeof\vifile
+ \opwarning{\noexpand\verbinput - file "#2" is unable to reading}
+ \expandafter\expandafter\expandafter\skiptorelax
+ \fi
+ \fi
+ \viscanparameter #1+\relax
+}
+\def\skiptorelax#1\relax{}
+
+\def \viscanparameter #1+#2\relax{%
+ \if$#2$\viscanminus(#1)\else \viscanplus(#1+#2)\fi
+}
+\def\viscanplus(#1+#2+){%
+ \if$#1$\tmpnum=\viline
+ \else \ifnum#1<0 \tmpnum=\viline \advance\tmpnum by-#1
+ \else \tmpnum=#1
+ \advance\tmpnum by-1
+ \ifnum\tmpnum<0 \tmpnum=0 \fi % (0+13) = (1+13)
+ \fi \fi
+ \edef\vinolines{\the\tmpnum}%
+ \if$#2$\def\vidolines{0}\else\edef\vidolines{#2}\fi
+ \doverbinput
+}
+\def\viscanminus(#1-#2){%
+ \if$#1$\tmpnum=0
+ \else \tmpnum=#1 \advance\tmpnum by-1 \fi
+ \ifnum\tmpnum<0 \tmpnum=0 \fi % (0-13) = (1-13)
+ \edef\vinolines{\the\tmpnum}%
+ \if$#2$\tmpnum=0
+ \else \tmpnum=#2 \advance\tmpnum by-\vinolines \fi
+ \edef\vidolines{\the\tmpnum}%
+ \doverbinput
+}
+\def\doverbinput{%
+ \tmpnum=\vinolines
+ \advance\tmpnum by-\viline
+ \ifnum\tmpnum<0
+ \openin\vifile=\vifilename\space
+ \global\viline=0
+ \else
+ \edef\vinolines{\the\tmpnum}%
+ \fi
+ \vskip\parskip \ttskip \bgroup \wipeepar
+ \setverb \adef{ }{\ }%
+ \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi
+ \parindent=\ttindent \parskip=0pt
+ \tthook\relax
+ \ifnum\ttline<-1 \else
+ \tenrm \thefontscale[700]\let\sevenrm=\thefont
+ \everypar\expandafter{\the\everypar \glob\advance\ttline by1 \printttline}\fi
+ \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}%
+ \obeylines \tmpnum=0 \lccode`\~=`\^^M \lowercase{\def\tmpb{~}}%
+ \loop \ifeof\vifile \tmpnum=\vinolines\space \fi
+ \ifnum\tmpnum<\vinolines\space
+ \vireadline \advance\tmpnum by1 \repeat %% skip line
+ \ifnum\ttline=-1 \ttline=\viline \let\glob=\relax \else\let\glob=\global \fi
+ \tmpnum=0 \ifnum\vidolines=0 \tmpnum=-1 \fi
+ \ifeof\vifile \tmpnum=\vidolines\space \fi
+ \loop \ifnum\tmpnum<\vidolines\space
+ \vireadline
+ \ifeof\vifile \tmpnum=\vidolines\space \else \viprintline \fi %% print line
+ \ifnum\vidolines=0 \else\advance\tmpnum by1 \fi
+ \repeat
+ \tt\expandafter\ptthook\tmpb\egroup\par\ttskip\testparA
+}
+\def\vireadline{\read\vifile to \tmp \global\advance\viline by1 }
+\def\viprintline{\expandafter\addto\expandafter\tmpb\expandafter{\tmp}}
+
+%%%%%%%%%%%%%% \table -- sec. 3.19 in opmac-d.pdf
+
+\newtoks\tabdata
+\def\tabstrutA{\tabstrut}
+\newcount\colnum
+\def\ddlinedata{}
+\def\vvleft{}
+
+\def\table{\vbox\bgroup \catcode`\|=12 \tableA}
+\def\tableA#1#2{\offinterlineskip \colnum=0 \def\tmpa{}\tabdata={}\scantabdata#1\relax
+ \halign\expandafter{\the\tabdata\cr#2\crcr}\egroup}
+
+\def\scantabdata#1{\let\next=\scantabdata
+ \ifx\relax#1\let\next=\relax
+ \else\ifx|#1\addtabvrule
+ \else\isinlist{123456789}#1\iftrue \def\next{\scantabdataC#1}%
+ \else \expandafter\ifx\csname tabdeclare#1\endcsname \relax
+ \expandafter\ifx\csname paramtabdeclare#1\endcsname \relax
+ \opwarning{tab-declarator "#1" unknown, ignored}%
+ \else \def\next{\expandafter \scantabdataB \csname paramtabdeclare#1\endcsname}\fi
+ \else \def\next{\expandafter\scantabdataA \csname tabdeclare#1\endcsname}%
+ \fi\fi\fi\fi \next
+}
+\def\scantabdataA#1{\addtabitem \expandafter\addtabdata\expandafter{#1\tabstrutA}\scantabdata}
+\def\scantabdataB#1#2{\addtabitem\expandafter\addtabdata\expandafter{#1{#2}\tabstrutA}\scantabdata}
+\def\scantabdataC {\def\tmpb{}\afterassignment\scantabdataD \tmpnum=}
+\def\scantabdataD#1{\loop \ifnum\tmpnum>0 \advance\tmpnum by-1 \addto\tmpb{#1}\repeat
+ \expandafter\scantabdata\tmpb
+}
+\def\tabdeclarec{\tabiteml\hfil##\unsskip\hfil\tabitemr}
+\def\tabdeclarel{\tabiteml##\unsskip\hfil\tabitemr}
+\def\tabdeclarer{\tabiteml\hfil##\unsskip\tabitemr}
+\def\paramtabdeclarep#1{\tabiteml\vtop{\hsize=#1\relax \baselineskip=\normalbaselineskip
+ \lineskiplimit=0pt \noindent##\unsskip \vbox to0pt{\vss\hbox{\tabstrutA}}}\tabitemr}
+
+\def\unsskip{\ifdim\lastskip>0pt \unskip\fi}
+\def\addtabitem{\ifnum\colnum>0 \addtabdata{&}\addto\ddlinedata{&\dditem}\fi
+ \advance\colnum by1 \let\tmpa=\relax}
+\def\addtabdata#1{\tabdata\expandafter{\the\tabdata#1}}
+\def\addtabvrule{%
+ \ifx\tmpa\vrule \addtabdata{\kern\vvkern}%
+ \ifnum\colnum=0 \addto\vvleft{\vvitem}\else\addto\ddlinedata{\vvitem}\fi
+ \else \ifnum\colnum=0 \addto\vvleft{\vvitemA}\else\addto\ddlinedata{\vvitemA}\fi\fi
+ \let\tmpa=\vrule \addtabdata{\vrule}}
+
+\def\crl{\crcr\noalign{\hrule}}
+\def\crll{\crcr\noalign{\hrule\kern\hhkern\hrule}}
+
+\def\crli{\crcr \omit
+ \gdef\dditem{\omit\tablinefil}\gdef\vvitem{\kern\vvkern\vrule}\gdef\vvitemA{\vrule}%
+ \vvleft\tablinefil\ddlinedata\crcr}
+\def\crlli{\crli\noalign{\kern\hhkern}\crli}
+\def\tablinefil{\leaders\hrule\hfil}
+
+\def\crlp#1{\crcr \noalign{\kern-\drulewidth}%
+ \omit \xdef\crlplist{#1}\xdef\crlplist{,\expandafter}\expandafter\crlpA\crlplist,\end,%
+ \global\tmpnum=0 \gdef\dditem{\omit\crlpD}%
+ \gdef\vvitem{\kern\vvkern\kern\drulewidth}\gdef\vvitemA{\kern\drulewidth}%
+ \vvleft\crlpD\ddlinedata \global\tmpnum=0 \crcr}
+\def\crlpA#1,{\ifx\end#1\else \crlpB#1-\end,\expandafter\crlpA\fi}
+\def\crlpB#1#2-#3,{\ifx\end#3\xdef\crlplist{\crlplist#1#2,}\else\crlpC#1#2-#3,\fi}
+\def\crlpC#1-#2-#3,{\tmpnum=#1\relax
+ \loop \xdef\crlplist{\crlplist\the\tmpnum,}\ifnum\tmpnum<#2\advance\tmpnum by1 \repeat}
+\def\crlpD{\global\advance\tmpnum by1
+ \edef\tmpa{\noexpand\isinlist\noexpand\crlplist{,\the\tmpnum,}}%
+ \tmpa\iftrue \kern-\drulewidth \tablinefil \kern-\drulewidth\else\hfil \fi}
+
+\def\tskip{\afterassignment\tskipA \tmpdim}
+\def\tskipA{\gdef\dditem{}\gdef\vvitem{}\gdef\vvitemA{}\gdef\tabstrutA{}%
+ \vbox to\tmpdim{}\ddlinedata \crcr \noalign{\gdef\tabstrutA{\tabstrut}}}
+
+\def\mspan{\omit \tabdata={\tabstrut}\let\tmpa=\relax \afterassignment\mspanA \mscount=}
+\def\mspanA[#1]{\loop \ifnum\mscount>1 \csname span\endcsname \omit \advance\mscount by-1 \repeat
+ \mspanB#1\relax}
+\def\mspanB#1{\ifx\relax#1\def\tmpa{\def\tmpa####1}%
+ \expandafter\tmpa\expandafter{\the\tabdata\ignorespaces}\expandafter\tmpa\else
+ \ifx |#1\ifx\tmpa\vrule\addtabdata{\kern\vvkern}\fi \addtabdata{\vrule}\let\tmpa=\vrule
+ \else \let\tmpa=\relax
+ \ifx c#1\addtabdata{\tabiteml\hfil\ignorespaces##1\unsskip\hfil\tabitemr}\fi
+ \ifx l#1\addtabdata{\tabiteml\ignorespaces##1\unsskip\hfil\tabitemr}\fi
+ \ifx r#1\addtabdata{\tabiteml\hfil\ignorespaces##1\unsskip\tabitemr}\fi
+ \fi \expandafter\mspanB \fi}
+
+\newdimen\drulewidth \drulewidth=0.4pt
+\let\orihrule=\hrule \let\orivrule=\vrule
+\def\rulewidth{\afterassignment\rulewidthA \drulewidth}
+\def\rulewidthA{\edef\hrule{\orihrule height\the\drulewidth}%
+ \edef\vrule{\orivrule width\the\drulewidth}}
+
+\long\def\frame#1{%
+ \hbox{\vrule\vtop{\vbox{\hrule\kern\vvkern
+ \hbox{\kern\hhkern\relax#1\kern\hhkern}%
+ }\kern\vvkern\hrule}\vrule}}
+
+%%%%%%%%%%%%%% \inspic -- sec. 3.20 in opmac-d.pdf
+
+\newdimen\picwidth \picwidth=0pt \let\picw=\picwidth
+\newdimen\picheight \picheight=0pt
+
+\ifpdftex
+ \def\inspic #1 {\hbox{%
+ \pdfximage \ifdim\picwidth=0pt \else width\picwidth\fi
+ \ifdim\picheight=0pt \else height\picheight\fi \inspicpage {\picdir#1}%
+ \pdfrefximage\pdflastximage}}
+\else
+ \def\inspic #1 {\opwarning
+ {The \noexpand\inspic is supported for PDF output only}}
+\fi
+\def\inspicpage{}
+
+%%%%%%%%%%%%%%% transformation matrix -- sec. 3.21 in opmac-d.pdf
+
+\def\pdfscale#1#2{\pdfsetmatrix{#1 0 0 #2}}
+
+\def\pdfrotate#1{\tmpdim=#1pt
+ \ifdim\tmpdim=0pt
+ \else \ifdim\tmpdim=90pt \pdfsetmatrix{0 1 -1 0}%
+ \else \edef\tmp{#1}\expandafter\pdfrotateA\tmp..\relax
+ \fi \fi
+}
+\def\pdfrotateA #1.#2.#3\relax{%
+ \def\tmp##1.##2\relax {##1}%
+ \tmpnum=\expandafter \tmp \the\tmpdim \relax % round
+ \ifdim\tmpdim>0pt \def\tmpa{}\else\def\tmpa{-}\fi % save -
+ \loop \ifnum\tmpnum<0 \advance\tmpnum by360 \repeat
+ \loop \ifnum\tmpnum>360 \advance\tmpnum by-360 \repeat
+ \loop \ifnum\tmpnum>90 \pdfrotate{90}\advance\tmpnum by-90 \repeat
+ \ifnum\tmpnum=90 \pdfrotate{90}\else
+ \ifnum\tmpnum>44 \pdfsetmatrix{.7071 .7071 -.7071 .7071}%
+ \advance\tmpnum by-45 \fi
+ \ifnum\tmpnum>22 \pdfsetmatrix{.9272 .3746 -.3746 .9272}%
+ \advance\tmpnum by-22 \fi
+ \ifnum\tmpnum>0
+ \pdfsetmatrix{\smallcos \smallsin -\smallsin \smallcos}%
+ \fi\fi
+ \if$#2$\else % fraction part
+ \tmpdim=.01745329pt % \pi/180
+ \tmpdim=.#2\tmpdim %
+ \edef\tmp{\expandafter\ignorept\the\tmpdim\space}%
+ \ifx\tmpa\empty \pdfsetmatrix{1 \tmp -\tmp 1}%
+ \else \pdfsetmatrix{1 -\tmp \tmp 1}%
+ \fi\fi
+}
+\def\smallcos{.\ifcase\tmpnum \or9998\or9994\or9986\or9976\or9962\or9945\or
+ 9925\or9903\or9877\or9848\or9816\or9781\or9744\or9703\or9659\or9613\or
+ 9563\or9511\or9455\or9397\or9336\or9272\fi\space}
+\def\smallsin{.\ifcase\tmpnum 0\or0175\or0359\or0523\or0698\or0872\or1045\or
+ 1219\or1391\or1564\or1736\or1908\or2079\or2250\or2419\or2588\or2756\or
+ 2924\or309\or3256\or342\or3584\or3746\fi\space}
+
+\ifpdftex \else
+ \def\pdfsetmatrix#1{} \def\pdfsave{} \def\pdfrestore{}
+\fi
+
+%%%%%%%%%%%%%% \fnote, \mnote -- sec 3.22 in opmac-d.pdf
+
+\newcount\fnotenum \fnotenum=0
+\newcount\fnotenumlocal
+\newif\iflocfnum \locfnumtrue
+
+\long\def\fnote#1{\global\advance \fnotenum by1
+ \leavevmode\openref\wref\Xfnote{}%
+ \iflocfnum \isdefined{fn:\the\fnotenum}\iftrue
+ \else\opwarning{unknown \noexpand\fnote mark. TeX me again}\fi\fi
+ \fnmarkx{\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
+}
+\def\fnotemark#1{{\advance\fnotenum by#1\relax
+ \isdefined{fn:\the\fnotenum}\iftrue\thefnote
+ \else$^?$\opwarning{unknown \string\fnotemark. TeX me again}\fi}%
+}
+\long\def\fnotetext#1{\global\advance \fnotenum by1 \openref\wref\Xfnote{}%
+ {\everypar={}\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
+}
+\def\fnmarkx{\isdefined{fn:\the\fnotenum}\iftrue\thefnote\else$^?$\fi}
+\def\thefnote{$^{\locfnum}$}
+\def\locfnum{\csname fn:\the\fnotenum\endcsname}
+
+\def\Xfnote{\advance\fnotenumlocal by1 \advance\fnotenum by1
+ \sxdef{fn:\the\fnotenum}{\the\fnotenumlocal}}
+
+\def\runningfnotes{\locfnumfalse\def\locfnum{\the\fnotenum}\def\fnmarkx{\thefnote}}
+
+\newcount\mnotenum \mnotenum=0 % global counter of mnotes
+\newdimen\mnoteskip \mnoteskip=0pt
+
+\long\def\mnote#1{\ifvmode \hbox{\vbox to\ht\strutbox{}\mnoteA{#1}}\nobreak\vskip-\baselineskip
+ \else \strut\vadjust{\kern-\dp\strutbox \mnoteA{#1}\kern\dp\strutbox}%
+ \fi
+}
+\long\def\mnoteA#1{\global\advance \mnotenum by1
+ \ifx\mnotesfixed\undefined
+ \isdefined{mn:\the\mnotenum}\iftrue
+ \else\opwarning{unknown \noexpand\mnote side. TeX me again}\fi
+ \edef\tmp{\csname mn:\the\mnotenum\endcsname}%
+ \openref\wref\Xmnote{}\ifvmode\nobreak\fi
+ \else \let\tmp=\mnotesfixed \fi
+ \expandafter\ifx\tmp \left
+ \hbox to0pt{\kern-\mnotesize \kern-\mnoteindent
+ \vbox to0pt{\vss \setbox0=\vtop{\hsize=\mnotesize
+ \leftskip=0pt plus 1fill \rightskip=0pt {\mnotehook\noindent#1\endgraf}}%
+ \dp0=0pt \box0 \kern\mnoteskip \global\mnoteskip=0pt}\hss}%
+ \else
+ \hbox to0pt{\kern\hsize \kern\mnoteindent
+ \vbox to0pt{\vss \setbox0=\vtop{\hsize=\mnotesize
+ \rightskip=0pt plus 1fil \leftskip=0pt {\mnotehook\noindent#1\endgraf}}%
+ \dp0=0pt \box0 \kern\mnoteskip \global\mnoteskip=0pt}\hss}%
+ \fi
+}
+\def\Xmnote{\advance\mnotenum by1
+ \sxdef{mn:\the\mnotenum}{\ifodd\lastpage \right \else \left \fi}}
+
+\def\fixmnotes#1{\def\mnotesfixed{#1}}
+
+%%%%%%%%%%%%%% \cite, \bib, \usebibtex, \usebbl -- sec. 3.23 in opmac-d.pdf
+
+\newwrite\auxfile % AUX file for BibTeX
+\newcount\bibnum % the bibitem counter
+\newtoks\bibmark % the bibmark used if \nonumcitations
+\newcount\lastcitenum \lastcitenum=0 % for \shortcitations
+
+\def\cite[#1]{{\citeA#1,,,[\printsavedcites]}}
+\def\nocite[#1]{{\citeA#1,,,}}
+\def\rcite[#1]{{\citeA#1,,,\printsavedcites}}
+\def\savedcites{}
+
+\def\citeA #1#2,{\if#1,\else
+ \if *#1\addcitelist{*}\expandafter \skiptorelax \fi
+ \isdefined{bib:#1#2}\iftrue \else
+ \addcitelist{#1#2}%
+ \opwarning{The cite [#1#2] unknown. Try to TeX me again}\openref
+ \addto\savedcites{?,}\def\sortcitesA{}\lastcitenum=0
+ \expandafter\gdef\csname bib:#1#2\endcsname {}%
+ \expandafter \skiptorelax \fi
+ \expandafter \ifx \csname bib:#1#2\endcsname \empty
+ \addto\savedcites{?,}\def\sortcitesA{}\lastcitenum=0
+ \expandafter \skiptorelax \fi
+ \def\bibnn##1{}%
+ \if &\csname bib:#1#2\endcsname
+ \addcitelist{#1#2}%
+ \def\bibnn##1##2{##1}%
+ \sxdef{bib:#1#2}{\csname bib:#1#2\endcsname}%
+ \fi
+ \edef\savedcites{\savedcites \csname bib:#1#2\endcsname,}%
+ \relax
+ \expandafter\citeA\fi
+}
+\def\printsavedcites{\sortcitesA
+ \chardef\tmpb=0 \expandafter\citeB\savedcites,%
+ \ifnum\tmpb>0 \printdashcite{\the\tmpb}\fi
+}
+\def\sortcitesA{}
+\def\sortcitations{%
+ \def\sortcitesA{\edef\savedcites{300000,\expandafter}\expandafter\sortcitesB\savedcites,%
+ \def\tmpa####1300000,{\def\savedcites{####1}}\expandafter\tmpa\savedcites}%
+}
+\def\sortcitesB #1,{\if $#1$%
+ \else
+ \mathchardef\tmpa=#1
+ \edef\savedcites{\expandafter}\expandafter\sortcitesC \savedcites\end
+ \expandafter\sortcitesB
+ \fi
+}
+\def\sortcitesC#1,{\ifnum\tmpa<#1\edef\tmpa{\the\tmpa,#1}\expandafter\sortcitesD
+ \else\edef\savedcites{\savedcites#1,}\expandafter\sortcitesC\fi}
+\def\sortcitesD#1\end{\edef\savedcites{\savedcites\tmpa,#1}}
+
+\def\citeB#1,{\if$#1$\else
+ \if?#1\relax??%
+ \else
+ \ifnum\lastcitenum=0 % only comma separated list
+ \printcite{#1}%
+ \else
+ \ifx\citesep\empty % first cite item
+ \lastcitenum=#1\relax
+ \printcite{#1}%
+ \else % next cite item
+ \advance\lastcitenum by1
+ \ifnum\lastcitenum=#1\relax % cosecutive cite item
+ \mathchardef\tmpb=\lastcitenum
+ \else % there is a gap between cite items
+ \lastcitenum=#1\relax
+ \ifnum\tmpb=0 % previous items were printed
+ \printcite{#1}%
+ \else
+ \printdashcite{\the\tmpb}\printcite{#1}\chardef\tmpb=0
+ \fi\fi\fi\fi\fi
+ \expandafter\citeB\fi
+}
+\def\shortcitations{\lastcitenum=1 }
+
+\def\printcite#1{\citesep\citelink{#1}{\citelinkA{#1}}\def\citesep{,\hskip.2em\relax}}
+\def\printdashcite#1{\ifmmode-\else\hbox{--}\fi\citelink{#1}{\citelinkA{#1}}}
+\def\citesep{}
+
+\def\nonumcitations{\lastcitenum=0\def\sortcitesA{}\def\etalchar##1{$^{##1}$}%
+ \def\citelinkA##1{\isdefined{bim:##1}\iftrue \csname bim:##1\endcsname
+ \else ##1\opwarning{\noexpand\nonumcitations + empty bibmark. Maybe bad BibTeX style}\fi}
+}
+\def\citelinkA{}
+
+\def\ecite[#1]{\bgroup\citeA#1,,,\expandafter\eciteB\savedcites;}
+\def\eciteB#1,#2;#3{\if?#1\relax #3\else \citelink{#1}{#3}\fi\egroup}
+
+\def\bib[#1]{\def\tmp{\isnextchar={\bibA[#1]}{\bibmark={}\bibB[#1]}}%
+ \expandafter\tmp\romannumeral-`\.} % ignore optional space
+\def\bibA[#1]=#2{\bibmark={#2}\bibB[#1]}
+\def\bibB[#1]{\par \ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \def\tmpb{#1}\wbib{#1}{\the\bibnum}{\the\bibmark}%
+ \printbib \ignorespaces
+}
+\def\wbib#1#2#3{\dest[cite:\the\bibnum]%
+ \ifx\wref\wrefrelax\else \immediate\wref\Xbib{{#1}{#2}{#3}}\fi}
+
+\def\Xbib#1#2#3{\sdef{bib:#1}{\bibnn{#2}&}\if^#3^\else\sdef{bim:#2}{#3}\fi\def\lastbibnum{#2}}
+
+\def\printbib{\hangindent=\iindent
+ \ifx\citelinkA\empty \noindent\hskip\iindent \llap{[\the\bibnum] }%
+ \else \noindent \fi
+}
+
+\def\addcitelist#1{\global\addto\citelist{\citeI[#1]}}
+\def\writeaux#1{\immediate\write\auxfile{\string\citation{#1}}}
+\def\writeXcite#1{\openref\immediate\wref\Xcite{{#1}}}
+\def\citelist{} \def\citelistB{}
+
+\def\usebibtex#1#2{%
+ \openref \openauxfile{#1}{#2}%
+ \def\citeI[##1]{\writeaux{##1}}\citelist
+ \global\let\addcitelist=\writeaux
+ \bgroup \readbblfile{\jobname}\egroup
+}
+\def\openauxfile#1#2{%
+ \immediate\openout\auxfile=\jobname.aux
+ \immediate\write\auxfile
+ {\percent\percent\space Opmac: AUX file reserved for bibtex only}%
+ \immediate\write\auxfile{\string\bibdata{#1}}%
+ \immediate\write\auxfile{\string\bibstyle{#2}}%
+}
+\def\readbblfile #1{%
+ \openin\testin=#1.bbl
+ \ifeof\testin
+ \opwarning{The `#1.bbl' file doesn't exist. Use `bibtex'..}%
+ \else
+ \closein\testin
+ \bibnum=0
+ \long\def\begin##1\bibitem{\bibitem}\def\end##1{}% LaTeX environment
+ \def\httpAddr##1{\url{http:##1}}\def\\{\hfill\break}%
+ \def\newblock{\hskip .11em plus.33em minus.07em}%
+ \def\mbox{\leavevmode\hbox}\def\emph##1{{\it##1}}%
+ \parindent=\iindent \bibtexhook\relax
+ \input #1.bbl
+ \par
+ \fi
+}
+\def\bibitem{\isnextchar[{\bibitemB}{\bibmark={}\bibitemC}}
+\def\bibitemB[#1]{\bibmark={#1}\bibitemC}
+\def\bibitemC#1{\bibitemD{#1}}
+\def\bibitemD#1{\par\ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \def\tmpb{#1}\wbib{#1}{\the\bibnum}{\the\bibmark}%
+ \printbib \ignorespaces
+}
+\def\genbbl#1#2{\openauxfile{#1}{#2}%
+ \immediate\write\auxfile{\string\citation{*}}%
+ \bgroup
+ \iindent=4em
+ \def\bibitemC##1{\par\ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \hangindent=\parindent
+ \indent \llap{[##1]\enspace}\ignorespaces
+ }%
+ \readbblfile{\jobname}%
+ \egroup
+}
+\def\usebbl/#1 #2 {\isdefined{bbl:#1}%
+ \iftrue \csname bbl:#1\endcsname {#2}\else
+ \opwarning{\string\usebbl/#1 #2 ... the `#1' type undefined}%
+ \fi
+}
+\sdef{bbl:a}#1{\bgroup \readbblfile{#1}\egroup}
+
+\sdef{bbl:b}#1{\bgroup
+ \let\citeI=\relax \xdef\citelist{\citelist\citelistB}%
+ \def\bibitemC##1 ##2\par{%
+ \isinlist\citelist{[##1]}\iftrue \bibitemD{##1}##2\par\fi}%
+ \readbblfile{#1}%
+ \global\let\addcitelist=\writeXcite
+ \egroup
+}
+\sdef{bbl:c}#1{\bgroup
+ \ifx\citelinkA\empty \else
+ \opwarning{\string\nonumcitations: don't use \string\usebbl/c}\fi
+ \let\citeI=\relax \xdef\citelist{\citelist\citelistB}%
+ \def\bibitemC##1 ##2\par{%
+ \isinlist\citelist{[##1]}\iftrue
+ \if^\the\bibmark^\sdef{bb:##1}{\bibitemD{##1}##2\par}%
+ \else \toks0={##2\par}%
+ \edef\tmpa{\noexpand\sdef{bb:##1}{% \the\bibmark have to expand
+ \noexpand\bibitemB[\the\bibmark]{##1}\the\toks0}}\tmpa
+ \fi\fi}%
+ \readbblfile{#1}%
+ \def\bibitemC##1{\bibitemD{##1}}%
+ \def\citeI[##1]{\csname bb:##1\endcsname}\citelist
+ \global\let\addcitelist=\writeXcite
+ \egroup
+}
+\def\Xcite#1{\addto\citelistB{\citeI[#1]}}
+
+\def\usebib{\par \input opmac-bib \usebib}
+
+%%%%%%%%%%%%%% output -- sec. 3.24 in opmac-d.pdf
+
+\output={\begoutput \opmacoutput \endoutput}
+\def\begoutput{%
+ \immediate\wref\Xpage{{\the\pageno}}%
+ \def\nl{ }\def\fnote##1{}\def\fnotemark##1{}%
+ \prephoffset
+}
+\def\endoutput{} \def\prephoffset{}
+
+\def\opmacoutput{%
+ \setbox0=\vbox{\prepghook\ensureblacko{\makeheadline}\pagebody\ensureblacko{\makefootline}}%
+ \pghook \protectlist
+ \shipout\box0 \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+\def\doprotect#1{\let#1=\relax}
+\def\prepage{\def\destheight{25pt}\dest[pg:\pgilabel.\the\pageno]}
+\def\preboxcclv{} \def\postboxcclv{}
+
+{\catcode`\@=11
+\gdef\pagecontents{\prepage % dest of pageno
+ \ifvoid\topins\else\ensureblacko{\unvbox\topins}\fi
+ \preboxcclv
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \postboxcclv
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \ensureblacko{\footnoterule \unvbox\footins}\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi
+}}
+
+\footline={\hss\tenrm\thefontsize[10]\folio\hss}
+
+\newcount\lastpage \lastpage=0 % the last page of the document
+\def\Xpage#1{\lastpage=#1 \fnotenumlocal=0 }
+
+%%%%%%%%%%%%%% margins -- sec. 3.25 in opmac-d.pdf
+
+\newdimen\pgwidth \newdimen\pgheight \pgwidth=0pt
+\newdimen\shiftoffset
+
+\def\margins/#1 #2 (#3,#4,#5,#6)#7 {\def\tmp{#7}%
+ \ifx\tmp\empty
+ \opwarning{\string\margins: missing unit, mm inserted}\def\tmp{mm}\fi
+ \addto\tmp{\relax}%
+ \setpagedimens #2 % setting \pgwidth, \pgheight
+ \ifdim\pgwidth=0pt \else
+ \hoffset=-1\trueunit in \voffset=-1\trueunit in
+ \if$#3$\if$#4$\tmpdim=\pgwidth \advance\tmpdim -\hsize
+ \divide\tmpdim by2 \advance\hoffset \tmpdim % left=right
+ \else \rbmargin\hoffset\hsize{#4\tmp}% only right margin
+ \fi
+ \else \if$#4$\advance\hoffset #3\tmp % only left margin
+ \else \hsize=\pgwidth % left+right margin
+ \advance\hsize -#3\tmp \advance\hsize -#4\tmp
+ \advance\hoffset #3\tmp
+ \fi\fi
+ \if$#5$\if$#6$\tmpdim=\pgheight \advance\tmpdim -\vsize
+ \divide\tmpdim by2 \advance\voffset \tmpdim % top=bottom
+ \else \rbmargin\voffset\vsize{#6\tmp}% only bottom margin
+ \fi
+ \else \if$#6$\advance\voffset #5\tmp % only top margin
+ \else \vsize=\pgheight % top+bottom margin
+ \advance\vsize -#5\tmp \advance\vsize -#6\tmp
+ \advance\voffset #5\tmp
+ \fi\fi
+ \if 1#1\shiftoffset=0pt \def\prephoffset{}\else \if 2#1% double-page layout
+ \shiftoffset=\pgwidth \advance\shiftoffset -\hsize
+ \advance\shiftoffset -2\hoffset \advance\shiftoffset -2in
+ \def\prephoffset{\ifodd\pageno \else \advance\hoffset \shiftoffset \fi}%
+ \else \opwarning{use \string\margins/1 or \string\margins/2}%
+ \fi\fi\fi
+}
+\def\rbmargin#1#2#3{\advance#1\pgwidth \advance#1-#2 \advance#1-#3}
+
+\def\setpagedimens{\isnextchar({\setpagedimensB}{\setpagedimensA}}
+\def\setpagedimensA#1 {\isdefined{pgs:#1}\iftrue
+ \expandafter\expandafter\expandafter\setpagedimensB \csname pgs:#1\expandafter\endcsname\space
+ \else \opwarning{page specification "#1" is undefined}\fi}
+\def\setpagedimensB (#1,#2)#3 {\setpagedimensC\pgwidth=#1:#3 \setpagedimensC\pgheight=#2:#3
+ \ifx\pdfpagewidth\undefined \else
+ \pdfpagewidth=\pgwidth \pdfpageheight=\pgheight \fi}
+\def\setpagedimensC #1=#2:#3 {#1=#2\ifx^#3^\tmp\else#3\fi\relax\truedimen#1}
+
+\sdef{pgs:a3}{(297,420)mm} \sdef{pgs:a4}{(210,297)mm} \sdef{pgs:a5}{(148,210)mm}
+\sdef{pgs:a3l}{(420,297)mm} \sdef{pgs:a4l}{(297,210)mm} \sdef{pgs:a5l}{(210,148)mm}
+\sdef{pgs:b5}{(176,250)mm} \sdef{pgs:letter}{(8.5,11)in}
+
+\def\trueunit{}
+\def\magscale[#1]{\mag=#1\def\trueunit{true}%
+ \ifdim\pgwidth=0pt \else \truedimen\pgwidth \truedimen\pgheight \fi
+ \ifx\pdfpagewidth\undefined \else
+ \truedimen\pdfpagewidth \truedimen\pdfpageheight
+ \ifx\pdfhorigin\undefined\else
+ \pdfhorigin=1truein \pdfvorigin=1truein % Origin is independent off \mag
+ \fi\fi}
+\def\truedimen#1{\ifx\trueunit\empty \else#1=\expandafter\ignorept\the#1truept \fi}
+
+%%%%%%%%%%%%%% XeTeX specific + REF file is read now -- sec 3.26 in opmac-d.pdf
+
+\ifx\XeTeXversion\undefined \else \pdftexfalse \input opmac-xetex \fi
+\ifx\pdfextension\undefined \else \input opmac-luatex \fi
+\inputref
+\endinput
+
+%%%%%%%%%%%%%% History of versions:
+
+beta (a) Nov. 2012 ... first released version.
+Dec. 2012 first stable version
+Jan. 2013 \parfillskip in \caption corrected.
+ \athetnum, \captionhook introduced.
+ \nobreak in \tocline corrected, \tocdotfill corrected.
+ New \url, \urlcolor implicitly defined as \empty.
+ \bibitem by \hangindent, \afteritcorr in \em
+ \bslash introduced
+ \toclinehook \mnotehook, \mnoteskip introduced.
+ \global\advance in \caption corrected.
+ \thechapnum is without the dot.
+Feb. 2013 \urllink: works with \\, \%, \#, \$, \{, \}.
+ \localcolor, \longlocalcolor introduced
+ \global\advance for chap./sec. nums corrected
+ \printcaption introduced
+Apr. 2013 \table in \table allowed, \catcode`\|=12 set in \table.
+ \printsec(c): \ifnum\lastpenalty added.
+ \urlink: ``~ removing'' corrected
+ {\em text}\macro error corrected.
+May 2013 \margins (2pages laylout) can be redefined by new \margins
+ \outlines use \pdfcatalog{/PageMode/UseOutlines}
+Jul. 2013 \fnotetext unwanted space - corrected
+ \picw=0pt prints picture in natural size, \picheight introduced
+ \isinlist corrected,
+ \othe\secnum in \secc removed
+ \dotocnum, \remskip, \reminsert introduced
+ \nonum, \notoc implemented
+ \destheight introduced as macro
+ \runningfnotes introduced
+ \addto defined as \long
+ \iiskip, \ttskip, \bibskip precedes by \par
+Aug. 2013 \dgsize corrected
+ \ifx\tmpa\tmpb in \printiiA is realized via \meaning
+ \ignorespaces included to \iis
+ \url hidden in group, in order to handle & in tables
+ \destheight rewritten as a dimen register
+ \rightskip, \leftskip corrected in \mnote
+ space corrected in \prepii
+ \input ams-math only if \normalmath is \undefined (released)
+Sep. 2013 \label: the ``duplicated label'' test added
+ \afternoindent: \box0 -> \box7
+ \scantabdata: \if#1| -> \ifx|#1
+ \fixmnotes recoded
+ \, uses \thinspace and it is \addprotected
+ \pdfliteral instead \special{PDF:...} used
+ XeTeX specific added
+ \draft, \insertoulines recoded
+ \endinsert redefined (\par added)
+ \addprotect\exfont (for exchars.tex cooperating)
+ \ulink improved and added to opmac-u
+ \postboxcclv: {\advancepageno} corrected
+Oct. 2013 /Border .6
+ better \adef
+ \typobase introduced
+ \typoscale[20000/] ``too large dimension'' ... solved
+ \activettchar reimplemented
+Nov. 2013 \Xpage: \ifnum\lastpage=#1 \else inserted
+ \frame is defined as \long
+ multilanuage: cz -> cs changed (by ISO 639-1)
+ \cr -> \crcr in \crl, \crll and \crli
+ \doverbinput: \ifeof\vifile added (bug ``empty line at EOF'' corrected)
+ eTeX support for multilang added.
+Feb. 2014 \sortcitations introduced, internal macros of \cite rewritten
+Mar. 2014 \frame: \setbox0=\hbox{{#1}} in order to \aftergroup in #1
+ \mnote: \pdfsave,\pdfrestore inserted, \mnote colors rewritten
+Apr. 2014 \nonumcitations, \ecite, \printbib, \lastbibnum introduced
+ \wbib, \citelink rewritten (more parameters now)
+ \destheight rewritten as macro, sorry
+ \fnotehook introduced
+Apr. 2014b \nocite[*] bug removed, \insertmark corrected
+Apr. 2014c nowarn about old csplain if csplain isn't used
+May 2014 \hyphenchar\urlfont=-1, \urlspecchar introduced
+May 2014b \linkactive introduced (bug fixing)
+May 2014c \maybebreak introduced
+May 2014d \seccfont bug fixed
+ \tabstrut inserted to each column in the \table
+Jun 2014 \opwarning about missing .bbl file rewritten.
+ more robust \replacestrings
+Jun. 2014a \mnoteC: default base mnote color set as current
+Jun. 2014b \footline: \the\pageno replaced by \folio
+ ? instead \/ in \replacestrings
+Jun. 2014c \pgfolioA, \pgfolioB introduced
+ \Xindexg introduced
+Jul. 2014 \bgroup -> \begingroup in \adef
+Aug. 2014 \parskip=0pt in \begtt ...\endtt
+ \addtabdata: redundant \expandafter removed
+Sep. 2014 \bib [...] = {...} space before = is now optional
+ \nbpar in \caption
+ \replacestrings: reduced by 3\expandafter
+ \isnextchar, \isinlist prefixed as \long
+ \testparA uses \romannumeral trick now.
+Oct. 2014 \pdfborder corrected: /Border [0 0 0] set for AR users.
+Nov. 2014 \sortingdata corrected, \specsortingdata introduced.
+ \replacestrings uses \replacestringsA instead \tmp
+ \bfshape used in \titfont and \Xchap
+ \adef{ }{\ } in verbatim environment (instead \adef{ }{ }).
+ \fnotemark+\fnotetext+\runningfnotes bug fixed.
+ \flushcolumns, \iiparams removed, \mullines introduced.
+Dec. 2014 Color features rewritten using \pdfcolorstack.
+ Unwanted spaces in \dosorting removed.
+ Better definition of \frame.
+ \margins/\setpagedimens improved, \isnextchar: \bgroup\egroup added.
+Apr. 2015 \wtotoc, \Xtoc, \tocilabel, \pgilabel introduced.
+ \outlinesC introduced
+ \setpagedimensC corrected: \truedimen
+ \opwarnig about missing \hyperlinks in \outlines added.
+ \fnotetext: \fnotehook inserted (bug fixing)
+May 2015 \itemhook introduced
+ \REFversion introduced
+ \prepghook introduced, \draft redefined using \prepghook
+ \mnote, \fnote redeclared as \long
+Jun 2015 \urlfont: \hyphenchar=-1 removed (bug fixed)
+ \mnote: \nobreak after \wref added (bug fixed)
+ csbxti10 -> cmbxti10, corrected for non-csplain users
+ default \ulink: \leavevmode added (bug fixed)
+Jul. 2015 \openref: \def\wref -> \gdef\wref (bug fixed)
+ \margins/2: \prephoffset introduced (bug fixed)
+ \hyperlinks when non-pdftex prints warning
+Sep. 2015 \sortingdata<iso-code> introduced, \isolangset introduced.
+ \toasciidata<iso-code> introduced.
+ \dosorting: local \iisort changes.
+Oct. 2015 \printttline, \ptthook introduced, \viprintline redesigned.
+ \everypar\expandafter{\the\everypar...} in \begtt, \doverbinput.
+Nov. 2015 \parskip=0 in \doverbinput, \vskip\parskip before first \ttskip
+ \addto\prepghook instead \def\prepghook in \draft
+ \mnote: ifvmode \hbox{\strut...} added
+Jan. 2016 \inspicpage introduced
+ \isolangset: \chardef..Patt added
+Mar. 2016 \thefnote default changed: ^{num}) -> ^{num}
+Apr. 2016 \frame: redundant group removed
+ \isnextchar improved (using \toks)
+ \eoldef introduced to \tit, \chap, \sec, \secc, see OPmac trick 0121
+ \input opmac-luatex.tex introduced
+ \slet introduced
+ \fontfam introduced, \usebib as module loaded
+May 2016 \replacestrings improved
+ \bfshape: \everymath={\boldmath} instead \boldmath directly
+ \tskip corrected
+Jun 2016 \thefontsize: \fontdim=#1\ptunit added.
+ \pdfhvorigin unknown in XeTeX, bug fixed
+Jun 2017 \begingroup...\endgroup trick introduced in \isinlist
+ \table: repeating and p declarator added,
+ \colnum=0 in table corrected (cor cases table in table)
+ \mspan added
+ \fnotetext: \everypar={} added (bug correction)
+Mar. 2018 \frame: \relax after \kern\hhkern added (bug correction)
+Mar. 2018a \uv defined as \long
+May 2018 \chap: \edef\thesecnum added (J. Sustek)
+ \printchap: \vfill\supereject instead \vfil\break
+ \link: argument in group in both: \hyperlinks on/off (J. Sustek)
+Aug. 2018 \wlabel: \protectlist added.
+ \Xlabel: \sxdef{lab:#1} changed to \sdef (J. Sustek)
+
+%%%%%%%%%%%%%% End of opmac.tex
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_hebrew.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_hebrew.mac
new file mode 100644
index 0000000000..110d26c154
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_hebrew.mac
@@ -0,0 +1,127 @@
+% [unicode_hebrew.mac]
+
+ %%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%
+
+
+% CONSONANTS WITHOUT DAGESH (on basic list: unicode 0059 --- 05FF)
+% Note: the basic consonants start with 0, those with dagesh start with F
+% On each page the vertical order in a column is ABJED, just copy from set
+% above and change last number (SAME FOR BOTH)
+%
+%%%%%%%%%%%%%% ALEPH + AYIN %%%%%%%%%
+\def\'{\char"05D0} % ALEPF YES IT ACCEPTS \'
+\def\`{\char"05E2} % AYIN, YES IT ACCEPTS \`
+
+%%%%%%%%%%%%%% TET + TAV %%%%%%%%%
+% I changed to d for consistency with shin, ts
+% I use d for SOFFIT \s + \sd
+\def\t{\char"05D8} % tet it does not like .t
+\def\td{\char"FB38} % tet with DAGESH
+
+\def\T{\char"FB4A} % tav USE CAP T
+
+%%%%%%%%%%%%%% SAMECH + SAV %%%%%%%%%
+\def\s{\char"05E1} % samech it does not like .s
+\def\sd{\char"FB41} % samech with DAGESH
+
+\def\S{\char"05EA} % SAV
+
+%%%%%%%%%%%%%% SIN = SI / SHIN = SH %%%%%%%%%
+\def\si{\char"FB2B}
+\def\sid{\char"FB2D}
+
+\def\sh{\char"FB2A}
+\def\shd{\char"FB2C}
+
+\def\splain{\char"05E9} % the sin/shin form without a dot
+
+%%%%%%%%%%%%%% TSADE = \ts %%%%%%%%%
+\def\ts{\char"05E6}
+\def\tsd{\char"FB46} % dagish
+\def\tss{\char"05E5} % tsade sofit
+
+
+%%%%%%%%%%%%% NON-PROBLEM LETTERS %%%%%%%%%%%%
+% 05D/E*(basic) / FB3/4*(dagesh) come inוְאָמַרְתָּ אֲלֵהֶם pairs
+% I double for dagesh \g + \gg
+% I add s for soffit \khs
+
+\def\b{\char"FB31} % DAGESH
+\def\v{\char"05D1}
+\def\g{\char"05D2}
+\def\gd{\char"FB32} % DAGESH
+\def\d{\char"05D3}
+\def\dd{\char"FB33} % DAGESH
+\def\h{\char"05D4}
+\def\hd{\char"FB34} % DAGESH at end to endicate masculine possesive
+\def\w{\char"05D5}
+\def\wd{\char"FB35} % DAGESH, sometimes need \ww when have \ww\o\
+\def\z{\char"05D6}
+\def\zd{\char"FB36} % DAGESH
+\def\ch{\char"05D7} % apparently no chet with dagesh
+% TET = \t above
+
+\def\y{\char"05D9} % yod
+\def\yd{\char"FB39} % yod DAGESH
+\def\ydee{\char"FB39\char"05B4} % yod-dagesj+ee THIS ONE GIVES GOOD RESULTS
+
+\def\k{\char"FB3B} % Kaf
+\def\kh{\char"05DB} % KHaf
+\def\khs{\char"05DA} % khaf SOFIT
+% Note: \khs\e gives khaf SOFIT with sheva, there is no symbol for khaf soffit with sheva
+
+\def\l{\char"05DC} % lamed
+\def\ld{\char"FB3C} % DAGESH Do It Yourself Tex
+\def\m{\char"05DE} % mem
+\def\md{\char"FB3E} % DAGESH
+\def\ms{\char"05DD} % SOFFIT
+\def\n{\char"05E0}
+
+\def\nd{\char"FB40} % DAGESH
+\def\ns{\char"05DF} % SOFFIT
+
+\def\f{\char"05E4} % fe
+\def\p{\char"FB44} % pe
+\def\fs{\char"05E3} % fe SOFIT
+% \fs\e gives fe SOFIT with sheva, , there is no symbol for fe soffit with sheva
+
+% TSADE ABOVE
+
+\def\q{\char"05E7} % QOF conflict with \q = quad so I elimanted
+\def\qd{\char"FB47} % QOF with dagesh
+
+\def\r{\char"05E8} % it does not like .t
+% \def\rd{\char"FB48} % with DAGESH does not exist says weinberg
+% I found this, but not in any of my fonts
+%\def\pinwheelstar{\char"1F7C3}
+
+% SIN + SHIN ABOVE
+
+% VOWEL SYMBOLS % (on basic list: unicode 0059
+%
+\def\e{\char"05B0} % SHEVA XX DID NOT ACCEPT \def\:
+\def\ee{\char"05B4} %hEEriq% CONSONANT+VOWEL COMBINATIONS
+\def\eh{\char"05B6}
+\def\ei{\char"05B5} % tzerEI
+\def\a{\char"05B7}
+\def\A{\char"05B8}
+\def\o{\char"05B9}
+\def\O{\char"FB4B} % plene hOlom
+\def\u{\char"05BB}
+\def\U{\char"FB35} % plene identical with \ww (sometimes need)
+
+
+ % special characters
+%
+\def\qere{\char"05AF}
+\def\maqaf{\char"05BE} % to split lines
+\def\sofpasuk{\char"05C3}
+%
+% \vt = verb type, used with verb category definition e.g. \p\vt\ns for pe"nun verbs
+\def\vt{\kern -3pt\RL{\lower 2.5pt\hbox{\Th\rmseventeen\char"02DD}}} % \kern -0.1pt
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_latin.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_latin.mac
new file mode 100755
index 0000000000..f7cc105385
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/RIGHT-to-LEFT-LANGUAGES/unicode_latin.mac
@@ -0,0 +1,73 @@
+% [unicode_latin.mac]
+% there is now a [unicode_hebrew.mac]
+
+% What is the purpose of this as type French anyway? [2018.09.12]
+% maybe it was so that I could finish the CW book with the graphs that had codes
+%
+% 2018.10.31 this is very useful in replacing charabia in German where I had \u etc
+
+
+% NO! NOI! GREAT IN PRINCIPLE. BUT I FORGOT AND WASTED 30 MINUTES WITH \BSL
+% KEEP ONLY ALPHANUMERIC HERE
+% 2017.12.26 taken from [format.mac] (was not in [fonts.mac])
+% replace all the Cork with UNICODE
+%
+% ====) anything defined by unicode in [format_XETEX.mac]
+% has been moved here. that way can change and check more easily.
+% quotation marks and apostrophes are located there.
+
+%
+
+
+% g = grave; a = aigu; c = circumflex
+% THESE NEED SPACE AFTER! lc uc
+\def\ge{\char"00E8} % g = GRAVE columns 00E & 00C 00F & 00D
+\def\gE{\char"00C8}
+\def\ga{\char"00E0}%%%%%%%%%%% OBLIQUE %%%%%%%%%%
+\def\gA{\char"00C0}
+\def\go{\char"00F2}
+\def\gO{\char"00D2}
+\def\gu{\char"00F9}
+\def\gU{\char"00D9}
+%
+\def\ae{\char"00E9} % a =AIGUE only two letters with aigu
+\def\aE{\char"00C9}
+%
+\def\ce{\char"00EA} % c = CIRCUMFLEX
+\def\cE{\char"00CA}
+\def\ca{\char"00E2}
+\def\cA{\char"00C2}
+\def\cu{\char"00FB}
+\def\cU{\char"00DB}
+\def\ci{\char"00EE}
+\def\cI{\char"00CE}
+\def\co{\char"00F4}
+\def\cO{\char"00D4}
+%
+\def\ue{\char"00EB} % c = umlaut/trema
+\def\uE{\char"00CB}
+\def\ua{\char"00E4}
+\def\uA{\char"00C4}
+\def\uo{\char"00F6}
+\def\uO{\char"00D6}
+\def\uu{\char"00FC}
+\def\uU{\char"00DC}
+\def\ui{\char"00EF} % yes for Mo\ui se
+\def\uI{\char"00CF}
+
+\def\cc{\char"00E7}
+\def\cC{\char"00C7}
+
+\def\ajoine{\char"00E6} % I used \ae above for grave
+\def\AjoinE{\char"00C6}
+
+\def\ss{\char"00DF}
+
+
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/additional.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/additional.mac
new file mode 100644
index 0000000000..32870db4fa
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/additional.mac
@@ -0,0 +1,48 @@
+% [additional.mac]
+
+% 1. printdate
+% 2. ragged left (used in typesetting RIGHT to LEFT languages)
+%
+
+
+% %%%%%%%%%%%%%%%%%%%% PRINTDATE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% MACRO: for printing the date on preliminary versions
+\def\printdate{
+%
+\count255 = \year
+\count254 = \month
+\count253 = \day
+%
+\count252 =\time % from midnight
+\count251 = \count252 % copy: from midnight
+\divide \count252 by 60 % integer hours from midnight
+\count250 = \count252 % print: integer hours from midnight
+\count249 = \count252 % use to multiply by 60
+\multiply\count249 by 60 % whole hour minutes from midnight
+\advance\count251 by -\count249
+\count249 = \count251 % print: integer minutes after hour
+{\tt This text was printed:\quad
+%
+DATE:\hskip 1.5pt \number\count255.\number\count254.\number\count253\quad
+%
+TIME:\hskip 1.5pt \number\count250:\hskip 1.5pt \number\count249
+\vskip 1truecm
+} % end \tt10000
+} % end \def
+% END OF \printdate
+
+
+% %%%%%%%%%%%%%%%%%%%% \RAGGEDLEFT % %%%%%%%%%%%%%%%%%%%%
+% Answer to my question on Tex Exchange by Marcel Krüger
+
+\def\raggedleft{
+% if make =0.2 not wide enough, this goes into left margin
+% \kern -12pt moves to right, but not uniform do in text
+\leftskip = -0.0cm plus 4em %\rightskip absolutely need plus 4em
+\spaceskip = .3333em % these two are pg 107 eh?
+\xspaceskip = .5em
+\parfillskip = 0pt
+\relax % stops \TeX from doing other things such as adding bits
+\noindent}
+%
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/ancestors.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/ancestors.mac
new file mode 100644
index 0000000000..ddb5e2e3e4
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/ancestors.mac
@@ -0,0 +1,42 @@
+% [ancestors.mac]
+% These shortcuts saved a LOT of typing and avoided MANY mistakes in
+% my genealogical texts
+% Below are the partial contents to show the schema
+
+%
+% contains abbreviations for the names of ancestors and their town
+% 7 groups. in each names first, then towns
+% names = 2 lettres towns = 3 letters
+
+% the hyphenation is indicated in the individual definitions
+
+
+%%%%%%%%%%% Grandparents / Great-Grandparents %%%%%%%%%%%%%%%
+\def\gp{Grandparents}
+\def\ggp{Great-Grandparents}
+\def\gm{Grandmother}
+\def\ggm{Great-Grandmother}
+\def\gf{Grandfather}
+\def\ggf{Great-Grandfather}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\atd{autour de{ }} % shortcut used with dates
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% group 1: Frankenberg group/ common
+\def\ka{Katzenstein}
+\def\aka{Abraham Katz\-en\-stein} .
+\def\mk{Manus Katz\-en\-stein}
+%
+\def\mx{Marx}
+\def\k-s{Katz-Stiefel} % \ks = Koppel Sommer
+\def\amx{Amalie Marx}
+%
+\def\fnau{Fran\-ken\-au}
+\def\fbrg{Fran\-ken\-berg}
+\def\gru{Gr\uu sen}
+
+% etc groups 2 ... 7
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.pdf b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.pdf
new file mode 100644
index 0000000000..f0d33ea305
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.tex
new file mode 100644
index 0000000000..9ff6fb4650
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/calling-glyphs.tex
@@ -0,0 +1,188 @@
+% [calling_glyphs.tex]
+
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+% These macro files are explained in more detail at the top of each file. Here I have
+% a brief indication of the content.
+
+\input format_XETEX.mac
+ % spacing, special symbols ...
+\input unicode_latin.mac
+ % French and German accented letters
+\input macros.mac
+ % information boxes, special formats
+\input ancestors.mac
+ % abbreviations used in my genealogical texts !!
+\input additional.mac % \printdate+ \raggedleft (for right to left)
+%
+\input petr_olsak.mac
+ % Petr Olsak's collection of pure Tex macros: tables, marginal notes ..
+%
+% ===> have to put [my_fonts.mac] AFTER [petr_olsak.mac] which redefines \rm
+\input my_fonts.mac
+ % different fonts at various sizes; e.g \bftwenty
+ % PSTRICKS is used for importing images
+ % there is a form after \bye
+ % the shell file [photos2eps] (in the directory SHELL_FILES)
+ % will convert all your .jpg and .png files to .eps
+
+% see [pstricks_examples.tex] for the use of these inputs
+\input pstricks % need for centring
+\input epsf % need for importing eps
+
+\input color % this is part of David Carlisle's "graph­ics-pln" package (available at CTAN)
+ %.allows typesetting text in colour.
+%%%%%%%%%%%%%%%% END XETEX INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein % !!
+\pdfpagewidth= 8.5truein %!!
+
+\vsize = 8.50 in %!!
+{\hsize = 5.94 in %!!
+
+\voffset = 0.5 truecm %!!
+\hoffset = 0.70truecm %!!
+
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+% =======> 3 CHANGES TO MAKE <=========
+
+ \nopagenumbers
+
+
+%%%%%%%%%%%%%%%%%%%% END FOOTER AND HEADER %%%%%%%%%%%%%%%%%%%%%
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+%
+ {\rm % !! 12.5pt I like a larger font, defined in [my_fonts.mac]
+%
+%
+{\verysmall . } % !! 0.1pt used to move text up via \vskip -20pt\nin !!
+%
+\vskip -20pt\nin % \nin = \noindent, see [format_XETEX.mac]
+%
+\centerline{\bftwenty Calling glyphs}
+\mni
+There are {\it two\/} ways of calling glyphs:
+\sni
+\item{} Via the \bsl char" notation.
+\mni
+\item{} Via the \bsl \^{ }\^{ }\^{ }\^{ } notation.
+\mni
+I prefer the first because it is similar to the \bsl char defintion used with the Cork conventions. I suggest
+{\it not\/} mixing the two methods.
+\mni
+Here are three examples, all taken from the Libertine table \(contained in the directory FONTS+UNICODE\),
+\mni
+\item{1.} The letter e with a circumflex:\Th \char"00EA .
+\sni
+\itemitem{} This lettter is on page 2 of the table and the Unicode number is 00EA.
+\sni
+\itemitem{} Since we want to use \bsl ce as a short cut \(see \[unicode\unl latin.mac\]\) we write:
+\sni
+\centreline{\bsl def\th \bsl ce\th \lbr \bsl char"00EA\th\rbr}
+\sni
+\itemitem{} Here is a test: \bsl ce \EA \ce.
+\bni
+\item{2.} The Hebrew letter dalet:\Th \char"05D3.
+\sni
+\itemitem{} One way of finding the Unicode code value is to go to the Unicode site:
+\sni
+\centreline{\tteleven http://www.unicode.org/charts/}
+\sni
+\itemitem{} We find that the dalet has the code 05D3 and we check to see if the Libertine font has
+this character. It does, and is to be found on page 10 of the Libertine table.
+\sni
+\itemitem{} Since we want to use \bsl d as a short cut \(see \[unicode\unl hebrew.mac\]\) we write:
+\sni
+\centreline{ \bsl def\th \bsl d\th \lbr \bsl char"05D3\th\rbr }
+\sni
+\itemitem{} {\bf An important point}: Since I am using the Libertine font, I enlarge the letter by using my {\it Libertine font
+command\/} {\bf \bsl bfsixteen}. Similarly if I am using a font whose aim is to produce a certain Hebrew form \(e.g. the SBL font\)
+then if I type a number, without changing back to Libertine, the number might not match with the rest of the Libertine text.
+\sni
+\itemitem{} Here is a test with \bsl bfsixteen: \bsl d \EA {\bfsixteen\char"05D3}.
+\mni
+\itemitem{}
+[N.B. Hebrew is part of plane 0, referred to as the {\it Basic Multilingual Plane \(BMP\)\/}, see:
+{\tteleven https://unicode.org/roadmaps/bmp/}\].
+\bni
+\item{3.} A symbol found in the \lq Private Use Area\rq of Libertine.
+\sni
+\itemitem{}Unicode provides the block on the BMP going from E000 to F8FF for private use. This
+means the Unicode organization does not specify what should go in here, so that the font creators can put
+whatever they want. On page 34 of the Libetine tables I found an interesting looking image at the code point
+E001.
+\sni
+\itemitem{} To use this image, we write:
+\sni
+\centreline{ \bsl def\th \bsl imageE00A\th \lbr \bsl char"E001\th\rbr}
+\sni
+\itemitem{} Here is a test with \bsl bftwenty: \bsl imageE001 \EA {\bftwenty\char"E001}.
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % KEEP THIS ENDING!!!
+\vfill\eject
+%%
+ \par} % end \rm
+ \par} % ends \hsize
+ \bye
+
+
+
+% PSTRICKS FORM
+ \centerline{\epsfxsize =
+7.0truecm\epsfbox{linlibertine_R_[E128-square].eps}}
+%
+\vskip 35truept
+%
+\item{2b.} The reason for 2a is that the glyph for Libertine in
+[libertinedokulatex.pdf] (2009) is
+not in the correct position, according to the table generated by {\tt
+fntsample} the position---in the private use portion---is
+E00A:\quad \EA \char"E00A.
+\mni
+\item{3.} on page 38 (large manual) there are stacked "w"s with the designation
+% \EA will not work need to define via unicode
+"uni02AC": \bsl char"02AC \EA \char"02AC. Moral: if it has "uni" in
+front one can use the \bsl char"[unicode] notation.
+\mni
+\item{4.} afii57667 is supposed to be "dalet". How do you call? what is this
+table?
+\sni
+\item{}Answer: use the table generated by {\tt fntsample} which gives the
+unicode number (see item 2): dalet is 05D3 \EA \char"05D3
+
+
+%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%%%
+%
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centerline{}
+%
+\vskip 0.7cm\nin
+%
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/chevalier_de_la_croix_rouge.jpg b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/chevalier_de_la_croix_rouge.jpg
new file mode 100644
index 0000000000..08b6c58deb
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/chevalier_de_la_croix_rouge.jpg
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/color.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/color.tex
new file mode 100644
index 0000000000..8516d46e4d
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/color.tex
@@ -0,0 +1,16 @@
+
+% [color.tex]
+% downloaded 2019.01 from:
+% https://github.com/davidcarlisle/dpctex/blob/master/graphics-pln/color.tex
+
+%%%%%%%%%%%%%%%%%%% verbatim copy of the github file %%%%%%%%%%%%
+
+% Plain TeX interface to color package.
+% David Carlisle
+
+\input miniltx
+
+\def\Gin@driver{dvips.def}
+\input color.sty
+
+\resetatcatcode
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.pdf b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.pdf
new file mode 100644
index 0000000000..345c637bed
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.tex
new file mode 100644
index 0000000000..2834810242
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/font-size.tex
@@ -0,0 +1,161 @@
+% [font_size.tex]
+% < [FORM_PLAIN_[xetex].tex
+
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+% These macro files are explained in more detail at the top of each file. Here I have
+% a brief indication of the content.
+
+\input format_XETEX.mac
+ % spacing, special symbols ...
+\input unicode_latin.mac
+ % French and German accented letters
+\input macros.mac
+ % information boxes, special formats
+\input ancestors.mac
+ % abbreviations used in my genealogical texts !!
+\input additional.mac % \printdate+ \raggedleft (for right to left)
+%
+\input petr_olsak.mac
+ % Petr Olsak's collection of pure Tex macros: tables, marginal notes ..
+%
+% ===> have to put [my_fonts.mac] AFTER [petr_olsak.mac] which redefines \rm
+\input my_fonts.mac
+ % different fonts at various sizes; e.g \bftwenty
+ % PSTRICKS is used for importing images
+ % there is a form after \bye
+ % the shell file [photos2eps] (in the directory SHELL_FILES)
+ % will convert all your .jpg and .png files to .eps
+
+% see [pstricks_examples.tex] for the use of these inputs
+\input pstricks % need for centring
+\input epsf % need for importing eps
+
+\input color % this is part of David Carlisle's "graph­ics-pln" package (available at CTAN)
+ %.allows typesetting text in colour.
+%%%%%%%%%%%%%%%% END XETEX INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%\setbox0 \hbox{\phantom{$\Bigl[$}}
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein % !!
+\pdfpagewidth= 8.5truein %!!
+
+\vsize = 8.50 in %!!
+{\hsize = 5.94 in %!!
+
+\voffset = 0.5 truecm %!!
+\hoffset = 0.70truecm %!!
+
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+
+ \nopagenumbers
+
+%%%%%%%%%%%%%%%%%%%% END FOOTER AND HEADER %%%%%%%%%%%%%%%%%%%%%
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+%
+ {\rm % !! 12.5pt I like a larger font, defined in [my_fonts.mac]
+%
+%
+{\verysmall . } % !! 0.1pt used to move text up via \vskip -20pt\nin !!
+%
+\vskip -20pt\nin % \nin = \noindent, see [format_XETEX.mac]
+%
+\centerline{\bftwenty font\unl size.tex} % defined in [my_fonts.mac]
+%
+\mni %
+When we speak of the point size of a classical \(i.e. engraved in metal\) this is a nominal value. Each character will have a different
+combination of {\it height\/} \(total distance above the base line\), {\it depth\/} \(total distance below the base line\) and
+ {\it width\/}. Similarly in \TeX\ if we write:
+\sni
+\bsl font\bsl bffourteen = \[\dots \fsl MY-FONTS\fsl LinLibertineRB.otf\] at 14.0 pt
+\sni
+then 14.0 points is the nominal size. In \TeX\ we can precisely determine the above values by looking at the
+{\it bounding box\/} of a letter. We do this by placing the letter, or letters, in a hbox and the using the
+command \bsl the as applied to the \bsl ht, \bsl dp and \bsl wd of the box
+%
+\mni
+Suppose that we are interested in the letter \lq g\rq, which dips below the baseline. The text is set via \bsl rm at a nominal
+point size of 12.5 points.
+
+\sni
+We first write:
+\sni
+\bsl setbox0 \bsl hbox\gl\lbr\gl g \rbr,
+\sni
+and then deter
+\sni
+mine the values as follows:
+\sni
+height = \bsl the\bsl ht0
+\sni
+depth = \bsl the\bsl dp0
+\sni
+width = \bsl the\bsl wd0
+\mni
+if we now run Xe\TeX\ we obtain:
+\mni
+%
+\setbox0 \hbox{g}
+%
+\centreline{
+height = \the\ht0,\qq
+depth = \the\dp0,\qq
+width = \the\wd0
+ }
+\bni
+We can also obtain the {\it maximum\/} range for a given nominal point size by placing the entire alphabet inside
+a hbox:
+\mni
+\bsl setbox1 \bsl hbox\gl\lbr\gl abcdefghijklmnopqrstuvwxyz \rbr
+\mni
+\setbox1 \hbox{abcdefghijklmnopqrstuvwxyz}
+\sni
+\centreline{
+height = \the\ht1,\qq
+depth = \the\dp1,\qq
+width = \the\wd1
+ }
+\mni
+We note that if add the values of height and depth we obtain a value of about 11.7 points, which is below the nominal
+value of 12.5 points.
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % KEEP THIS ENDING!!! had when needed headers
+\vfill\eject
+%%
+ } % ends roman
+ \par} % ends \hsize
+ \bye
+
+%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%%%
+%
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centerline{}
+%
+\vskip 0.7cm\nin
+%
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/format_XETEX.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/format_XETEX.mac
new file mode 100644
index 0000000000..bda1b30645
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/format_XETEX.mac
@@ -0,0 +1,227 @@
+% [format_XETEX.mac]
+
+% Note, for example, that using \def\lb{\char"007B} for left braces (instead of $\($ )
+% produces a size which corresponds to the font being used.
+% The same philosopy is applied elsewhere in this list
+
+
+%%%%%%%%%%%% FIXED VERTICAL DISTANCES (increasing order)
+% I do not bother with the glue as I change distances via \vskip if not correct
+
+\def\pni{\par\noindent}
+\def\pin{\par\indent}
+
+% \smallskip = 3pt; I want a little more
+\def\sni{\vskip 4truept\noindent}
+\def\sin{\vskip 4truept\indent}
+
+% \medskip = 6pt; I want a little more
+\def\mni{\vskip 8 truept\noindent}
+\def\min{\vskip 8 truept\indent}
+
+% \bigskip is 12pt
+\def\bni{\vskip 12truept\noindent}
+\def\bin{\vskip 12truept\indent}
+
+\def\nin{\noindent}
+
+\def\centreline{\centerline} % Canadian spelling which I naturally tend to write
+
+%%%%%%%%%%%% FIXED HORIZONTAL DISTANCES (increasing order)
+%
+\def\gl{\hglue 1.0pt} % gl = GLUE , does not break
+\def\th{\hskip 1.5pt} % = approx \thinspace GLUE
+\def\thh{\hskip 2.25pt} % between \th and Th
+
+% just like \big and \Big
+\def\Th{\hskip 3.0pt} % = \jot
+\def\TH{\hskip 4.0pt}
+
+% just like \big and \Big
+\def\en{\enspace} % \hskip 5pt BREAKS
+\def\En{\enspace} % \hskip 6pt BREAKS
+\def\EN{\enspace} % \hskip 7pt BREAKS
+
+% conflicts with Hebrew qof, so use \quad with Hebrew
+% and comment out this next line
+\def\q{\quad} % \hskip 10pt BREAKS
+\def\qq{\qquad} % \hskip 20pt BREAKS
+
+%%%%%%%%%%%% SLASHES %%%%%%%%%%%
+\def\bsl{\char"005C\gl}
+
+\def\fsl{\hskip 1.8pt/\hskip 1.5pt} % was 2.5pt
+
+%%%%%%%%%%%% SPECIAL INDENTS + SQUEEZE %%%%%%%%%%%
+\def\bibl{\mni\hangindent=\parindent\noindent}
+\def\bib{\mni\hangindent=\parindent\noindent}
+
+% USAGE: \squeeze{\spaceskip = 1.5pt proud, shallow, ....}
+\def\squeeze{\hbox to \hsize }
+
+%%%%%%%%%%%% UNDERBAR IN FILE TITLE %%%%%%%%%%%
+\def\un{\kern -0.85pt \gl\_\gl }
+\def\unl{\kern -0.85pt \gl\_\gl }
+
+%%%%%%%%%%% TIRET + DOTS + GUILLEMETS + ANGLE BRACKETS %%%%%%%%%%
+\def\tiret{\Th--\Th}
+
+\def\dots{\th{\rmfourteen ...}\th} % OK DO NOT PUT A PERIOD
+
+\def\lgui{{\rmsixteen\char"00AB\kern -1pt}} % ««
+\def\rgui{{\gl \rmsixteen\char"00BB}} % »»
+
+\def\<{\gl{\rmsixteen\char"003C\gl}} % <
+\def\>{{\gl\rmsixteen\char"003E}\gl} % >
+
+%%%%%%%%%%%% BRACES two choices %%%%%%%%%%%
+\def\lb{\char"007B} % left braces
+\def\lbr{\char"007B} % left braces
+
+\def\rb{\char"007D}% right braces
+\def\rbr{\char"007D } % right braces
+
+%%%%%%%%%%% BRACKETS + PARENTHESIS Use inside italics %%%%%%%%%%
+
+\def\[{{\rm \char"005B\gl}} % [ Use inside italics
+\def\]{{\rm \gl \char"005D}} % ] Use inside italics
+\def\({{\rm \char"0028\gl}} % [ Use inside italics
+\def\){{\rm \gl \char"0029}}
+
+%%%%%%%%%%% QUOTATION MARKS + APOSTROPHE %%%%%%%%%%
+% eloquent quotations
+\def\lq{\char"201C\kern -0.1pt}
+\def\rq{\char"201D} % NEEDS CLOSING
+
+\def\"{\char"0022} % plain quotation
+
+% apostrophe is 0027, but it says that 2019 is preferred,
+% this is true as 2019 has the nice curl on top
+\def\'{\char"2019}
+\def\apos{\char"2019}
+\def\aps{\char"2019}
+\def\ap{\char"2019}
+
+%%%%%%%%%%% SEPARATING LINES %%%%%%%%%%
+% modify according to teste
+
+ \def\linea{\nin\centerline{\vrule height 2.0pt width 1.5truein depth 0 pt}}
+ \def\lineb{\nin\centerline{\vrule height 1.0pt width 1.5truein depth 0 pt}}
+
+ \def\lineA{\nin\centerline{\vrule height 2.0pt width 2.5truein depth 0 pt}}
+ \def\lineAa{\nin\centerline{\vrule height 2.5pt width 4.3truein depth 0pt}}
+
+\def\lineAA{\nin\centerline{\vrule height 3.2pt width 5.5truein depth 0pt}}
+%
+% next size up would be lineaaa etc
+
+%%%%%%%%%%%%% SPECIALIZED DEFINITIONS, INTRODUCED AS NEEDED %%%%%
+% I used many of these in my genealogical books to indicate various sources etc.
+% \msamA, \msbmBBBB and \cmsyAA are defined in [my_fonts.mac]
+
+\def\dvd{\hglue 1.0pt$^{\hbox{\boldmedsmall DVD}}$\hglue 1.0pt}
+\def\DVD{\hglue 1.0pt$^{\hbox{\boldmedsmall DVD}}$\hglue 1.0pt}
+\def\html{\kern 1.0truept{\raise 3.0pt \hbox{\bfnine HTML}}}
+\def\HTML{\kern 1.0truept{\raise 3.0pt \hbox{\bfnine HTML}}}
+\def\copyright{\char"00A9}
+\def\pdf{\raise 4pt\hbox{\boldmedsmall PDF}} % can not put \} in case there is a period after.
+\def\copyright{\char"00A9}
+\def\euro{{\char"20AC}}
+\def\pilcrow{{\char"00B6}}
+\def\star{\raise 3.5pt \hbox{\gl\msamA \char70}}
+\def\web{\gl{\msbmBBBB\char121}\hfill}
+\def\square{\th\raise 3.7pt\hbox{\msamAaaa\char4}}
+\def\tilda{{\cmsyAA \char24}}
+%
+% a separating | I use \| as command, since \ and | are on same key
+% used for identifying numbers in genealogy, e.g. {\tt 122\|1}
+\def\|{\th\raise 1.5pt \hbox{\cmsyAa\char 15}\th}
+%
+% I use \club to indicated a place in the text where changes are needed
+\def\club{\raise 3.5pt \hbox{\gl$\clubsuit$}}
+
+ %%%%%%%%%%%% ARROWS %%%%%%%%%%%%
+% n.b. the names of the arrows are just: hackd etc, without a for arrow
+%
+% these are with hackbold
+\def\hackD{\hbox{\hackboldBB \char"21A6}\hbox to 10truept{}}% |--->
+\def\hackE{\hbox{\hackboldBB \char"21E2}\hbox to 10truept{}} % --->
+\def\hackF{\hbox{\hackboldBB \char"2192}\hbox to 10truept{}} % ==>
+
+% these are regular hack for smaller, lighter arrows
+% 21DA <-- triple line 21DB --> triple line
+\def\hackd{\hbox{\hackseventeen \char"21A6}\hbox to 10truept{}} % |-->
+\def\hacke{\hbox{\hackseventeen \char"21E2}\hbox to 10truept{}} % -->
+\def\hackf{\hbox{\hackseventeen \char"2192}\hbox to 10truept{}} % ==>
+
+% libertine 21D0: <= no opposite of 21A6
+% libertine 2190 <---- single line
+%
+\def\libertineEA{\lower 1pt \hbox{\rmfifteen \char"21A6}\kern -1.5pt{}} % same as above |--->
+\def\libertineEAA{\lower 1pt \hbox{\rmeighteen \char"21A6}\kern -1.5pt{}} % same as above |--->
+\def\libertineEAAA{\lower 1pt \hbox{\rmtwenty \char"21A6}\kern -1.5pt{}} % same as above |--->
+
+% right facing
+\def\libertineEBR{\lower 1pt \hbox{\rmfifteen \char"21D2}\kern -1.5pt{}} % ==>
+\def\libertineEBBR{\lower 1pt \hbox{\rmeighteen \char"21D2}\kern -1.5pt{}} % ==>
+\def\libertineEBBBR{\lower 1pt \hbox{\rmtwenty \char"21D2}\kern -1.5pt{}} % ==>
+% left facing
+\def\libertineEBL{\lower 1pt \hbox{\rmfifteen \char"21D0}\kern -1.5pt{}} % <==
+\def\libertineEBBL{\lower 1pt \hbox{\rmeighteen \char"21D0}\kern -1.5pt{}} % <==
+\def\libertineEBBBL{\lower 1pt \hbox{\rmtwenty \char"21D0}\kern -1.5pt{}} % <==
+
+% These are long, double and slanted arrows set in \cmsy
+% long + double arrows
+\def\LRA{$\Longrightarrow$} % SEE REGULAR DOUBLE ARROWS BELOW
+\def\LLA{$\Longleftarrow$}
+\def\EWAA{\hbox{\cmsyAAAA \char 44}\hbox to 10truept{}} % DOUBLE ARROW, BOTH WAYs
+
+% arrows in SE, SW, NW , NE
+\def\SEA{\lower 5truept\hbox{\cmsyAAAA \char38}}
+\def\SWA{\lower 5truept\hbox{\cmsyAAAA \char 46}\hbox to 10truept{}}
+%
+\def\NWA{\lower 5truept\hbox{\cmsyAAAA \char 45\hbox to 10truept{}}}
+%
+\def\NEA{\lower 5truept\hbox{\cmsyAAAA \char 37\hbox to 10truept{}}}
+%
+% arrows in E, S, W , N 10 to big for EA
+\def\EA{\hbox{\cmsyAAAA \char 33}\hbox to 5truept{}}
+%
+\def\SA{\hbox{\cmsyAAAA \char 35}\hbox to 10truept{}}
+%
+\def\WA{\hbox{\cmsyAAAA \char 32}\hbox to 10truept{}}
+%
+\def\NA{\hbox{\cmsyAAAA \char 34}\hbox to 10truept{}}
+
+% double arrows in E, S, W , N
+%
+\def\EAA{\hbox{\cmsyAAAA \char 41}\hbox to 10truept{}}
+%
+\def\SAA{\hbox{\cmsyAAAA \char 43\hbox to 10truept{}}}
+%
+\def\WAA{\hbox{\cmsyAAAA \char 40\hbox to 10truept{}}}
+%
+\def\NAA{\hbox{\cmsyAAAA \char 42\hbox to 10truept{}}}
+
+%%%%%%%%%% TRIG DEFINITIONS %%%%%%%%%%
+% the following definition allows me to fix the R inside $ $; note \hbox{ }
+\def\R{\hbox{\rm R}} % leave out '' ( '' because I already have.
+%
+% I took out \sin because it interfered with \sin = \small\noindent
+\def\cos{\hbox{\rm cos}}
+\def\tan{\hbox{\rm tan}}
+\def\csc{\hbox{\rm csc}}
+\def\sec{\hbox{\rm sec}}
+\def\cot{\hbox{\rm cot}}
+\def\ln{\hbox{\rm ln}}
+\def\log{\hbox{\rm log}}
+\def\lim{\hbox{\rm lim}}
+
+ %%%%%%%%%% END %%%%%%%%%%
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.pdf b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.pdf
new file mode 100644
index 0000000000..e443fff503
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.tex
new file mode 100644
index 0000000000..e8ff5335a2
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/images-colour-marginal-notes.tex
@@ -0,0 +1,251 @@
+% [images_colour_marginal-notes.tex]
+%
+% this file illustrates
+% 1. PSTRICKS to import an image.
+% 2. PSTRICKS to rotate an image and text
+% 3. \mnotes from [petr_olsak.mac]
+% 4. coloured text via the dpctex package
+% 5. \printdate in [additional.mac]
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+% These macro files are explained in more detail at the top of each file. Here I have
+% a brief indication of the content.
+
+
+\input format_XETEX.mac
+ % spacing, special symbols ...
+\input unicode_latin.mac
+ % French and German accented letters
+\input macros.mac
+ % information boxes, special formats
+\input ancestors.mac
+ % abbreviations used in my genealogical texts !!
+%
+\input additional.mac % \printdate+ \raggedleft (for right to left)
+%
+\input petr_olsak.mac
+ % Petr Olsak's collection of pure Tex macros: tables, marginal notes ..
+%
+% ===> have to put [my_fonts.mac] AFTER [petr_olsak.mac] which redefines \rm
+\input my_fonts.mac
+ % different fonts at various sizes; e.g \bftwenty
+ % PSTRICKS is used for importing images
+ % there is a form after \bye
+ % the shell file [photos2eps] (in the directory SHELL_FILES)
+ % will convert all your .jpg and .png files to .eps
+
+
+\input pstricks % need for centring
+\input epsf % need for importing eps
+
+\input color % this is part of David Carlisle's "graph­ics-pln" package (available at CTAN)
+ %. it allows typesetting text in colour via \definecolor \textcolor and \colorbox
+ % color can also be obtained via [petr_olsak.mac], section 8 and
+ % PSTRICKS
+
+%%%%%%%%%%%%%%%% END XETEX INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein % !!
+\pdfpagewidth= 8.5truein %!!
+
+\vsize = 8.50 in %!!
+{\hsize = 5.94 in %!!
+
+\voffset = 0.5 truecm %!!
+\hoffset = 0.70truecm %!!
+
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+% =======> 3 CHANGES TO MAKE <=========
+
+ \nopagenumbers
+
+ %1 was chosen so that I will notice and change
+ % in final versions
+ \pageno =1 % 3 CHANGES TO MAKE
+
+ % this footer puts a page number in bold at the bottom of each page, EXCEPT FIRSTand \bsl mnote
+ \footline = { % THE FOOTLINE MATERIAL IS IN ENCLOSED IN {} aussi connu sous le nom known as my grandson
+ \ifnum \pageno =1 % do nothing <== keep with false #
+ \else
+ {\centreline{\bf \folio}} % centerline closes here for page #
+ \fi % this matches \ifnum
+ }
+ %
+ % NO DATES HERE, ONLY IN TITLE
+\headline = {% THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \centreline{ % CAN NOT PUT \centreline AFTER ELSE, FOULS UP!
+ \ifnum \pageno =1 % do nothing <== keep with false #
+ \else
+ {\bfthirteen Images, Colour, Marginal Notes}
+ \fi % THIS MATCHES \IFNUM
+ } %THIS MATCHS CENTERLINE
+ } % THIS MATCHES { WITH \FOOTLINE
+
+%%%%%%%%%%%%%%%%%%%% END FOOTER AND HEADER %%%%%%%%%%%%%%%%%%%%%
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+%
+ {\rm % !! 12.5pt I like a larger font, defined in [my_fonts.mac]
+%aussi connu sous le nom known as my grandson
+%
+{\verysmall . } % !! 0.1pt used to move text up via \vskip -20pt\nin !!
+%
+\vskip -30pt\nin % \nin = \noindent, see [format_XETEX.mac]
+%
+\printdate % in [additional.mac]
+%
+%
+% NOTE: \un is defined in [format_XETEX.mac]. It leaves a little space before and after underscore
+% \def\un{\kern -0.85pt \gl\_\gl }and \bsl mnote
+%
+\centreline{\bftwenty Images, Colour, Marginal Notes} % \bftwenty defined in [my_fonts.mac]
+%
+\mni % \medskip\noindent see [format_XETEX.mac]
+%
+% NOTE: \[ \] and \( \) are defined in [format_XETEX.mac] to leave a little space
+% before the text.
+% NOTE: \def\[{{\rm \char"005B\gl}}
+%
+Starting with the image \[chevalier\unl de\unl la\unl croix\unl rouge.jpg\], I
+converted it to:
+\[chevalier\unl de\unl la\unl croix\unl rouge.eps\].
+%
+% NOTE: \bsl and \fsl are defined in [format_XETEX.mac]
+% NOTE: \def\bsl{\char"005C\gl}
+To convert use {\it photos2eps\/} in \[SHELL\unl FILES\], or another image to .eps converter.
+\mni
+I then imported the file via the {\tt PSTRICKS} command:
+\sni
+\centreline{\bsl centreline\lbr\bsl epsfxsize = 4.5truein\bsl epsfbox\lbr chevalier\unl de\unl la\unl croix\unl rouge.eps\rbr\rbr}
+\sni
+I keep a ready to use {\tt PSTRICKS}
+form after \bsl bye and I change the width to suit.
+\mni
+ \fixmnotes\right
+% NOTE GOES BEFORE TEXT
+ \definecolor{mix}{rgb}{0.80000, 0.67843, 0.55686}
+ % these numbers are explained with the note at the end
+ \mnoteskip = -15pt % lower the note
+ \mnote{\colorbox{mix}{see the notes}} % MOVE UP for double notes
+%
+\nin
+\kern -5pt Note the use of \bsl definecolor, \bsl textcolor, \bsl colorbox from the
+\bsl color package and \bsl mnote from \[petr\unl olsak.mac\].\hskip 17pt \lower 1.1pt\hbox{\libertineEAAA}
+%
+\vskip 20pt
+%
+% PSTRICKS FORM Change the width to suit
+ \centreline{\epsfxsize = 4.1truein\epsfbox{chevalier_de_la_croix_rouge.eps}}
+\vskip 10 truept
+
+% red is already defined in \color
+\centreline{
+\textcolor{red}{\bftwenty Le Chevalier de la Croix Rouge}
+ }
+%
+\vskip 0.7cm\nin
+%
+P.S. Le Chevalier est mon petit fils Daniel. Il avait six ans lors de notre combat (j'ai perdu).
+%
+\vskip 1.0cm\nin
+%
+If you do not want the picture centred, put it in a \bsl hbox and use \bsl hskip:
+\vskip 0.5cm\nin
+%
+ \raise 0.75truein\hbox{\bf Le Chevalier }
+ \hskip 0.6cm \hbox{\epsfysize = 1.5truein\epsfbox{chevalier_de_la_croix_rouge.eps}}
+ \hskip 0.6cm \raise 0.75truein\hbox{\bf de la Croix Rouge}
+ %
+ \vskip55pt\nin
+ You can also use {\tt PSTRICKS} with \bsl rput to rotate everything:
+ %
+ \vskip 5.0cm\nin
+%
+ \hskip 5.7cm \rput{-45}{\hbox{\epsfysize = 1.5truein\epsfbox{chevalier_de_la_croix_rouge.eps}}
+ \hskip 0.6cm \raise 0.75truein\hbox{\bf Le Chevalier de la Croix Rouge}}
+%
+ \vskip 5.1cm\nin % the bounding box extends way down!
+%
+ There are many other great things that one can do with Herbert Voß's wonderful {\tt PSTRICKS}:
+ \Th \lower 1.1pt\hbox{\libertineEAAA}\TH
+ {\tt tug.org\fsl PSTricks\fsl}.
+ %
+\vfill\eject
+
+ % \[ is set in roman, for use in italicized texts\hskip 17pt \lower 1.1pt\hbox{\libertineEAAA}
+\centreline{\bffourteen Notes}
+\mni
+\item{} {\itfourteen mnotes is contained in \[petr\unl olsak.mac\]\/}
+\mni
+\item{} The colour \colorbox{mix}{\lq mix\rq} used with \bsl mnote above,
+was obtained as follows:
+\vskip 11pt
+% PSTRICKS FORM
+ \centreline{\epsfxsize = 3.5truein\epsfbox{kcolorchooser_mix_light_brown.eps}}
+\vskip 4 truept
+ \centreline{Picking the colour for \lq mix\rq}
+ \mni
+\itemitem{} I opened up {\tt kcolorchooser} and chose the colour that I desired. The RGB numbers were: 204 173 142.
+To calculate the fraction of 255 \[the range for each of these primary colours is 0\th \dots 255\]
+that these integers represent I put these numbers in {\tt Octave}:
+\sni
+{\tteleven
+\leftskip = 1.3cm
+\obeyspaces
+\obeylines
+%
+octave:1> e = [204 173 142];
+octave:2> F = e/255;
+octave:3> disp(F)
+0.80000 0.67843 0.55686
+}
+\mni
+\itemitem{} I simply grabbed these decimal fractions from the terminal and defined \lq mix\rq\ as follows:
+\sni
+\itemitem{} \bsl definecolor\gl\lbr\gl mix\gl\rbr\th \lbr\gl rgb\gl\rbr\th \lbr\gl 0.80000,\th 0.67843,\th 0.55686\gl\rbr\gl.
+\mni
+The coloured box for the note was then created via the command:
+\mni
+\centreline{{\bsl colorbox\lbr\gl mix\gl\rbr\gl}\gl \lbr see the notes\rbr}
+\mni
+The red title of the picture was created via the command:
+\mni
+\centreline{\bsl textcolor\lbr\gl red\gl\rbr \lbr\gl\bsl bftwenty Le Chevalier de la Croix Rouge\gl\rbr}
+ \mni
+ The date and time of printing was done via \bsl printdate \(in \[additional.mac\]\).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % KEEP THIS ENDING!!! had when needed headers
+\vfill\eject
+%%
+ } % ends roman
+ \par} % ends \hsize
+ \bye
+
+%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%%%
+%
+% PSTRICKS FORM
+ \centreline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centreline{}
+%
+\vskip 0.7cm\nin
+%
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/kcolorchooser_mix_light_brown.png b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/kcolorchooser_mix_light_brown.png
new file mode 100644
index 0000000000..be08dc5ee4
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/kcolorchooser_mix_light_brown.png
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.pdf b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.pdf
new file mode 100644
index 0000000000..a08ebadefe
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.tex
new file mode 100644
index 0000000000..44eee396d5
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/letter-form.tex
@@ -0,0 +1,99 @@
+% [letter_form.tex]
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+% See [FORM_PLAIN.tex ] and the top of each macro file for
+% a discussion of the following
+
+\input format_XETEX.mac
+\input unicode_latin.mac
+\input macros.mac
+\input ancestors.mac
+\input additional.mac
+\input petr_olsak.mac
+\input my_fonts.mac
+\input pstricks
+\input epsf
+\input color
+
+%%%%%%%%%%%%%%%% END XETEX INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein % !!
+\pdfpagewidth= 8.5truein %!!
+
+\vsize = 8.50 in %!!
+{\hsize = 5.94 in %!!
+
+\voffset = 0.5 truecm %!!
+\hoffset = 0.70truecm %!!
+
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+
+{\rm % 12.5 linuxlibertine, \it = 13.0pt
+%
+{\leftskip = 9.0 truecm
+\nin
+**NAME**r\sni
+**ADDRESS\sni
+**CITY**\sni
+** ETC 1**\sni
+**TELEPHONE**\sni
+**COURRIEL**\unl 1\gl{\tt @}\gl **COURRIEL2.ca**
+\mni
+**
+\par}
+%
+\bni
+Dear ***,
+\mni
+%
+***
+\vskip 30pt\nin
+%
+% hackD is a heavy arrow, see [format_xetex.mac]
+\lower 11pt\hbox{\hackD}
+{\it THERE IS NO NEED TO SIGN YOUR LETTERS EACH TIME:
+JUST SIGN A SHEET, MAKE A PHOTOGRAPH \[SIGNATURE.png\], CONVERT IT TO
+ \[SIGNATURE.eps\]}
+
+\bni
+{\leftskip =08.95 truecm
+Yours truly,
+\vskip -2truept\nin
+%
+ \kern -14pt \hbox{\epsfysize = 1.45truecm\epsfbox{SIGNATURE.eps}}
+\vskip 1 truept\nin
+** NAME **
+\par}
+
+
+
+%
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+\vfill\eject
+%%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+%%%
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centerline{}
+%
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/macros.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/macros.mac
new file mode 100644
index 0000000000..98864fad6c
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/macros.mac
@@ -0,0 +1,145 @@
+% [macros.mac]
+% these are REAL macros with #1 ...
+
+%
+% %%%%%%%%%%%%%%%%%%%% THICKNESS OF RULES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ====> CHANGE THICKNESS AS DESIRED
+
+\newdimen\hruledefaultheight \hruledefaultheight = 1.1pt
+\newdimen\hruledefaultdepth \hruledefaultdepth = 0.0pt
+\newdimen\vruledefaultwidth \vruledefaultwidth = 1.1pt
+\def\ehrule{\hrule height\hruledefaultheight depth\hruledefaultdepth}%
+\def\evrule{\vrule width\vruledefaultwidth}%
+
+
+% %%%%%%%%%%%%%%%%%%%% \INFOBOXING MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \boxit{#1}, taken from the TeXbook, trivially generalized to allow
+% something other than 3pt around the box.
+
+% ====> CHANGE \BOXITSPACE AS DESIRED
+
+% \boxit{#1} is not used directly; it is used in \infobox{#1}
+% \long, permits \par inside definition
+%
+%
+\newdimen\boxitspace \boxitspace = 8pt %13pt too much % WAS 3PT,
+\long\def\boxit#1{%
+ \centerline{\vbox{%
+ \ehrule
+ \hbox{%
+ \evrule
+ \kern\boxitspace
+ \vbox{\kern\boxitspace \parindent = 0pt #1\kern\boxitspace}%
+ \kern\boxitspace
+ \evrule
+ }%
+ \ehrule
+ } % \vbox
+ }% \centerline
+ } % end of def
+
+%
+% MACRO: \infobox{#1}, based on \boxit withspace = 8pt, line thickness 1.1pt
+%
+\long\def\infobox#1{ % start defn
+ \vskip 15truept\noindent
+ \hbox{
+ \boxit{\hbox{#1}} % was \bf
+ }
+ \vskip 6truept\noindent} % end of def
+
+
+% %%%%%%%% MACROS FOR GENEALOGY: NUMBER+NAME+INFO +FILE %%%%%%%%%%%%%%%
+% three macros here. the test for \ancestor is at the end
+% 1: \ancestor: (formely \identity) is used in [coralie_weill_list-ancestors.tex].
+% 3 entries: {\ttfourteen number}{\bffourteen name}{\rm = 12.5 dates and documents}
+% the identitification number is on a separate line, and the fonts are
+% larger than for \person
+%
+% 2: \person : similar to \ancestor, but name is first; all on one line and fonts are
+% different
+%
+% the number is in parentheses ( ); also colon after number
+% 3 entries: {\bfthirteen name} ({\tt =12.5 number}): {\rm = 12.5 dates and documents}
+% =====) can use for children after \item{1.}\person{}{}{}
+%
+% 3: \former: used inside \person for former name
+%
+% 4: \marriage
+% \marriage moved to AFTER husband, so no need for name or identification
+% {\tt Married}: {\rm date and place of marriage + source}
+%
+% I PUT THE PERIODS IN THE DEFINITION
+
+% 1: DEFINING \ancestor
+% \long allows paragraph etc
+% fifteen seems to big. I seem to have to change -3pt, -2pt
+% all 3 inputs are in {}
+% NO PERIOD AFTER #3 FOR THIS SIMPLE LIST
+\long\def\ancestor#1#2#3{
+\noindent
+\hskip -5pt\hbox{\ttfourteen #1} % identiification number
+\vskip -1.0 truept % \sni = 4pt was too much space between # and name as compared to between couple
+ % even + 1.0pt seems to much
+ % increase distance between mother/father to \sni + 2pt =6pt? ?this is
+ % distance before separation line
+\hangindent = 2.0\parindent\noindent % noindent here
+%
+ \hskip -1pt %I had this to move number over to line up
+ {\bffourteen #2}\TH % #2 =NAME + \quad skip before text
+ {#3.} % #3 is just text on same line
+ } % end of def %
+
+% \ancestorB for list of ancestors
+\def\ancestorB#1#2{
+\hskip -5pt\hbox{\ttfourteen #1}\TH % identiification number
+{\bffourteen #2}
+ } % end of def %
+
+
+% 2: DEFINING \PERSON
+% ==============) ( ) and : are built in
+% PERIOD AFTER #3
+\long\def\person #1#2#3{
+ \noindent % need after \vfill, perhaps other times
+ % may be different on 2005 and 2014
+ % was thirteen , but children are fourteen!!
+ \kern -3.4pt{\bffourteen #1}\TH % use \former inside \person{NAME\former{OLD}}
+ (\gl {\tt #2}\gl)\TH
+ {#3.}
+ } % end of def %
+
+% 3: DEFINING \FORMER; use INSIDE \PERSON
+% I took off ( ) because the identity # is inside ( )
+% But I added in a comma
+ \long\def\former #1{ % not allowed to use #2
+ % was \it = 13pt, increased to match \person
+ \kern -2.5truept{\rm ,}\Th {\it #1\/}} % end of def
+
+
+%
+% 4: DEFINING \MARRIAGE #2 (name) and # 3 (number) eliminated
+% PERIOD AFTER #1
+% ==============) ( ) and : are built in
+
+\long\def\marriage #1{
+ \hskip -0.1pt{\tt marriage}\th:\TH % \Th too big, -2,-5 too big
+ %{\bfthirteen #1}\TH
+ % {\tt #2}\th:\TH
+ {#1.}
+ } % end of def marriage%
+
+%
+% \file, for putting file letter in [coralie_list]
+\def\file #1{
+ \TH [\th\hbox{\bf #1}\th]} % \biggl[ only for $$? \big
+ % end defn file
+
+
+% \titleA ancestor title for list of ancestors
+% #1 = name, #2 = number, same font ( ) built in
+\def\titleA#1#2{\centerline{\bffifteen #1 \(#2\)}}
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/my_fonts.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/my_fonts.mac
new file mode 100644
index 0000000000..f6a21e0e52
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/my_fonts.mac
@@ -0,0 +1,259 @@
+% [my_fonts.mac]
+% The idea of this mac file is to be able to call up various font faces, styles and sizes
+% with an abbreviation. I add sizes as needed
+
+% Notice the format (this may vary with your operating system)
+% \font\<ASSIGNEDNAME> % NO DASHES OR UNDERLINES
+% = [\full path .../ <NAME OF FONT>.otf ] % ENCLOSE IN [ ]
+% % RENAME FONT, NO DASHES AND UNDERLINES
+% at <POINT SIZE> pt
+
+% I prefer to place the fonts in my home directory so as to avoid the need for permissions, etc
+% to change the name of the fonts.
+% In my case I use: /home/liliane/ROGER/
+
+%%%%%%%%%%%%% LIBERTINE FONTS (open source) %%%%%%%%%%%%%
+% available at: http://libertine-fonts.org
+% They have a whole range of families (sans serif etc)
+%
+% These are my main typesetting fonts.
+
+%%%%%%%%%%% LIBERTINE SERIF TYPES %%%%%%%%%%%%%%% very stylized
+
+% %%%%%%%% ROMAN %%%%%%%%
+%
+% The normal size roman font
+ \font\rm = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 12.5 pt % roman
+
+ % very small indeed. I used this so that I can have a negative \vskip
+ % to move material at the start of a page (often after \eject
+ \font\verysmall = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 0.01 pt
+
+
+ \font\tiny = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 0.01 pt
+% /home/liliane/ROGER/MY-FONTS/
+ \font\small = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.0 pt % COMPATIBLE
+ \font\rmten = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.0 pt
+ \font\rmeleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 11.0 pt
+ \font\rmtwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 12.0 pt
+ \font\rmthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 13.0 pt
+ \font\rmfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 14.0 pt
+ \font\rmfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 15.0 pt
+ \font\rmsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 16.0 pt
+ \font\rmseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 17.0 pt
+ \font\rmeighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 18.0 pt
+ \font\rmtwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 20.0 pt
+
+% %%%%%%%% ROMAN BOLD %%%%%%%%
+% The normal size bold face font
+ \font\bf = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 12.5 pt
+
+ \font\bfnine = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 9.0 pt
+ \font\bften = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 10.0 pt
+ \font\bfeleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 11.0 pt
+ \font\bftwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 12.0 pt
+ \font\bfthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 13.0 pt
+ \font\bffourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 14.0 pt
+ \font\bffifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 15.0 pt
+ \font\bfsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 16.0 pt
+ \font\bfseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 17.0 pt
+ \font\bfeighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 18.0 pt
+ \font\bftwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 20.0 pt
+ \font\bftwentytwo = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 22.0 pt
+
+% SMALL BOLDFACE for $^{CD}$ % I made 5pt in notes
+\font\boldmedsmall = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 6.6pt
+
+
+ %%%%%%%% ROMAN ITALICS %%%%%%%
+ %
+ % The normal size italic face font
+ \font\it = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 13.0 pt % slightly larger than \rm
+
+ \font\itten = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 10.0 pt
+ \font\iteleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 11.0 pt
+ \font\ittwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 12.0 pt
+ \font\itthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 13.5 pt
+ % this goes with rmfourteen & bffourteen
+ \font\itfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 14.5 pt
+ \font\itfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 15.5 pt
+ \font\itsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 16.5 pt
+ \font\itseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 17.5 pt
+ \font\iteighteen= [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 18.0 pt
+
+ % %%%%%%%% ROMAN BOLD ITALICS % %%%%%%%%
+ %
+\font\bi = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 13.5 pt
+% for {\bfsixteen .... [italicized] }
+\font\bififteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 15.5 pt
+\font\bisixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 16.5 pt
+\font\biseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 17.5 pt
+\font\bieighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 18.5 pt
+\font\bitwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 20.0 pt
+
+ %%%%%%%% MONO use in place of \TeX \tt %%%%%%%
+%
+% The normal size moni font
+\font\tt = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 12.5 pt % mono
+
+ \font\ttnine = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 9.0 pt % mono
+ \font\ttten = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 10.0 pt % mono
+\font\tteleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 11.0 pt % mono
+\font\tttwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 12.0 pt % mono
+\font\ttthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 13.0 pt % mono
+\font\ttfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 14.0 pt % mono
+\font\ttfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 15.0 pt % mono
+\font\ttsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 16.0 pt % mono
+\font\ttseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 17.0 pt % mono
+\font\tteighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 18.0 pt % mono
+\font\ttnineteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 19.0 pt % mono
+\font\tttwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 20.0 pt % mono
+
+
+%%%%%%% ROMAN SEMI-BOLDS FOR TITLES %%%%%%
+% I use forty for posters
+% roman semi-bold
+\font\sb = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 14.5 pt
+\font\sbtwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 20.0 pt
+\font\sbtwentyfive= [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 25.0 pt
+\font\sbthirty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 30.0 pt
+\font\sbthirtyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 35.0 pt
+\font\sbforty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 40.0 pt
+\font\sbfortyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 45.0 pt
+\font\sbfifty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 50.0 pt
+\font\sbfiftyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 55.0 pt % used for haftarah poster
+
+ % roman semi-bold-italics
+\font\sbi = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 12.5 pt
+\font\sbiforty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 40.0 pt
+\font\sbifortyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 45.0 pt
+\font\sbififty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 50.0 pt
+\font\sbififtyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 55.0 pt % used for haftarah poster
+
+%%%%%%%%%%%%% END LIBERTINE %%%%%%%%%%%%%
+
+%%%%%%%%%%% RALEWAY %%%%%%%%%
+% These fonts are available at:
+% https://www.theleagueofmoveabletype.com/
+% [They have other interesting fonts]
+
+% I use these fonts for posters, woodburning etc.
+% There are other fonts in the Raleway family.
+
+% Notice how multiples of A, B, C and D are use to group font sizes
+
+% BOLD
+\font\RalewayBoldA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 15pt
+\font\RalewayBoldAA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 20pt
+\font\RalewayBoldAAA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 25pt
+
+\font\RalewayBoldB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 50pt
+\font\RalewayBoldBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 55pt
+\font\RalewayBoldBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 60pt
+\font\RalewayBoldBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 65pt
+\font\RalewayBoldBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 70pt
+\font\RalewayBoldBBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 75pt
+
+% EXTRA BOLD
+\font\RalewayExtraBoldB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 50pt
+\font\RalewayExtraBoldBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 55pt
+\font\RalewayExtraBoldBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 60pt
+\font\RalewayExtraBoldBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 65pt
+\font\RalewayExtraBoldBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 70pt
+\font\RalewayExtraBoldBBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 75pt
+
+\font\RalewayExtraBoldC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 80pt
+\font\RalewayExtraBoldCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 85pt
+\font\RalewayExtraBoldCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 90pt
+\font\RalewayExtraBoldCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 95pt
+\font\RalewayExtraBoldCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 100pt
+\font\RalewayExtraBoldCCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 105pt
+
+\font\RalewayExtraBoldD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 110pt
+\font\RalewayExtraBoldDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 115pt
+\font\RalewayExtraBoldDDD= [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 120pt
+\font\RalewayExtraBoldDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 125pt
+\font\RalewayExtraBoldDDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 130pt
+\font\RalewayExtraBoldDDDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 135pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% END RALEWAY %%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% HACK %%%%%%%%%%%%%%%
+% These fonts are available at: https://sourcefoundry.org/hack/
+% Hack is a mono space (teletype =\tt or fixed spacing) designed for coding.
+% The heavier version are excellent for arrows; see the file [format_XETEX.mac]
+
+%%%%%%%%%%% REGULAR HACK %%%%%%%%%%%%%%
+\font\hackthirteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 13.0pt
+\font\hackfourteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 14.0pt
+\font\hackfifteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 15.0pt
+\font\hacksixteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 16.0pt
+\font\hackseventeen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 17.0pt
+
+%%%%%%%%%%% BOLD HACK %%%%%%%%%%%%%%
+\font\bfhackthirteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 13.0pt
+\font\bfhackfourteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 14.0pt
+\font\bfhackfifteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 15.0pt
+\font\bfhacksixteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 16.0pt
+\font\bfhackseventeen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 17.0pt
+
+\font\hackboldA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 13.0pt
+\font\hackboldAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 14.0pt
+\font\hackboldAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 16.0pt
+\font\hackboldAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 18.0pt
+\font\hackboldAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 20.0pt
+\font\hackboldAAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 30.0pt
+\font\hackboldAAAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 40pt
+
+\font\hackboldB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 50.0pt
+\font\hackboldBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 55.0pt
+\font\hackboldBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 60.0pt
+\font\hackboldBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 65.0pt
+\font\hackboldBBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 70.0pt
+\font\hackboldBBBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 75.0pt
+
+% HackBoldOblique.otf
+\font\hackboldobliqueA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 13.0pt
+\font\hackboldobliqueAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 14.0pt
+\font\hackboldobliqueAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 16.0pt
+\font\hackboldobliqueAAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 18.0pt
+\font\hackboldobliqueAAAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 20.0pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% END HACK %%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%% TEX CMSY, MSAM AND MSBM FONTS %%%%%%%
+
+% These are used in [format.mac] for some special symbols
+% Since these are special fonts corresponding to sets of symbols,
+% i did not bother to convert to unicode
+% Choose the font which corresponds to the chart on which the
+% the symbol is located, as indicated below by: % \exists chart
+% e.g \| is the bullet on the cmsy10 table at position 15.
+% so I use \font\cmsyAa to define it at the font size that I want
+%
+\font\cmsyAAAA = cmsy10 at 17.0pt % used for arrows
+\font\cmsyAAA = cmsy10 at 15.0pt
+\font\cmsyAA = cmsy10 at 13.0pt
+\font\cmsyA = cmsy10 at 11.0pt
+\font\cmsyAa = cmsy10 at 10.0pt % \exists chart
+
+% ff used for star (char70), square (char04)
+\font\msamAAAA = msam10 at 17.0pt
+\font\msamAAA = msam10 at 15.0pt
+\font\msamAA = msam10 at 13.0pt % \exists chart
+\font\msamA = msam10 at 11.0pt
+\font\msamAa = msam10 at 10.0pt % used for \square
+\font\msamAaa = msam10 at 9.0pt % used for \square
+\font\msamAaaa = msam10 at 8.0pt % used for \square
+
+% I use B here, because of msBm
+\font\msbmBBBB = msbm10 at 17.0pt % used with \web
+\font\msbmBBB = msbm10 at 15.0pt
+\font\msbmBB = msbm10 at 13.0pt % \exists chart
+\font\msbmB = msbm10 at 11.0pt
+
+%%%%%%%%%%%% END: TEX CMSY, MSAM AND MSBM FONTS %%%%%%%
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/petr_olsak.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/petr_olsak.mac
new file mode 100644
index 0000000000..71f740800b
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/petr_olsak.mac
@@ -0,0 +1,1843 @@
+% [petr_olsak.mac]
+% The coding after these preliminary statements is a VERBATIM copy
+% of Peter Olsak's [opmac.tex].
+% This was extracted from his CTAN package [csplain] available at:
+% https://www.ctan.org/pkg/csplain
+% All credits and licenses are those of Peter Olsak and should be respected.
+
+% The extension ".mac" was used for the purpose of a uniform presentation.
+% The name change from "OPmac" to "petr_olsak" was made precisely to avoid the
+% impression that any of the macros in this file are due to me.
+% Roger H-F, Ottawa, 2019.01.08
+
+% N.B. the \rm statements here intefered with the definition of \rm in [my_fonts.mac]
+% so the latter should be placed AFTER this mac file in the input statements
+
+%%%%%%% THE VERBATIM COPY STARTS AFTER THIS LINE %%%%%%%%%%%%%%%
+
+
+% OPmac
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Petr Olsak, 2012 -- 2016
+
+%% The history of versions is at the end of this file, after \endpinput
+
+\ifx\OPmacversion\undefined \else \endinput \fi
+\def\OPmacversion{Aug. 2018}
+\immediate\write16{This is OPmac (Olsak's Plain macros), version <\OPmacversion>}
+
+%%%%%%%%%%%%%% Basic macros, sec. 3.1 in opmac-d.pdf
+
+\newcount\tmpnum % auxiliary count
+\newdimen\tmpdim % auxiliary dimen
+
+\def\opwarning#1{\immediate\write16{l.\the\inputlineno\space OPmac WARNING: #1.}}
+
+\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\def\protectlist{}
+\def\addprotect#1{\addto\protectlist{\doprotect#1}}
+\addprotect~
+
+\ifx\pdfextension\undefined \else
+ \let\pdfoutput=\outputmode \def\pdfcolorstackinit{\pdffeedback colorstackinit}\fi
+
+\newif\ifpdftex \pdftextrue
+\ifx\pdfoutput\undefined \pdftexfalse \else \ifnum\pdfoutput=0 \pdftexfalse \fi \fi
+\ifx\XeTeXversion\undefined \else \pdftextrue \fi
+
+\def\sdef#1{\expandafter\def\csname#1\endcsname}
+\def\sxdef#1{\expandafter\xdef\csname#1\endcsname}
+\def\slet#1#2{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
+
+\def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}}
+
+\def\isdefined #1#2{\expandafter\ifx \csname#1\endcsname \relax
+ \csname iffalse\expandafter\endcsname
+ \else
+ \csname iftrue\expandafter\endcsname
+ \fi
+}
+\long\def\isinlist#1#2#3{\begingroup \long\def\tmp##1#2##2\end{\def\tmp{##2}%
+ \ifx\tmp\empty \endgroup \csname iffalse\expandafter\endcsname \else
+ \endgroup \csname iftrue\expandafter\endcsname \fi}% end of \def\tmp
+ \expandafter\tmp#1\endlistsep#2\end
+}
+\long\def\isnextchar#1#2#3{\begingroup\toks0={\endgroup#2}\toks1={\endgroup#3}%
+ \let\tmp=#1\futurelet\next\isnextcharA
+}
+\def\isnextcharA{\the\toks\ifx\tmp\next0\else1\fi\space}
+
+\def\eoldef#1{\def#1{\begingroup \catcode`\^^M=12 \eoldefA#1}%
+ \expandafter\def\csname\string#1:M\endcsname}
+{\catcode`\^^M=12 \gdef\eoldefA#1#2^^M{\endgroup\csname\string#1:M\endcsname{#2}}}
+
+\def\maybebreak{\afterassignment\maybebreakA\tmpdim=}
+\def\maybebreakA{\ifvmode \vskip0pt plus\tmpdim \penalty-130 \vskip0pt plus-\tmpdim
+ \else \hskip0pt plus\tmpdim \penalty-130 \hskip0pt plus-\tmpdim \fi \relax
+}
+\long\def\uv#1{\clqq#1\crqq}
+\let\\=\undefined
+{\lccode`\?=`\% \lowercase{\gdef\percent{?}}}
+{\lccode`\?=`\\ \lowercase{\gdef\bslash{?}}}
+\def\,{\relax\ifmmode \mskip\thinmuskip \else \thinspace \fi}
+\addprotect\percent \addprotect\bslash \addprotect\, \addprotect\exfont
+
+\bgroup \catcode`!=3 \catcode`?=3
+\gdef\replacestrings#1#2{\long\def\replacestringsA##1#1{\def\tmpb{##1}\replacestringsB}%
+ \long\def\replacestringsB##1#1{\ifx!##1\relax \else\addto\tmpb{#2##1}%
+ \expandafter\replacestringsB\fi}% improved version <May 2016> inspired
+ \expandafter\replacestringsA\tmpb?#1!#1% from pysyntax.tex by Petr Krajnik
+ \long\def\replacestringsA##1?{\def\tmpb{##1}}\expandafter\replacestringsA\tmpb
+}
+\egroup
+
+%%%%%%%%%%%%%% Global parameters, sec. 3.2 in opmac-d.pdf
+
+\widowpenalty=10000
+\clubpenalty=10000
+\showboxdepth=7
+\showboxbreadth=30
+
+\newdimen\iindent \iindent=\parindent
+ % indentation of items, TOC, captions, list of bib. references
+\newdimen\ttindent \ttindent=\parindent
+ % indentation in \begtt...\endtt and \verbinput
+
+\def\ttskip{\medskip} % space above and below \begtt, \verbinput
+\mathchardef\ttpenalty=100 % penalty between lines in \begtt, \verbinput
+\def\tthook{} % hook in \begtt, \verbinput
+\def\intthook{} % hook in in-text verbatim
+\def\ptthook{} % hook in \begtt, \verbinput for post-processing
+
+\def\iiskip{\medskip} % space above and below \begitems...\enditems
+\def\itemhook{} % hook in \startitem
+\def\bibskip{\smallskip} % space between bibitems
+
+\def\tabstrut{\strut} % strut in the \table
+\def\tabiteml{\enspace} % left material before each \table item
+\def\tabitemr{\enspace} % right material after each \table item
+\def\vvkern{1pt} % space between vertical lines
+\def\hhkern{1pt} % space between horizontal lines
+
+\def\multiskip{\medskip} % space above and below \begmulti...\endmulti
+\newdimen\colsep \colsep=2em % space between columns
+
+\newdimen\mnoteindent \mnoteindent=10pt % ditance between mnote and text
+\newdimen\mnotesize \mnotesize=20mm % the width of the mnote paragraph
+
+\def\picdir{} % the directory with picture files
+\def\bibtexhook{} % hook in \usebibtex and \usebbl macros
+\def\chaphook{} % hook in \chap
+\def\sechook{} % hook in \sec
+\def\secchook{} % hook in \secc
+\def\cnvhook{} % hook before conversion of outlines
+\def\prepghook{} % hook before page building in \output routine
+\def\pghook{} % next hook in \output routine
+\def\toclinehook{} % hook in \tocline
+\def\fnotehook{} % hook in \fnote
+\def\mnotehook{} % hook in \mnote
+\def\captionhook#1{} % hook in \caption (#1 is "t" or "f")
+
+%%%%%%%%%%%%%% OPmac, CSplain and LaTeX logos, sec. 3.3 in opmac-d.pdf
+
+\def\OPmac{\leavevmode
+ \lower.2ex\hbox{\thefontscale[1400]O}\kern-.86em P{\em mac}}
+\def\CS{$\cal C$\kern-.1667em\lower.5ex\hbox{$\cal S$}}
+\def\csplain{\CS plain}
+
+\def\LaTeX{\tmpdim=.42ex L\kern-.36em \kern\slantcorr % slant correction
+ \raise\tmpdim\hbox{\thefontscale[710]A}%
+ \kern-.15em \kern-\slantcorr \TeX}
+\def\slantcorr{\expandafter\ignorept\the\fontdimen1\the\font\tmpdim}
+
+\addprotect\TeX \addprotect\OPmac \addprotect\CS \addprotect\LaTeX
+
+
+%%%%%%%%%%%%%% Sizes of fonts and \baselineskip, sec. 3.4 in opmac-d.pdf
+
+\ifx\regfont\undefined
+ \ifx\uselanguage\undefined % if this is etex.src, the following warning is suppressed
+ \opwarning{No multilanguage support (csplain is recommended)}
+ \fi
+ % macros from csplain, file csfontsm.tex:
+ \ifx\tenbi\undefined \font\tenbi=cmbxti10 \def\bi{\tenbi}\fi
+ \def\letfont#1#2{\ifx#2=\expandafter\letfont\expandafter#1\else
+ \expandafter\font\expandafter#1\expandafter\rfontskipat\fontname#2 \relax\space \fi}
+ \def\rfontskipat#1{\ifx#1"\expandafter\rfskipatX\else\expandafter\rfskipatN\expandafter#1\fi}
+ \def\rfskipatX #1" #2\relax{"\whichtfm{#1}"} \def\rfskipatN #1 #2\relax{\whichtfm{#1}}
+ \def\sizespec{} \def\whichtfm#1{#1}
+ \def\resizefont#1{\letfont#1#1\sizespec}
+ \def\regfont#1{\expandafter\def\expandafter\resizeall\expandafter{\resizeall \resizefont#1}}
+ \def\resizeall{}
+ \regfont\tenrm \regfont\tenit \regfont\tenbf \regfont\tenbi \regfont\tentt
+\fi
+
+\newdimen\ptunit \ptunit=1pt
+\newdimen\fontdim \fontdim=10pt
+
+\ifx\normalmath\undefined \input ams-math \fi % ams-math.tex is in csplain package
+
+{\lccode`\?=`\p \lccode`\!=`\t \lowercase{\gdef\ignorept#1?!{#1}}}
+
+\def\typosize[#1/#2]{\fontsizex[#1]\setbaselineskip[#2]\ignorespaces}
+\def\typoscale[#1/#2]{\fontscalex[#1]\scalebaselineskip[#2]\ignorespaces}
+
+\def\fontsizex[#1]{\if$#1$\else
+ \textfontsize[#1]%
+ \tmpdim=0.7\fontdim \edef\tmpa{\expandafter\ignorept\the\tmpdim}%
+ \tmpdim=0.5\fontdim \edef\tmpb{\expandafter\ignorept\the\tmpdim}%
+ \edef\tmp{\noexpand\setmathsizes[\expandafter\ignorept\the\fontdim/\tmpa/\tmpb]}%
+ \tmp \normalmath
+ \fi
+}
+\def\textfontsize[#1]{\if$#1$\else
+ \fontdim=#1\ptunit \ifx\fontdimB\undefined \edef\fontdimB{\the\fontdim}\fi
+ \let\dgsize=\fontdim
+ \edef\sizespec{at\the\fontdim}%
+ \resizeall \rm \let\dgsize=\undefined
+ \fi
+}
+\def\setbaselineskip[#1]{\if$#1$\else
+ \tmpdim=#1\ptunit
+ \baselineskip=\tmpdim \relax
+ \ifx\baselineskipB\undefined \edef\baselineskipB{\the\baselineskip}\fi
+ \bigskipamount=\tmpdim plus.33333\tmpdim minus.33333\tmpdim
+ \medskipamount=.5\tmpdim plus.16666\tmpdim minus.16666\tmpdim
+ \smallskipamount=.25\tmpdim plus.08333\tmpdim minus.08333\tmpdim
+ \normalbaselineskip=\tmpdim
+ \jot=.25\tmpdim
+ \maxdepth=.33333\tmpdim
+ \setbox\strutbox=\hbox{\vrule height.709\tmpdim depth.291\tmpdim width0pt}%
+ \fi
+}
+\def\withoutunit#1#2{\expandafter#1\expandafter[\expandafter\ignorept\the#2]}
+
+\def\fontscalex[#1]{\if$#1$\else \ifnum#1=1000 \else
+ \tmpdim=3277sp \tmpdim=#1\tmpdim \divide\tmpdim by50
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\fontsizex\tmpdim
+ \fi\fi
+}
+\def\textfontscale[#1]{\if$#1$\else
+ \tmpdim=#1pt \divide\tmpdim by1000
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\textfontsize\tmpdim
+ \fi
+}
+\def\scalebaselineskip[#1]{\if$#1$\else \ifnum#1=1000 \else
+ \tmpdim=3277sp \tmpdim=#1\tmpdim \divide\tmpdim by50
+ \tmpdim=\expandafter\ignorept\the\tmpdim \baselineskip
+ \withoutunit\setbaselineskip\tmpdim
+ \fi\fi
+}
+\def\thefontsize[#1]{\fontdim=#1\ptunit
+ \expandafter\let \expandafter\thefont \the\font
+ \edef\sizespec{at#1\ptunit}\def\dgsize{#1\ptunit}\resizefont\thefont
+ \thefont \let\dgsize=\undefined \ignorespaces
+}
+\def\thefontscale[#1]{%
+ \tmpdim=#1pt \divide\tmpdim by1000
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\thefontsize\tmpdim
+}
+\def\magstep#1{\ifcase#1 1000\or1200\or1440\or1728\or2074\or2488\fi\space}
+
+\def\typobase{\ifx\baselineskipB\undefined \def\baselineskipB{12pt}\fi
+ \ifx\fontdimB\undefined \def\fontdimB{10pt}\fi
+ \baselineskip=\baselineskipB\relax \fontdim=\fontdimB\relax
+}
+\def\em {\expandafter\ifx \the\font \tenit \additcorr \rm \else
+ \expandafter\ifx \the\font \tenbf \bi\aftergroup\afteritcorr\else
+ \expandafter\ifx \the\font \tenbi \additcorr \bf \else
+ \it \aftergroup\afteritcorr\fi\fi\fi}
+\def\additcorr{\ifdim\lastskip>0pt \skip0=\lastskip \unskip\/\hskip\skip0 \else\/\fi}
+\def\afteritcorr{\def\tmp{\ifx\next..\else\ifx\next,,\else\/%
+ \expandafter\expandafter\expandafter\next\expandafter\fi\fi}%
+ \afterassignment\tmp \let\next= }
+
+\addprotect\thefontsize \addprotect\thefontscale
+\addprotect\typosize \addprotect\typoscale
+\addprotect\textfontsize \addprotect\textfontscale
+\addprotect\em
+
+\def\fontfam{\par \input fontfam \fontfam}
+
+%%%%%%%%%%%%%% Multilingual support, sec. 3.5 in opmac-d.pdf
+
+\def\mtext#1{\csname mt:#1:\csname lan:\the\language\endcsname\endcsname}
+
+\sdef{mt:chap:en}{Chapter} \sdef{mt:chap:cs}{Kapitola} \sdef{mt:chap:sk}{Kapitola}
+\sdef{mt:t:en}{Table} \sdef{mt:t:cs}{Tabulka} \sdef{mt:t:sk}{Tabu\v lka}
+\sdef{mt:f:en}{Figure} \sdef{mt:f:cs}{Obr\'azek} \sdef{mt:f:sk}{Obr\'azok}
+
+\ifx\r\undefined \csname csaccents\endcsname \fi
+
+\sdef{lan:0}{en} \sdef{lan:100}{en} \sdef{lan:101}{en}
+\sdef{lan:5}{cs} \sdef{lan:15}{cs} \sdef{lan:115}{cs}
+\sdef{lan:6}{sk} \sdef{lan:16}{sk} \sdef{lan:116}{sk}
+
+\ifx\uselanguage\undefined \def\isolangset#1#2{}\else
+ \message{OPmac: etex.src macros detected}
+ \def\isolangset#1#2{{\uselanguage{#1}\sxdef{lan:\the\language}{#2}%
+ \global\expandafter\chardef\csname#2Patt\endcsname=\language}}
+ \isolangset{USenglish}{en} \isolangset{czech}{cs} \isolangset{slovak}{sk}
+\fi
+
+%%%%%%%%%%%%%% REF file, sec 3.6 in opmac-d.pdf
+
+\newwrite\reffile
+\newread\testin
+
+\def\wrefrelax#1#2{}
+\let\wref=\wrefrelax
+
+\def\inputref{
+ \openin\testin=\jobname.ref
+ \ifeof\testin \else
+ \closein\testin
+ \input \jobname.ref
+ \fnotenum=0 \mnotenum=0
+ \openrefA{\string\inputref}%
+ \fi
+}
+\def\openref{%
+ \ifx\wref\wrefrelax \openrefA{\string\openref}\fi
+ \gdef\openref{}%
+}
+\def\openrefA#1{%
+ \immediate\openout\reffile=\jobname.ref
+ \gdef\wref##1##2{\write\reffile{\string##1##2}}%
+ \immediate\write\reffile {\percent\percent\space OPmac - REF file (#1)}%
+ \immediate\wref\Xrefversion{{\REFversion}}%
+}
+\def\REFversion{2}
+\def\Xrefversion#1{\ifnum#1=\REFversion\relax \else \endinput \fi}
+
+%%%%%%%%%%%%%% \label, \ref, \pgref, sec. 3.7 in opmac-d.pdf
+
+\def\label[#1]{\isdefined{l0:#1}%
+ \iftrue \opwarning{duplicated label [#1], ignored}\else \xdef\lastlabel{#1}\fi
+ \ignorespaces}
+
+\def\wlabel#1{%
+ \ifx\lastlabel\undefined \else
+ \dest[ref:\lastlabel]%
+ {\protectlist\edef\tmp{\wref\Xlabel{{\lastlabel}{#1}}}\expandafter}\tmp
+ \sxdef{lab:\lastlabel}{#1}\sxdef{l0:\lastlabel}{}%
+ \global\let\lastlabel=\undefined
+ \fi
+}
+\def\ref[#1]{\isdefined{lab:#1}%
+ \iftrue \reflink[#1]{\csname lab:#1\endcsname}%
+ \else ??\opwarning{label [#1] unknown. Try to TeX me again}\openref
+ \fi
+}
+\def\pgref[#1]{\isdefined{pgref:#1}%
+ \iftrue \pglink{\csname pgref:#1\endcsname}%
+ \else ??\opwarning{pg-label [#1] unknown. Try to TeX me again}\openref
+ \fi
+}
+\def\Xlabel#1#2{\sdef{lab:#1}{#2}\sxdef{pgref:#1}{\the\lastpage}}
+
+%%%%%%%%%%%%%% Chapters, sections, subsections -- sec. 3.8 in opmac-d.pdf
+
+\def\printchap#1{\vfill\supereject
+ {\chapfont \noindent \mtext{chap} \dotocnum{\thetocnum}\par
+ \nobreak\smallskip\noindent #1\nbpar}\mark{}%
+ \nobreak \remskip\bigskipamount \firstnoindent
+}
+\def\printsec#1{\par \norempenalty-400 \bigskip
+ {\secfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}\insertmark{#1}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\def\printsecc#1{\par \norempenalty-200 \medskip
+ {\seccfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\eoldef\tit#1{\vglue4em
+ {\leftskip=0pt plus1fill \rightskip=\leftskip
+ \titfont \noindent #1\par}%
+ \nobreak\bigskip
+}
+\def\titfont{\typobase\typoscale[\magstep4/\magstep4]\bfshape}
+\def\chapfont{\typobase\typoscale[\magstep3/\magstep3]\bfshape}
+\def\secfont{\typobase\typoscale[\magstep2/\magstep2]\bfshape}
+\def\seccfont{\typobase\typoscale[\magstep1/\magstep1]\bfshape}
+\def\bfshape{\let\tenit=\tenbi \everymath\expandafter{\the\everymath\boldmath}\bf}
+
+\newcount\chapnum \newcount\secnum \newcount\seccnum \newcount\nonumnum
+\newif\ifnotoc \notocfalse \def\notoc{\global\notoctrue}
+\newif\ifnonum \nonumfalse \def\nonum{\global\nonumtrue}
+
+\eoldef\chap#1{\ifnonum\else \global\advance\chapnum by1 \fi
+ \chaphook {\globaldefs=1 \secnum=0 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax
+ \edef\thechapnum{\the\chapnum}\let\thetocnum=\thechapnum
+ \edef\thesecnum{\othe\chapnum.\the\secnum}%
+ \def\dotocnumafter{\wtotoc0\bfshape{#1}}%
+ \printchap{#1}\resetnonumnotoc
+}
+\eoldef\sec#1{\ifnonum\else \global\advance\secnum by1 \fi
+ \sechook {\globaldefs=1 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax
+ \edef\thesecnum{\othe\chapnum.\the\secnum}\let\thetocnum=\thesecnum
+ \def\dotocnumafter{\wtotoc1\rm{#1}}%
+ \printsec{#1}\resetnonumnotoc
+}
+\eoldef\secc#1{\ifnonum\else \global\advance\seccnum by1 \fi
+ \secchook {}\relax
+ \edef\theseccnum{\othe\chapnum.\the\secnum.\the\seccnum}\let\thetocnum=\theseccnum
+ \def\dotocnumafter{\wtotoc2\rm{#1}}%
+ \printsecc{#1}\resetnonumnotoc
+}
+\def\wtotoc#1#2#3{% #1 = level, #2 = info, #3 = titletext
+ \ifnotoc\else
+ \def\act{\wref{\Xtoc{#1}{\noexpand#2}}}%
+ \expandafter\act\expandafter{\expandafter{\thetocnum}{#3}{\the\pageno}}%
+ \fi
+}
+\def\wcontents#1#2{% #1 = sequence to REF, #2 = titletext
+ \ifnotoc\else
+ \expandafter\wref\expandafter#1\expandafter
+ {\expandafter{\thetocnum}{#2}{\the\pageno}}%
+ \fi
+}
+\def\dotocnum#1{%
+ \leavevmode
+ {\ifnonum \global\advance\nonumnum by1 \edef\thetocnum{!\the\nonumnum}\fi
+ \wlabel\thetocnum \dest[toc:\tocilabel.\thetocnum]%
+ \dotocnumafter}\ifnonum\else#1\fi
+ \global\let\dotocnumafter=\relax
+}
+\def\resetnonumnotoc{\global\notocfalse \global\nonumfalse
+ \ifx\dotocnumafter\relax \else
+ \opwarning{\noexpand\dotocnum unused in printchap/printsec/printsecc}\fi
+}
+\def\insertmark#1{\toks0={#1}\mark{{\ifnonum\else\thetocnum\fi} {\the\toks0}}}
+
+\newskip\remskipamount
+\def\remskip{\afterassignment\remskipA \global\remskipamount}
+\def\remskipA{\vskip\remskipamount \penalty11333 }
+\def\norempenalty{\ifnum\lastpenalty=11333
+ \vskip-\remskipamount \tmpnum=\else \removelastskip \penalty \fi}
+
+\def\othe#1.{\ifnum#1>0 \the#1.\fi}
+\def\thechapnum{} \def\thesecnum{} \def\theseccnum{}
+
+\def\afternoindent{\global\everypar={\wipeepar\setbox7=\lastbox}}
+\def\wipeepar{\global\everypar={}}
+\let\firstnoindent=\afternoindent
+\def\nbpar{{\interlinepenalty=10000\endgraf}}
+\def\nl{\hfil\break}
+
+%%%%%%%%%%%%%% Captions, equations -- sec. 3.9 in opmac-d.pdf
+
+\newcount\tnum \newcount\fnum \newcount\dnum
+
+\def\thetnum{\thesecnum.\the\tnum}
+\def\thefnum{\thesecnum.\the\fnum}
+\def\thednum{(\the\dnum)}
+
+\def\caption/#1 {\isdefined{#1num}%
+ \iftrue \global\advance \csname #1num\endcsname by1
+ \else \opwarning{Unknown caption /#1}%
+ \fi
+ \bgroup
+ \leftskip=\iindent plus1fil
+ \rightskip=\iindent plus-1fil
+ \parfillskip=0pt plus2fil
+ \def\par{\nbpar\egroup}%
+ \captionhook{#1}\noindent
+ \wlabel{\csname the#1num\endcsname}%
+ \printcaption{\mtext{#1}}{\csname the#1num\endcsname}%
+}
+\def\printcaption#1#2{{\bf#1 #2}\enspace}
+
+\expandafter\def\expandafter\endinsert\expandafter{\expandafter\par\endinsert}
+
+\def\eqmark{\global\advance\dnum by1
+ \ifinner\else\eqno \fi
+ \wlabel\thednum \thednum
+}
+
+%%%%%%%%%%%%%% Items -- sec. 3.10 in opmac-d.pdf
+
+\newcount\itemnum \itemnum=0
+
+\def\begitems{\par\iiskip\bgroup
+ \itemnum=0 \adef*{\startitem}
+ \advance\leftskip by\iindent
+ \let\printitem=\normalitem
+}
+\def\enditems{\par\egroup\iiskip}
+
+\def\startitem{\par \advance\itemnum by1
+ \itemhook \noindent\llap{\printitem}\ignorespaces}
+\def\normalitem{$\bullet$\enspace}
+
+\def\style#1{\expandafter\let\expandafter\printitem\csname item:#1\endcsname
+ \ifx\printitem\relax \let\printitem=\normalitem \fi
+}
+\sdef{item:o}{\raise.4ex\hbox{$\scriptscriptstyle\bullet$} }
+\sdef{item:-}{- }
+\sdef{item:n}{\the\itemnum. }
+\sdef{item:N}{\the\itemnum) }
+\sdef{item:i}{(\romannumeral\itemnum) }
+\sdef{item:I}{\uppercase\expandafter{\romannumeral\itemnum}\kern.5em}
+\sdef{item:a}{\athe\itemnum) }
+\sdef{item:A}{\uppercase\expandafter{\athe\itemnum}) }
+\sdef{item:x}{\raise.3ex\fullrectangle{.6ex} }
+\sdef{item:X}{\raise.2ex\fullrectangle{1ex}\kern.5em}
+
+\def\fullrectangle#1{\hbox{\vrule height#1 width#1}}
+
+\def\athe#1{\ifcase#1?\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or
+ m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else ?\fi
+}
+
+%%%%%%%%%%%%%% TOC -- sec. 3.11 in opmac-d.pdf
+
+\def\toclist{} \newif\ifischap \ischapfalse
+
+\def\Xtoc#1#2#3#4#5{\ifnum#1=0 \ischaptrue\fi \addto\toclist{\tocline{#1}{#2}{#3}{#4}{#5}}}
+\def\Xchap{\Xtoc0\bfshape} \def\Xsec{\Xtoc1\rm} \def\Xsecc{\Xtoc2\rm}
+
+\def\tocline#1#2#3#4#5{{\leftskip=#1\iindent \rightskip=2\iindent
+ \ifischap\advance\leftskip by\iindent\fi
+ \ifnum#1>1 \advance\leftskip by\iindent\fi
+ \toclinehook \noindent\llap{#2\toclink{#3}\enspace}%
+ {#2#4}\nobreak\tocdotfill\pglink{#5}\nobreak\hskip-2\iindent\null\par}}
+\def\tocdotfill{\leaders\hbox to.8em{\hss.\hss}\hskip 1em plus1fill\relax}
+
+\def\maketoc{\par \ifx\toclist\empty
+ \opwarning{\noexpand\maketoc -- data unavailable, TeX me again}\openref
+ \else \toclist \fi}
+
+\def\toclinkA#1{\def\tmp##1!##2\end{\if^##1^\kern.8em \else##1\fi}\tmp#1!\end}
+
+%%%%%%%%%%%%%% Index -- sec. 3.12 on opmac-d.pdf
+
+\def\iindex#1{\openref\wref\Xindex{{#1}{\the\pageno}}}
+
+\def\ii #1 {\leavevmode\def\tmp{#1}\iiA #1,,}
+
+\def\iiA #1,{\if$#1$\else\def\tmpa{#1}%
+ \ifx\tmpa\iiatsign \expandafter\iiB\tmp,,\else\iindex{#1}\fi
+ \expandafter\iiA\fi}
+\def\iiatsign{@}
+
+\def\iiB #1,{\if$#1$\else \iiC#1/\relax \expandafter\iiB\fi}
+\def\iiC #1/#2\relax{\if$#2$\else\iindex{#2#1}\fi}
+
+\def\iid #1 {\leavevmode\iindex{#1}#1\futurelet\tmp\iiD}
+\def\iiD{\ifx\tmp,\else\ifx\tmp.\else\space\fi\fi}
+
+\def\Xindex{\Xindexg,}
+\def\Xindexg#1#2#3{\bgroup \def~{ }% #1=prefix, #2=index-item, #3=pageno
+ \isdefined{#1#2}\iftrue
+ \ifx^#3^\else
+ \expandafter\firstdata \csname#1#2\endcsname \XindexA
+ \ifnum#3=\tmpa % \ii on the same page
+ \else
+ \tmpnum=#3 \advance\tmpnum by\pgfolioB-1
+ \expandafter\seconddata \csname#1#2\endcsname \XindexB
+ \ifx\tmp\empty
+ \sxdef{#1#2}{{#3/+}{\pgfolioA{#3}}} % previous item: empty page
+ \else
+ \if\tmpb+% state: the pagelist ends by a pagenumber
+ \ifnum\tmpnum=\tmpa % the consecutive page
+ \sxdef{#1#2}{{#3/-}{\tmp\iiendash}}
+ \else % the pages drop
+ \sxdef{#1#2}{{#3/+}{\tmp, \pgfolioA{#3}}}
+ \fi
+ \else % state: the pagelist ends by --
+ \ifnum\tmpnum=\tmpa % the consecutive page
+ \sxdef{#1#2}{{#3/-}{\tmp}}
+ \else % the pages drop
+ \sxdef{#1#2}{{#3/+}{\tmp\pgfolioA{\tmpa}, \pgfolioA{#3}}}
+ \fi\fi\fi\fi\fi
+ \else % first occurrence of the index item #2
+ \ifx^#3^\sxdef{#1#2}{{0/+}{}}\else \sxdef{#1#2}{{#3/+}{\pgfolioA{#3}}}\fi
+ \ifx,#1
+ \global \expandafter\addto \expandafter\iilist \csname#1#2\endcsname
+ \else
+ \isdefined{iilist:#1}\iftrue
+ \global\expandafter\addto \csname iilist:#1\expandafter\endcsname \csname#1#2\endcsname
+ \else \sxdef{iilist:#1}{\expandafter\noexpand \csname#1#2\endcsname}
+ \fi\fi\fi
+ \egroup
+}
+\def\iilist{} \def\iiendash{--}
+
+\def\firstdata#1#2{\expandafter\expandafter\expandafter #2\expandafter\firstdataA#1}
+\def\firstdataA#1#2{#1&}
+\def\seconddata#1#2{\expandafter\expandafter\expandafter #2\expandafter\seconddataA#1}
+\def\seconddataA#1#2{#2&}
+
+\def\XindexA#1/#2&{\def\tmpa{#1}\let\tmpb=#2}
+\def\XindexB#1&{\def\tmp{#1}}
+
+\def\pgfolioA#1{\ifnum#1<0 \romannumeral-\fi#1}
+\def\pgfolioB{\ifnum\tmpnum<0-\fi}
+
+\def\makeindex{\par
+ \ifx\iilist\empty \opwarning{index data-buffer is empty. TeX me again}
+ \else
+ \bgroup
+ \setprimarysorting
+ \def\act##1{\ifx##1\relax \else
+ \firstdata##1\XindexA \seconddata##1\XindexB
+ \if\tmpb+%
+ \preparesorting##1% converted item by sorting data in \tmpb
+ \xdef##1{{\tmpb}{\tmp}}
+ \else
+ \preparesorting##1% converted item by sorting data in \tmpb
+ \xdef##1{{\tmpb}{\tmp\pgfolioA{\tmpa}}}
+ \fi
+ \expandafter\act\fi}
+ \expandafter \act \iilist \relax
+ \egroup
+ \dosorting % sorting is in progress
+ \bgroup
+ \rightskip=0pt plus1fil \exhyphenpenalty=10000 \leftskip=\iindent
+ \def\act##1{\ifx##1\relax \else \prepii##1%
+ \seconddata##1\printiipages \expandafter\act \fi}
+ \expandafter \act \iilist \relax
+ \egroup
+ \fi
+}
+\def\printiipages#1&{ #1\par}
+
+\def\prepii #1{\isinlist \iispeclist #1\iftrue
+ \expandafter\expandafter\expandafter \printii \csname\string#1\endcsname&%
+ \else \expandafter\prepiiA\string #1&%
+ \fi
+}
+\def\prepiiA #1#2#3&{\printii#3&}
+
+\def\iis #1 #2{\bgroup \def~{ }%
+ \global\expandafter\addto\expandafter\iispeclist\csname,#1\endcsname
+ \global\sdef{\expandafter\string\csname,#1\endcsname}{#2}%
+ \egroup \ignorespaces
+}
+\def\iispeclist{}
+
+\def\printii #1&{\gdef\currii{#1}\noindent\everyii
+ \hskip-\iindent \ignorespaces\printiiA#1//}
+\def\printiiA #1/{\if^#1^\let\previi=\currii \else
+ \expandafter\scanprevii\previi/&\def\tmpb{#1}\edef\tmpb{\meaning\tmpb}%
+ \ifx\tmpa\tmpb \iiemdash \else#1 \gdef\previi{}\fi
+ \expandafter\printiiA\fi
+}
+\def\iiemdash{\kern.1em---\space}
+\def\everyii{}
+
+\def\scanprevii#1/#2&{\def\previi{#2}\def\tmpa{#1}\edef\tmpa{\meaning\tmpa}}
+\def\previi{} % previous index item
+
+%%%%%%%%%%%%%% Sorting -- sec. 3.13 in opmac-d.pdf
+
+\def\sortingdata{%
+ /,{ },-,&,@,%
+ aA\"a\"A\'a\'A,%
+ bB,%
+ cC,%
+ \v c\v C,%
+ dD\v d\v D,%
+ eE\'e\'E\v e\v E,%
+ fF,%
+ gG,%
+ hH,%
+ ^^T^^U^^V,% ch Ch CH
+ iI\'i\'I,%
+ jJ,%
+ kK,%
+ lL\'l\'L\v l\v L,%
+ mM,%
+ nN\v n\v N,%
+ oO\"o\"O\'o\'O\^o\^O,%
+ pP,%
+ qQ,%
+ rR\'r\'R,%
+ \v r\v R,%
+ sS,%
+ \v s\v S,%
+ tT\v t\v T,%
+ uU\"u\"U\'u\'U\r u\r U,%
+ vV,%
+ wW,%
+ xX,%
+ yY\'y\'Y,%
+ zZ,%
+ \v z\v Z,%
+ 0,1,2,3,4,5,6,7,8,9,'.%
+}
+\def\setignoredchars{\setlccodes ,.;.?.!.:.'.".|.(.).[.].<.>.=.+.{}{}}
+\def\specsortingdatacs {ch:^^T Ch:^^U CH:^^V}
+\def\specsortingdatask {ch:^^T Ch:^^U CH:^^V} % DZ etc. are sorted normally
+
+\def\setprimarysorting {%
+ \isdefined{sortingdata\csname lan:\the\language\endcsname}\iftrue
+ \expandafter \let\expandafter\sortingdata
+ \csname sortingdata\csname lan:\the\language\endcsname\endcsname
+ \xdef\sortingmessage{using \string\sortingdata\csname lan:\the\language\endcsname}%
+ \else
+ \xdef\sortingmessage{using internal \string\sortingdata}%
+ \ifx\r\undefined
+ \opwarning{\noexpand\csaccents is unused, falling back to ASCII sorting}%
+ \global\let\asciisorting=t%
+ \fi\fi
+ \ifx\asciisorting\undefined
+ \xdef\sortingdata{\sortingdata}% expand sorting data now
+ \isdefined{specsortingdata\csname lan:\the\language\endcsname}\iftrue
+ \xdef\specsortingdata{\csname specsortingdata\csname lan:\the\language\endcsname
+ \endcsname\space}%
+ \expandafter\setprimarysortingA \meaning\specsortingdata\relax
+ \else \gdef\specsortingdata{}\fi
+ \else
+ \gdef\sortingdata{.}\gdef\specsortingdata{}\gdef\sortingmessage{ASCII}%
+ \fi
+ \def\act##1{\ifx##1.\else
+ \ifx##1,\advance\tmpnum by1
+ \else \lccode`##1=\tmpnum \fi
+ \expandafter \act \fi}%
+ \tmpnum=60 \expandafter \act\sortingdata \setignoredchars
+}
+\def\setprimarysortingA#1->#2\relax{\gdef\specsortingdata{#2}}
+\def\sortingmessage{ASCII default}
+
+\def\setsecondarysorting {\def\act##1{\ifx##1.\else
+ \ifx##1,\else \advance\tmpnum by1 \lccode`##1=\tmpnum \fi
+ \expandafter \act \fi}%
+ \tmpnum=60 \expandafter \act\sortingdata \setignoredchars
+}
+
+\def\preparesorting#1{\expandafter\preparesortingA\string#1&}
+\gdef\preparesortingA#1#2#3&{\xdef\tmpb{#3}%
+ \expandafter\preparesortingB\specsortingdata.:{}
+ \lowercase\expandafter{\expandafter\gdef\expandafter\tmpb\expandafter{\tmpb}}%
+ \replacestrings{.}{}%
+}
+\def\preparesortingB#1#2:#3 {\ifx.#1\else \replacestrings{#1#2}{#3}\expandafter\preparesortingB\fi}
+
+\newif \ifAleB
+
+\def\isAleB #1#2{%
+ \edef\tmp{\firstdata#1\empty\relax\firstdata#2\empty\relax \noexpand#1\noexpand#2}%
+ \expandafter \testAleB \tmp
+}
+\def\testAleB #1#2\relax #3#4\relax #5#6{%
+ \if #1#3\if #1&\testAleBsecondary #5#6%
+ \else \testAleB #2\relax #4\relax #5#6%
+ \fi
+ \else \ifnum `#1<`#3 \AleBtrue \else \AleBfalse \fi
+ \fi
+}
+\def\testAleBsecondary#1#2{%
+ \bgroup
+ \setsecondarysorting
+ \preparesorting#1\let\tmpa=\tmpb \preparesorting#2%
+ \edef\tmp{\tmpa0\relax\tmpb1\relax}%
+ \expandafter\testAleBsecondaryX \tmp
+ \egroup
+}
+\def\testAleBsecondaryX #1#2\relax #3#4\relax {%
+ \if #1#3\testAleBsecondaryX #2\relax #4\relax
+ \else \ifnum `#1<`#3 \global\AleBtrue \else \global \AleBfalse \fi
+ \fi
+}
+\def\dosorting{%
+ \message{Opmac: Sorting index (\sortingmessage)...}%
+ \def\act##1{\ifx##1\relax\else \addto\iilist{##1,}%
+ \expandafter\act\fi}%
+ \edef\iilist{\expandafter}\expandafter\act \iilist\relax
+ \edef\iilist{\expandafter}\expandafter\mergesort \iilist \end,\end
+}
+
+\def\mergesort #1#2,#3{% by Miroslav Olsak
+ \ifx,#1% % prazdna-skupina,neco, (#2=neco #3=pokracovani)
+ \addto\iilist{#2,}% % dvojice skupin vyresena
+ \sortreturn{\fif\mergesort#3}% % \mergesort pokracovani
+ \fi
+ \ifx,#3% % neco,prazna-skupina, (#1#2=neco #3=,)
+ \addto\iilist{#1#2,}% % dvojice skupin vyresena
+ \sortreturn{\fif\mergesort}% % \mergesort dalsi
+ \fi
+ \ifx\end#3% % neco,konec (#1#2=neco)
+ \ifx\empty\iilist % neco=kompletni setrideny seznam
+ \def\iilist{#1#2}%
+ \sortreturn{\fif\fif\gobbletoend}% % koncim
+ \else % neco=posledni skupina nebo \end
+ \sortreturn{\fif\fif % spojim \indexbuffer+necoa cele znova
+ \edef\iilist{\expandafter}\expandafter\mergesort\iilist#1#2,#3}%
+ \fi\fi % zatriduji: p1+neco1,p2+neco2, (#1#2=p1+neco1 #3=p2)
+ \isAleB #1#3\ifAleB % p1<p2
+ \addto\iilist{#1}% % p1 do bufferu
+ \sortreturn{\fif\mergesort#2,#3}% % \mergesort neco1,p2+neco2,
+ \else % p1>p2
+ \addto\iilist{#3}% % p2 do bufferu
+ \sortreturn{\fif\mergesort#1#2,}% % \mergesort p1+neco1,neco2,
+ \fi
+ \relax % zarazka, na ktere se zastavi \sortreturn
+}
+\def\sortreturn#1#2\fi\relax{#1} \def\fif{\fi}
+\def\gobbletoend #1\end{}
+
+%%%%%%%%%%%%%% \begmulti ... \endmulti TBN p. 244, 245 -- sec. 3.14 in opmac-d.pdf
+
+\newcount\mullines
+\def\corrsize #1{%% #1 := #1 + \splittopskip - \topskip
+ \advance #1 by \splittopskip \advance #1 by-\topskip
+}
+\def\begmulti #1 {\par\bgroup\wipeepar\multiskip\penalty0 \def\Ncols{#1}
+ \setbox6=\vbox\bgroup\penalty0
+ %% \hsize := Sirka sloupce = (\hsize+\colsep) / n - \colsep
+ \advance\hsize by\colsep
+ \divide\hsize by\Ncols \advance\hsize by-\colsep
+ \mullines=0
+ \def\par{\ifhmode\endgraf\global\advance\mullines by\prevgraf\fi}%
+}
+\def\endmulti{\vskip-\prevdepth\vfil
+ \expandafter\egroup\expandafter\baselineskip\the\baselineskip\relax
+ \dimen0=.8\maxdimen \tmpnum=\dimen0 \divide\tmpnum by\baselineskip
+ \splittopskip=\baselineskip
+ \setbox1=\vsplit6 to0pt
+ %% \dimen1 := the free space on the page
+ \ifdim\pagegoal=\maxdimen \dimen1=\vsize \corrsize{\dimen1}
+ \else \dimen1=\pagegoal \advance\dimen1 by-\pagetotal \fi
+ \ifdim \dimen1<2\baselineskip
+ \vfil\break \dimen1=\vsize \corrsize{\dimen1} \fi
+ \ifnum\mullines<\tmpnum \dimen0=\ht6 \else \dimen0=.8\maxdimen \fi
+ \divide\dimen0 by\Ncols \relax
+ %% split the material to more pages?
+ \ifdim \dimen0>\dimen1 \splitpart
+ \else \balancecolumns \fi % only balancing
+ \multiskip\egroup
+}
+\def\makecolumns{\bgroup % full page, destination height: \dimen1
+ \vbadness=20000 \setbox1=\hbox{}\tmpnum=0
+ \loop \ifnum\Ncols>\tmpnum
+ \advance\tmpnum by1
+ \setbox1=\hbox{\unhbox1 \vsplit6 to\dimen1 \hss}
+ \repeat
+ \hbox{}\nobreak\vskip-\splittopskip \nointerlineskip
+ \line{\unhbox1\unskip}
+ \dimen0=\dimen1 \divide\dimen0 by\baselineskip \multiply\dimen0 by\Ncols
+ \global\advance\mullines by-\dimen0
+ \egroup
+}
+\def\splitpart{%
+ \makecolumns % full page
+ \vskip 0pt plus 1fil minus\baselineskip \break
+ \ifnum\mullines<\tmpnum \dimen0=\ht6 \else \dimen0=.8\maxdimen \fi
+ \divide\dimen0 by\Ncols \relax
+ \ifx\balancecolumns\flushcolumns \advance\dimen0 by-.5\vsize \fi
+ \dimen1=\vsize \corrsize{\dimen1}\dimen2=\dimen1
+ \advance\dimen2 by-\Ncols\baselineskip
+ %% split the material to more pages?
+ \ifvoid6 \else
+ \ifdim \dimen0>\dimen2 \expandafter\expandafter\expandafter \splitpart
+ \else \balancecolumns % last balancing
+ \fi \fi
+}
+\def\balancecolumns{\bgroup \setbox7=\copy6 % destination height: \dimen0
+ \ifdim\dimen0>\baselineskip \else \dimen0=\baselineskip \fi
+ \vbadness=20000
+ \def\tmp{%
+ \setbox1=\hbox{}\tmpnum=0
+ \loop \ifnum\Ncols>\tmpnum
+ \advance\tmpnum by1
+ \setbox1=\hbox{\unhbox1
+ \ifvoid6 \hbox to\wd6{\hss}\else \vsplit6 to\dimen0 \fi\hss}
+ \repeat
+ \ifvoid6 \else
+ \advance \dimen0 by.2\baselineskip
+ \setbox6=\copy7
+ \expandafter \tmp \fi}\tmp
+ \hbox{}\nobreak\vskip-\splittopskip \nointerlineskip
+ \hbox to\hsize{\unhbox1\unskip}%
+ \egroup
+}
+
+%%%%%%%%%%%%%% Colors -- sec. 3.15 in opmac-d.pdf
+
+\newif\iflocalcolor \localcolorfalse
+\let\localcolor=\localcolortrue
+
+% for backward compatibility:
+\let\longlocalcolor=\localcolor \let\locpgcolor=\relax
+\def\linecolor#1{}
+
+\def\Blue{\setcmykcolor{1 1 0 0}}
+\def\Red{\setcmykcolor{0 1 1 0}}
+\def\Brown{\setcmykcolor{0 0.67 0.67 0.5}}
+\def\Green{\setcmykcolor{1 0 1 0}}
+\def\Yellow{\setcmykcolor{0 0 1 0}}
+\def\Cyan{\setcmykcolor{1 0 0 0}}
+\def\Magenta{\setcmykcolor{0 1 0 0}}
+\def\White{\setcmykcolor{0 0 0 0}}
+\def\Grey{\setcmykcolor{0 0 0 0.5}}
+\def\LightGrey{\setcmykcolor{0 0 0 0.2}}
+\def\Black{\setcmykcolor{0 0 0 1}}
+
+\def\setcmykcolor#1{\global\let\ensureblacko=\ensureblackoA
+ \iflocalcolor \edef\currentcolor{#1}\colorstackpush\currentcolor \aftergroup\colorstackpop
+ \else \xdef\currentcolor{#1}\colorstackset\currentcolor \fi
+}
+\def\pdfblackcolor{0 0 0 1}
+\xdef\currentcolor{\pdfblackcolor}
+\def\ensureblacko#1{#1}
+\def\ensureblackoA#1{\colorstackpush\pdfblackcolor #1\colorstackpop}
+
+\ifx\pdfcolorstackinit\undefined
+ \def\colorstackpush#1{\pdfliteral{#1 k #1 K}}
+ \def\colorstackpop{\colorstackpush\currentcolor}
+ \let\colorstackset=\colorstackpush
+\else
+ \mathchardef\colorstackcnt=\pdfcolorstackinit page {0 g 0 G}
+ \def\colorstackpush#1{\pdfcolorstack\colorstackcnt push{#1 k #1 K}}
+ \def\colorstackpop{\pdfcolorstack\colorstackcnt pop}
+ \def\colorstackset#1{\pdfcolorstack\colorstackcnt set{#1 k #1 K}}
+\fi
+
+\addprotect\setcmykcolor \addprotect\localcolor \addprotect\longlocalcolor
+
+\ifpdftex\else
+ \def\setcmykcolor#1{} \def\pdfliteral#1{}
+\fi
+
+\def\draft{\addto\prepghook{\draftbox{\tenbf DRAFT}\nointerlineskip}}
+\def\draftbox#1{\vbox to0pt{\setbox0=\hbox{\typosize[10/]#1}%
+ \kern.5\vsize \kern4\wd0 \hbox to0pt{\kern.5\hsize \kern-2.5\wd0
+ \pdfsave \pdfrotate{55}\pdfscale{10}{10}%
+ \hbox to0pt{\localcolor\LightGrey \box0\hss}%
+ \pdfrestore
+ \hss}\vss}}
+
+\ifpdftex\else
+ \def\draft{\opwarning{\string\draft: Grey color is possible in pdfTeX only}}
+\fi
+
+%%%%%%%%%%%%%% Hyperrefs -- sec. 3.16 in opmac-d.pdf
+
+\def\destheight{1.4em}
+\def\destactive[#1:#2]{\if$#2$\else\ifvmode
+ \tmpdim=\prevdepth \prevdepth=-1000pt
+ \destbox[#1:#2]\prevdepth=\tmpdim
+ \else \destbox[#1:#2]%
+ \fi\fi
+}
+\def\destbox[#1]{\vbox to0pt{\kern-\destheight \pdfdest name{#1} xyz\vss}}
+\def\dest[#1]{}
+
+\def\linkactive[#1:#2]#3#4{\leavevmode\pdfstartlink height.9em depth.3em
+ \pdfborder{#1} goto name{#1:#2}\relax {#3#4}\pdfendlink
+}
+\def\link[#1]#2#3{\leavevmode{#3}}
+
+\def\urllink[#1:#2]#3{{\let~=\relax \let\\=\relax \let\{=\relax \let\}=\relax
+ \leavevmode\pdfstartlink height.9em depth.3em
+ \pdfborder{#1}user{/Subtype/Link/A <</Type/Action/S/URI/URI(#2)>>}\relax
+ {\def~{\nobreak\space}\urlcolor#3}\pdfendlink}%
+}
+\def\toclink#1{\toclinkA{#1}}
+\def\pglink#1{\leavevmode{\pgfolioA{#1}}}
+\def\citelink#1#2{\leavevmode{#2}}
+\def\reflink[#1]#2{\leavevmode{#2}}
+\def\ulink[#1]#2{\leavevmode{#2}}
+\def\urlcolor{}
+
+\def\hyperlinks#1#2{%
+ \let\dest=\destactive \let\link=\linkactive
+ \def\toclink##1{\link[toc:\tocilabel.##1]{\localcolor#1}{\toclinkA{##1}}}%
+ \def\pglink##1{\link[pg:\pgilabel.##1]{\localcolor#1}{\pgfolioA{##1}}}%
+ \def\citelink##1##2{\link[cite:##1]{\localcolor#1}{##2}}%
+ \def\reflink[##1]##2{\link[ref:##1]{\localcolor#1}{##2}}%
+ \def\ulink[##1]##2{\urllink[url:##1]{##2}}%
+ \def\urlcolor{\localcolor#2}%
+}
+\def\tocilabel{} \def\pgilabel{}
+
+\def\pdfborder#1{\if^#1^\else \isdefined{#1border}\iftrue
+ \if^\csname#1border\endcsname^\else attr{/C[\csname#1border\endcsname] /Border[0 0 .6]}\fi
+ \else attr{/Border[0 0 0]}\fi\fi
+}
+
+\ifpdftex \else
+ \def\link[#1]#2#3{#3}
+ \def\urllink[#1]#2{#2}
+ \def\hyperlinks#1#2{\opwarning{No pdfTeX detected, \noexpand\hyperlinks ignored}}
+\fi
+
+\def\url#1{{\def\tmpb{#1}%
+ \replacestrings{//}{{\urlskip\urlslashslash\urlbskip}}%
+ \replacestrings{/}{{\urlskip/\urlbskip}}%
+ \replacestrings{.}{{\urlskip.\urlbskip}}%
+ \replacestrings{?}{{\urlskip?\urlbskip}}%
+ \replacestrings{=}{{\urlskip=\urlbskip}}%
+ \replacestrings{~}{{\char`\~}}%
+ \replacestrings{_}{{\char`\_}}%
+ \replacestrings{^}{{\char`\^}}%
+ \replacestrings{\\}{\bslash}%
+ \replacestrings{\{}{{\char`\{}}%
+ \replacestrings{\}}{{\char`\}}}%
+ \replacestrings{&}{{\urlbskip\char`\& \urlskip}}%
+ \def\|{}\ulink[#1]{\urlfont\tmpb\null}%
+}}
+\def\urlfont{\tt \let\|=\urlspecchar}
+\def\urlspecchar{\penalty10 }
+\def\urlskip{\null\nobreak\hskip0pt plus0.05em\relax}
+\def\urlbskip{\penalty100 \hskip0pt plus0.05em\relax}
+\def\urlslashslash{/\urlskip/}
+\addprotect\url
+
+%%%%%%%%%%%%%% Outlines -- sec. 3.17 in opmac-d.pdf
+
+\def\outlines#1{\pdfcatalog{/PageMode/UseOutlines}\openref\ifx\toclist\empty
+ \opwarning{\noexpand\outlines -- data unavailable. TeX me again}%
+ \else
+ \ifx\urlcolor\empty
+ \opwarning{\noexpand\outlines doesn't work when \noexpand\hyperlinks isn't declared}\fi
+ {\let\tocline=\outlinesA
+ \count0=0 \count1=0 \toclist % calculate numbers o childs
+ \def\outlinelevel{#1}\let\tocline=\outlinesB
+ \count0=0 \count1=0 \toclist}% create outlines
+ \fi
+}
+\def\outlinesA#1#2#3#4#5{%
+ \advance\count#1 by1
+ \ifcase#1\or
+ \addoneol{ol:\the\count0}\or
+ \addoneol{ol:\the\count0:\the\count1}\fi
+}
+\def\addoneol#1{\isdefined{#1}%
+ \iftrue \tmpnum=\csname#1\endcsname\relax
+ \advance\tmpnum by1 \sxdef{#1}{\the\tmpnum}%
+ \else \sxdef{#1}{1}%
+ \fi
+}
+\def\outlinesB#1#2#3#4#5{%
+ \advance\count#1 by1
+ \ifcase#1\tmpnum=\isdefined{ol:\the\count0}%
+ \iftrue\csname ol:\the\count0\endcsname\else0\fi \or
+ \tmpnum=\isdefined{ol:\the\count0:\the\count1}%
+ \iftrue\csname ol:\the\count0:\the\count1\endcsname\else0\fi \or
+ \tmpnum = 0 \fi
+ \protectlist \def~{ }\setcnvcodesA
+ \ifx\toasciidata\empty \let\lowercase=\relax \else \expandafter\setlccodes\toasciidata{}{}\fi
+ \cnvhook \lowercase{\gdef\tmp{#4}}%
+ \outlinesC{#1}{toc:\tocilabel.#3}{\ifnum#1<\outlinelevel\space\else-\fi}{\tmpnum}{\tmp}%
+}
+\def\outlinesC#1#2#3#4#5{\pdfoutline goto name{#2} count #3#4{#5}\relax}
+
+\def\setcnvcodesA{\global\let\setcnvcodesA=\relax % I am working only once
+ \isdefined{toasciidata\csname lan:\the\language\endcsname}\iftrue
+ \xdef\toasciidata{\csname toasciidata\csname lan:\the\language\endcsname\endcsname}%
+ \else
+ \ifx\r\undefined
+ \gdef\toasciidata{}
+ \opwarning{\noexpand\csaccents unused, CZ/SK outline-conversion is off}%
+ \else
+ \xdef\toasciidata{\toasciidata}%
+ \fi\fi
+}
+\def\toasciidata{% Removes Czech+Slovak accents
+ AA\'AA\"AA\'aa\"aaBBCC\v CC\v ccDD\v DD\v ddEE\'EE\v EE\'ee\v ee%
+ FFGGHHII\'II\'iiJJKKLL\'LL\v LL\'ll\v llMMNN\v NN\v nnOO\'OO\"OO\^OO%
+ \'oo\"oo\^ooPPQQRR\v RR\v rrSS\v SS\v ssTT\v TT\v ttUU\'UU\"UU\r UU%
+ \'uu\"uu\r uuVVWWXXYY\'YY\'yyZZ\v ZZ\v zz%
+}
+\def\setlccodes#1#2{\if\relax#2\relax \else \lccode`#1=`#2 \expandafter \setlccodes \fi}
+
+\newcount\oulnum
+\def\insertoutline#1{\global\advance\oulnum by1
+ \pdfdest name{oul:\the\oulnum} xyz\relax
+ \pdfoutline goto name{oul:\the\oulnum} count0 {#1}\relax
+}
+
+\ifpdftex \else
+ \def\outlines#1{\opwarning{DVI output has no outlines}\gdef\outlines##1{}}
+ \let\insertoutline=\outlines
+\fi
+
+%%%%%%%%%%%%%% Verbatim, \begtt, \endtt -- sec. 3.18 in opmac-d.pdf
+
+\newcount\ttline \ttline=-1
+\newcount\viline
+\newread\vifile
+
+\def\setverb{\frenchspacing\def\do##1{\catcode`##1=12}\dospecials \catcode`\*=12 }
+\def\begtt{\par \vskip\parskip \ttskip \bgroup \wipeepar
+ \setverb \adef{ }{\ }%
+ \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi
+ \parindent=\ttindent \parskip=0pt
+ \tthook\relax
+ \ifnum\ttline<0 \else
+ \tenrm \thefontscale[700]\let\sevenrm=\thefont
+ \everypar\expandafter{\the\everypar \global\advance\ttline by1 \printttline}\fi
+ \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}%
+ \obeylines \startverb}
+{\catcode`\|=0 \catcode`\\=12
+|gdef|startverb#1\endtt{|tt|ptthook#1|egroup|par|ttskip|testparA}}
+\def\testparA{\expandafter\testparB\romannumeral-`\.}
+\def\testparB{\futurelet\tmpa\testparC}
+\def\testparC{\ifx\tmpa\par\else\afternoindent\fi}
+
+\def\printttline{\llap{\sevenrm\the\ttline\kern.9em}}
+
+\def\activettchar#1{%
+ \ifx\savedttchar\undefined\else \catcode\savedttchar=\savedttcharc \fi
+ \chardef\savedttchar=`#1%
+ \chardef\savedttcharc=\catcode`#1%
+ \bgroup\lccode`\~=`#1%
+ \lowercase {\egroup\def~}{\leavevmode\hbox\bgroup\setverb\adef{ }{\ }%
+ \intthook\tt\readverb}%
+ \bgroup\lccode`\~=`#1\lowercase{\egroup\def\readverb ##1~}{##1\egroup}%
+ \catcode`#1=13
+}
+
+\def\verbinput (#1) #2 {\par \def\tmpa{#2}%
+ \ifx\vifilename\tmpa \else
+ \openin\vifile=#2
+ \global\viline=0 \global\let\vifilename=\tmpa
+ \ifeof\vifile
+ \opwarning{\noexpand\verbinput - file "#2" is unable to reading}
+ \expandafter\expandafter\expandafter\skiptorelax
+ \fi
+ \fi
+ \viscanparameter #1+\relax
+}
+\def\skiptorelax#1\relax{}
+
+\def \viscanparameter #1+#2\relax{%
+ \if$#2$\viscanminus(#1)\else \viscanplus(#1+#2)\fi
+}
+\def\viscanplus(#1+#2+){%
+ \if$#1$\tmpnum=\viline
+ \else \ifnum#1<0 \tmpnum=\viline \advance\tmpnum by-#1
+ \else \tmpnum=#1
+ \advance\tmpnum by-1
+ \ifnum\tmpnum<0 \tmpnum=0 \fi % (0+13) = (1+13)
+ \fi \fi
+ \edef\vinolines{\the\tmpnum}%
+ \if$#2$\def\vidolines{0}\else\edef\vidolines{#2}\fi
+ \doverbinput
+}
+\def\viscanminus(#1-#2){%
+ \if$#1$\tmpnum=0
+ \else \tmpnum=#1 \advance\tmpnum by-1 \fi
+ \ifnum\tmpnum<0 \tmpnum=0 \fi % (0-13) = (1-13)
+ \edef\vinolines{\the\tmpnum}%
+ \if$#2$\tmpnum=0
+ \else \tmpnum=#2 \advance\tmpnum by-\vinolines \fi
+ \edef\vidolines{\the\tmpnum}%
+ \doverbinput
+}
+\def\doverbinput{%
+ \tmpnum=\vinolines
+ \advance\tmpnum by-\viline
+ \ifnum\tmpnum<0
+ \openin\vifile=\vifilename\space
+ \global\viline=0
+ \else
+ \edef\vinolines{\the\tmpnum}%
+ \fi
+ \vskip\parskip \ttskip \bgroup \wipeepar
+ \setverb \adef{ }{\ }%
+ \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi
+ \parindent=\ttindent \parskip=0pt
+ \tthook\relax
+ \ifnum\ttline<-1 \else
+ \tenrm \thefontscale[700]\let\sevenrm=\thefont
+ \everypar\expandafter{\the\everypar \glob\advance\ttline by1 \printttline}\fi
+ \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}%
+ \obeylines \tmpnum=0 \lccode`\~=`\^^M \lowercase{\def\tmpb{~}}%
+ \loop \ifeof\vifile \tmpnum=\vinolines\space \fi
+ \ifnum\tmpnum<\vinolines\space
+ \vireadline \advance\tmpnum by1 \repeat %% skip line
+ \ifnum\ttline=-1 \ttline=\viline \let\glob=\relax \else\let\glob=\global \fi
+ \tmpnum=0 \ifnum\vidolines=0 \tmpnum=-1 \fi
+ \ifeof\vifile \tmpnum=\vidolines\space \fi
+ \loop \ifnum\tmpnum<\vidolines\space
+ \vireadline
+ \ifeof\vifile \tmpnum=\vidolines\space \else \viprintline \fi %% print line
+ \ifnum\vidolines=0 \else\advance\tmpnum by1 \fi
+ \repeat
+ \tt\expandafter\ptthook\tmpb\egroup\par\ttskip\testparA
+}
+\def\vireadline{\read\vifile to \tmp \global\advance\viline by1 }
+\def\viprintline{\expandafter\addto\expandafter\tmpb\expandafter{\tmp}}
+
+%%%%%%%%%%%%%% \table -- sec. 3.19 in opmac-d.pdf
+
+\newtoks\tabdata
+\def\tabstrutA{\tabstrut}
+\newcount\colnum
+\def\ddlinedata{}
+\def\vvleft{}
+
+\def\table{\vbox\bgroup \catcode`\|=12 \tableA}
+\def\tableA#1#2{\offinterlineskip \colnum=0 \def\tmpa{}\tabdata={}\scantabdata#1\relax
+ \halign\expandafter{\the\tabdata\cr#2\crcr}\egroup}
+
+\def\scantabdata#1{\let\next=\scantabdata
+ \ifx\relax#1\let\next=\relax
+ \else\ifx|#1\addtabvrule
+ \else\isinlist{123456789}#1\iftrue \def\next{\scantabdataC#1}%
+ \else \expandafter\ifx\csname tabdeclare#1\endcsname \relax
+ \expandafter\ifx\csname paramtabdeclare#1\endcsname \relax
+ \opwarning{tab-declarator "#1" unknown, ignored}%
+ \else \def\next{\expandafter \scantabdataB \csname paramtabdeclare#1\endcsname}\fi
+ \else \def\next{\expandafter\scantabdataA \csname tabdeclare#1\endcsname}%
+ \fi\fi\fi\fi \next
+}
+\def\scantabdataA#1{\addtabitem \expandafter\addtabdata\expandafter{#1\tabstrutA}\scantabdata}
+\def\scantabdataB#1#2{\addtabitem\expandafter\addtabdata\expandafter{#1{#2}\tabstrutA}\scantabdata}
+\def\scantabdataC {\def\tmpb{}\afterassignment\scantabdataD \tmpnum=}
+\def\scantabdataD#1{\loop \ifnum\tmpnum>0 \advance\tmpnum by-1 \addto\tmpb{#1}\repeat
+ \expandafter\scantabdata\tmpb
+}
+\def\tabdeclarec{\tabiteml\hfil##\unsskip\hfil\tabitemr}
+\def\tabdeclarel{\tabiteml##\unsskip\hfil\tabitemr}
+\def\tabdeclarer{\tabiteml\hfil##\unsskip\tabitemr}
+\def\paramtabdeclarep#1{\tabiteml\vtop{\hsize=#1\relax \baselineskip=\normalbaselineskip
+ \lineskiplimit=0pt \noindent##\unsskip \vbox to0pt{\vss\hbox{\tabstrutA}}}\tabitemr}
+
+\def\unsskip{\ifdim\lastskip>0pt \unskip\fi}
+\def\addtabitem{\ifnum\colnum>0 \addtabdata{&}\addto\ddlinedata{&\dditem}\fi
+ \advance\colnum by1 \let\tmpa=\relax}
+\def\addtabdata#1{\tabdata\expandafter{\the\tabdata#1}}
+\def\addtabvrule{%
+ \ifx\tmpa\vrule \addtabdata{\kern\vvkern}%
+ \ifnum\colnum=0 \addto\vvleft{\vvitem}\else\addto\ddlinedata{\vvitem}\fi
+ \else \ifnum\colnum=0 \addto\vvleft{\vvitemA}\else\addto\ddlinedata{\vvitemA}\fi\fi
+ \let\tmpa=\vrule \addtabdata{\vrule}}
+
+\def\crl{\crcr\noalign{\hrule}}
+\def\crll{\crcr\noalign{\hrule\kern\hhkern\hrule}}
+
+\def\crli{\crcr \omit
+ \gdef\dditem{\omit\tablinefil}\gdef\vvitem{\kern\vvkern\vrule}\gdef\vvitemA{\vrule}%
+ \vvleft\tablinefil\ddlinedata\crcr}
+\def\crlli{\crli\noalign{\kern\hhkern}\crli}
+\def\tablinefil{\leaders\hrule\hfil}
+
+\def\crlp#1{\crcr \noalign{\kern-\drulewidth}%
+ \omit \xdef\crlplist{#1}\xdef\crlplist{,\expandafter}\expandafter\crlpA\crlplist,\end,%
+ \global\tmpnum=0 \gdef\dditem{\omit\crlpD}%
+ \gdef\vvitem{\kern\vvkern\kern\drulewidth}\gdef\vvitemA{\kern\drulewidth}%
+ \vvleft\crlpD\ddlinedata \global\tmpnum=0 \crcr}
+\def\crlpA#1,{\ifx\end#1\else \crlpB#1-\end,\expandafter\crlpA\fi}
+\def\crlpB#1#2-#3,{\ifx\end#3\xdef\crlplist{\crlplist#1#2,}\else\crlpC#1#2-#3,\fi}
+\def\crlpC#1-#2-#3,{\tmpnum=#1\relax
+ \loop \xdef\crlplist{\crlplist\the\tmpnum,}\ifnum\tmpnum<#2\advance\tmpnum by1 \repeat}
+\def\crlpD{\global\advance\tmpnum by1
+ \edef\tmpa{\noexpand\isinlist\noexpand\crlplist{,\the\tmpnum,}}%
+ \tmpa\iftrue \kern-\drulewidth \tablinefil \kern-\drulewidth\else\hfil \fi}
+
+\def\tskip{\afterassignment\tskipA \tmpdim}
+\def\tskipA{\gdef\dditem{}\gdef\vvitem{}\gdef\vvitemA{}\gdef\tabstrutA{}%
+ \vbox to\tmpdim{}\ddlinedata \crcr \noalign{\gdef\tabstrutA{\tabstrut}}}
+
+\def\mspan{\omit \tabdata={\tabstrut}\let\tmpa=\relax \afterassignment\mspanA \mscount=}
+\def\mspanA[#1]{\loop \ifnum\mscount>1 \csname span\endcsname \omit \advance\mscount by-1 \repeat
+ \mspanB#1\relax}
+\def\mspanB#1{\ifx\relax#1\def\tmpa{\def\tmpa####1}%
+ \expandafter\tmpa\expandafter{\the\tabdata\ignorespaces}\expandafter\tmpa\else
+ \ifx |#1\ifx\tmpa\vrule\addtabdata{\kern\vvkern}\fi \addtabdata{\vrule}\let\tmpa=\vrule
+ \else \let\tmpa=\relax
+ \ifx c#1\addtabdata{\tabiteml\hfil\ignorespaces##1\unsskip\hfil\tabitemr}\fi
+ \ifx l#1\addtabdata{\tabiteml\ignorespaces##1\unsskip\hfil\tabitemr}\fi
+ \ifx r#1\addtabdata{\tabiteml\hfil\ignorespaces##1\unsskip\tabitemr}\fi
+ \fi \expandafter\mspanB \fi}
+
+\newdimen\drulewidth \drulewidth=0.4pt
+\let\orihrule=\hrule \let\orivrule=\vrule
+\def\rulewidth{\afterassignment\rulewidthA \drulewidth}
+\def\rulewidthA{\edef\hrule{\orihrule height\the\drulewidth}%
+ \edef\vrule{\orivrule width\the\drulewidth}}
+
+\long\def\frame#1{%
+ \hbox{\vrule\vtop{\vbox{\hrule\kern\vvkern
+ \hbox{\kern\hhkern\relax#1\kern\hhkern}%
+ }\kern\vvkern\hrule}\vrule}}
+
+%%%%%%%%%%%%%% \inspic -- sec. 3.20 in opmac-d.pdf
+
+\newdimen\picwidth \picwidth=0pt \let\picw=\picwidth
+\newdimen\picheight \picheight=0pt
+
+\ifpdftex
+ \def\inspic #1 {\hbox{%
+ \pdfximage \ifdim\picwidth=0pt \else width\picwidth\fi
+ \ifdim\picheight=0pt \else height\picheight\fi \inspicpage {\picdir#1}%
+ \pdfrefximage\pdflastximage}}
+\else
+ \def\inspic #1 {\opwarning
+ {The \noexpand\inspic is supported for PDF output only}}
+\fi
+\def\inspicpage{}
+
+%%%%%%%%%%%%%%% transformation matrix -- sec. 3.21 in opmac-d.pdf
+
+\def\pdfscale#1#2{\pdfsetmatrix{#1 0 0 #2}}
+
+\def\pdfrotate#1{\tmpdim=#1pt
+ \ifdim\tmpdim=0pt
+ \else \ifdim\tmpdim=90pt \pdfsetmatrix{0 1 -1 0}%
+ \else \edef\tmp{#1}\expandafter\pdfrotateA\tmp..\relax
+ \fi \fi
+}
+\def\pdfrotateA #1.#2.#3\relax{%
+ \def\tmp##1.##2\relax {##1}%
+ \tmpnum=\expandafter \tmp \the\tmpdim \relax % round
+ \ifdim\tmpdim>0pt \def\tmpa{}\else\def\tmpa{-}\fi % save -
+ \loop \ifnum\tmpnum<0 \advance\tmpnum by360 \repeat
+ \loop \ifnum\tmpnum>360 \advance\tmpnum by-360 \repeat
+ \loop \ifnum\tmpnum>90 \pdfrotate{90}\advance\tmpnum by-90 \repeat
+ \ifnum\tmpnum=90 \pdfrotate{90}\else
+ \ifnum\tmpnum>44 \pdfsetmatrix{.7071 .7071 -.7071 .7071}%
+ \advance\tmpnum by-45 \fi
+ \ifnum\tmpnum>22 \pdfsetmatrix{.9272 .3746 -.3746 .9272}%
+ \advance\tmpnum by-22 \fi
+ \ifnum\tmpnum>0
+ \pdfsetmatrix{\smallcos \smallsin -\smallsin \smallcos}%
+ \fi\fi
+ \if$#2$\else % fraction part
+ \tmpdim=.01745329pt % \pi/180
+ \tmpdim=.#2\tmpdim %
+ \edef\tmp{\expandafter\ignorept\the\tmpdim\space}%
+ \ifx\tmpa\empty \pdfsetmatrix{1 \tmp -\tmp 1}%
+ \else \pdfsetmatrix{1 -\tmp \tmp 1}%
+ \fi\fi
+}
+\def\smallcos{.\ifcase\tmpnum \or9998\or9994\or9986\or9976\or9962\or9945\or
+ 9925\or9903\or9877\or9848\or9816\or9781\or9744\or9703\or9659\or9613\or
+ 9563\or9511\or9455\or9397\or9336\or9272\fi\space}
+\def\smallsin{.\ifcase\tmpnum 0\or0175\or0359\or0523\or0698\or0872\or1045\or
+ 1219\or1391\or1564\or1736\or1908\or2079\or2250\or2419\or2588\or2756\or
+ 2924\or309\or3256\or342\or3584\or3746\fi\space}
+
+\ifpdftex \else
+ \def\pdfsetmatrix#1{} \def\pdfsave{} \def\pdfrestore{}
+\fi
+
+%%%%%%%%%%%%%% \fnote, \mnote -- sec 3.22 in opmac-d.pdf
+
+\newcount\fnotenum \fnotenum=0
+\newcount\fnotenumlocal
+\newif\iflocfnum \locfnumtrue
+
+\long\def\fnote#1{\global\advance \fnotenum by1
+ \leavevmode\openref\wref\Xfnote{}%
+ \iflocfnum \isdefined{fn:\the\fnotenum}\iftrue
+ \else\opwarning{unknown \noexpand\fnote mark. TeX me again}\fi\fi
+ \fnmarkx{\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
+}
+\def\fnotemark#1{{\advance\fnotenum by#1\relax
+ \isdefined{fn:\the\fnotenum}\iftrue\thefnote
+ \else$^?$\opwarning{unknown \string\fnotemark. TeX me again}\fi}%
+}
+\long\def\fnotetext#1{\global\advance \fnotenum by1 \openref\wref\Xfnote{}%
+ {\everypar={}\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
+}
+\def\fnmarkx{\isdefined{fn:\the\fnotenum}\iftrue\thefnote\else$^?$\fi}
+\def\thefnote{$^{\locfnum}$}
+\def\locfnum{\csname fn:\the\fnotenum\endcsname}
+
+\def\Xfnote{\advance\fnotenumlocal by1 \advance\fnotenum by1
+ \sxdef{fn:\the\fnotenum}{\the\fnotenumlocal}}
+
+\def\runningfnotes{\locfnumfalse\def\locfnum{\the\fnotenum}\def\fnmarkx{\thefnote}}
+
+\newcount\mnotenum \mnotenum=0 % global counter of mnotes
+\newdimen\mnoteskip \mnoteskip=0pt
+
+\long\def\mnote#1{\ifvmode \hbox{\vbox to\ht\strutbox{}\mnoteA{#1}}\nobreak\vskip-\baselineskip
+ \else \strut\vadjust{\kern-\dp\strutbox \mnoteA{#1}\kern\dp\strutbox}%
+ \fi
+}
+\long\def\mnoteA#1{\global\advance \mnotenum by1
+ \ifx\mnotesfixed\undefined
+ \isdefined{mn:\the\mnotenum}\iftrue
+ \else\opwarning{unknown \noexpand\mnote side. TeX me again}\fi
+ \edef\tmp{\csname mn:\the\mnotenum\endcsname}%
+ \openref\wref\Xmnote{}\ifvmode\nobreak\fi
+ \else \let\tmp=\mnotesfixed \fi
+ \expandafter\ifx\tmp \left
+ \hbox to0pt{\kern-\mnotesize \kern-\mnoteindent
+ \vbox to0pt{\vss \setbox0=\vtop{\hsize=\mnotesize
+ \leftskip=0pt plus 1fill \rightskip=0pt {\mnotehook\noindent#1\endgraf}}%
+ \dp0=0pt \box0 \kern\mnoteskip \global\mnoteskip=0pt}\hss}%
+ \else
+ \hbox to0pt{\kern\hsize \kern\mnoteindent
+ \vbox to0pt{\vss \setbox0=\vtop{\hsize=\mnotesize
+ \rightskip=0pt plus 1fil \leftskip=0pt {\mnotehook\noindent#1\endgraf}}%
+ \dp0=0pt \box0 \kern\mnoteskip \global\mnoteskip=0pt}\hss}%
+ \fi
+}
+\def\Xmnote{\advance\mnotenum by1
+ \sxdef{mn:\the\mnotenum}{\ifodd\lastpage \right \else \left \fi}}
+
+\def\fixmnotes#1{\def\mnotesfixed{#1}}
+
+%%%%%%%%%%%%%% \cite, \bib, \usebibtex, \usebbl -- sec. 3.23 in opmac-d.pdf
+
+\newwrite\auxfile % AUX file for BibTeX
+\newcount\bibnum % the bibitem counter
+\newtoks\bibmark % the bibmark used if \nonumcitations
+\newcount\lastcitenum \lastcitenum=0 % for \shortcitations
+
+\def\cite[#1]{{\citeA#1,,,[\printsavedcites]}}
+\def\nocite[#1]{{\citeA#1,,,}}
+\def\rcite[#1]{{\citeA#1,,,\printsavedcites}}
+\def\savedcites{}
+
+\def\citeA #1#2,{\if#1,\else
+ \if *#1\addcitelist{*}\expandafter \skiptorelax \fi
+ \isdefined{bib:#1#2}\iftrue \else
+ \addcitelist{#1#2}%
+ \opwarning{The cite [#1#2] unknown. Try to TeX me again}\openref
+ \addto\savedcites{?,}\def\sortcitesA{}\lastcitenum=0
+ \expandafter\gdef\csname bib:#1#2\endcsname {}%
+ \expandafter \skiptorelax \fi
+ \expandafter \ifx \csname bib:#1#2\endcsname \empty
+ \addto\savedcites{?,}\def\sortcitesA{}\lastcitenum=0
+ \expandafter \skiptorelax \fi
+ \def\bibnn##1{}%
+ \if &\csname bib:#1#2\endcsname
+ \addcitelist{#1#2}%
+ \def\bibnn##1##2{##1}%
+ \sxdef{bib:#1#2}{\csname bib:#1#2\endcsname}%
+ \fi
+ \edef\savedcites{\savedcites \csname bib:#1#2\endcsname,}%
+ \relax
+ \expandafter\citeA\fi
+}
+\def\printsavedcites{\sortcitesA
+ \chardef\tmpb=0 \expandafter\citeB\savedcites,%
+ \ifnum\tmpb>0 \printdashcite{\the\tmpb}\fi
+}
+\def\sortcitesA{}
+\def\sortcitations{%
+ \def\sortcitesA{\edef\savedcites{300000,\expandafter}\expandafter\sortcitesB\savedcites,%
+ \def\tmpa####1300000,{\def\savedcites{####1}}\expandafter\tmpa\savedcites}%
+}
+\def\sortcitesB #1,{\if $#1$%
+ \else
+ \mathchardef\tmpa=#1
+ \edef\savedcites{\expandafter}\expandafter\sortcitesC \savedcites\end
+ \expandafter\sortcitesB
+ \fi
+}
+\def\sortcitesC#1,{\ifnum\tmpa<#1\edef\tmpa{\the\tmpa,#1}\expandafter\sortcitesD
+ \else\edef\savedcites{\savedcites#1,}\expandafter\sortcitesC\fi}
+\def\sortcitesD#1\end{\edef\savedcites{\savedcites\tmpa,#1}}
+
+\def\citeB#1,{\if$#1$\else
+ \if?#1\relax??%
+ \else
+ \ifnum\lastcitenum=0 % only comma separated list
+ \printcite{#1}%
+ \else
+ \ifx\citesep\empty % first cite item
+ \lastcitenum=#1\relax
+ \printcite{#1}%
+ \else % next cite item
+ \advance\lastcitenum by1
+ \ifnum\lastcitenum=#1\relax % cosecutive cite item
+ \mathchardef\tmpb=\lastcitenum
+ \else % there is a gap between cite items
+ \lastcitenum=#1\relax
+ \ifnum\tmpb=0 % previous items were printed
+ \printcite{#1}%
+ \else
+ \printdashcite{\the\tmpb}\printcite{#1}\chardef\tmpb=0
+ \fi\fi\fi\fi\fi
+ \expandafter\citeB\fi
+}
+\def\shortcitations{\lastcitenum=1 }
+
+\def\printcite#1{\citesep\citelink{#1}{\citelinkA{#1}}\def\citesep{,\hskip.2em\relax}}
+\def\printdashcite#1{\ifmmode-\else\hbox{--}\fi\citelink{#1}{\citelinkA{#1}}}
+\def\citesep{}
+
+\def\nonumcitations{\lastcitenum=0\def\sortcitesA{}\def\etalchar##1{$^{##1}$}%
+ \def\citelinkA##1{\isdefined{bim:##1}\iftrue \csname bim:##1\endcsname
+ \else ##1\opwarning{\noexpand\nonumcitations + empty bibmark. Maybe bad BibTeX style}\fi}
+}
+\def\citelinkA{}
+
+\def\ecite[#1]{\bgroup\citeA#1,,,\expandafter\eciteB\savedcites;}
+\def\eciteB#1,#2;#3{\if?#1\relax #3\else \citelink{#1}{#3}\fi\egroup}
+
+\def\bib[#1]{\def\tmp{\isnextchar={\bibA[#1]}{\bibmark={}\bibB[#1]}}%
+ \expandafter\tmp\romannumeral-`\.} % ignore optional space
+\def\bibA[#1]=#2{\bibmark={#2}\bibB[#1]}
+\def\bibB[#1]{\par \ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \def\tmpb{#1}\wbib{#1}{\the\bibnum}{\the\bibmark}%
+ \printbib \ignorespaces
+}
+\def\wbib#1#2#3{\dest[cite:\the\bibnum]%
+ \ifx\wref\wrefrelax\else \immediate\wref\Xbib{{#1}{#2}{#3}}\fi}
+
+\def\Xbib#1#2#3{\sdef{bib:#1}{\bibnn{#2}&}\if^#3^\else\sdef{bim:#2}{#3}\fi\def\lastbibnum{#2}}
+
+\def\printbib{\hangindent=\iindent
+ \ifx\citelinkA\empty \noindent\hskip\iindent \llap{[\the\bibnum] }%
+ \else \noindent \fi
+}
+
+\def\addcitelist#1{\global\addto\citelist{\citeI[#1]}}
+\def\writeaux#1{\immediate\write\auxfile{\string\citation{#1}}}
+\def\writeXcite#1{\openref\immediate\wref\Xcite{{#1}}}
+\def\citelist{} \def\citelistB{}
+
+\def\usebibtex#1#2{%
+ \openref \openauxfile{#1}{#2}%
+ \def\citeI[##1]{\writeaux{##1}}\citelist
+ \global\let\addcitelist=\writeaux
+ \bgroup \readbblfile{\jobname}\egroup
+}
+\def\openauxfile#1#2{%
+ \immediate\openout\auxfile=\jobname.aux
+ \immediate\write\auxfile
+ {\percent\percent\space Opmac: AUX file reserved for bibtex only}%
+ \immediate\write\auxfile{\string\bibdata{#1}}%
+ \immediate\write\auxfile{\string\bibstyle{#2}}%
+}
+\def\readbblfile #1{%
+ \openin\testin=#1.bbl
+ \ifeof\testin
+ \opwarning{The `#1.bbl' file doesn't exist. Use `bibtex'..}%
+ \else
+ \closein\testin
+ \bibnum=0
+ \long\def\begin##1\bibitem{\bibitem}\def\end##1{}% LaTeX environment
+ \def\httpAddr##1{\url{http:##1}}\def\\{\hfill\break}%
+ \def\newblock{\hskip .11em plus.33em minus.07em}%
+ \def\mbox{\leavevmode\hbox}\def\emph##1{{\it##1}}%
+ \parindent=\iindent \bibtexhook\relax
+ \input #1.bbl
+ \par
+ \fi
+}
+\def\bibitem{\isnextchar[{\bibitemB}{\bibmark={}\bibitemC}}
+\def\bibitemB[#1]{\bibmark={#1}\bibitemC}
+\def\bibitemC#1{\bibitemD{#1}}
+\def\bibitemD#1{\par\ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \def\tmpb{#1}\wbib{#1}{\the\bibnum}{\the\bibmark}%
+ \printbib \ignorespaces
+}
+\def\genbbl#1#2{\openauxfile{#1}{#2}%
+ \immediate\write\auxfile{\string\citation{*}}%
+ \bgroup
+ \iindent=4em
+ \def\bibitemC##1{\par\ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \hangindent=\parindent
+ \indent \llap{[##1]\enspace}\ignorespaces
+ }%
+ \readbblfile{\jobname}%
+ \egroup
+}
+\def\usebbl/#1 #2 {\isdefined{bbl:#1}%
+ \iftrue \csname bbl:#1\endcsname {#2}\else
+ \opwarning{\string\usebbl/#1 #2 ... the `#1' type undefined}%
+ \fi
+}
+\sdef{bbl:a}#1{\bgroup \readbblfile{#1}\egroup}
+
+\sdef{bbl:b}#1{\bgroup
+ \let\citeI=\relax \xdef\citelist{\citelist\citelistB}%
+ \def\bibitemC##1 ##2\par{%
+ \isinlist\citelist{[##1]}\iftrue \bibitemD{##1}##2\par\fi}%
+ \readbblfile{#1}%
+ \global\let\addcitelist=\writeXcite
+ \egroup
+}
+\sdef{bbl:c}#1{\bgroup
+ \ifx\citelinkA\empty \else
+ \opwarning{\string\nonumcitations: don't use \string\usebbl/c}\fi
+ \let\citeI=\relax \xdef\citelist{\citelist\citelistB}%
+ \def\bibitemC##1 ##2\par{%
+ \isinlist\citelist{[##1]}\iftrue
+ \if^\the\bibmark^\sdef{bb:##1}{\bibitemD{##1}##2\par}%
+ \else \toks0={##2\par}%
+ \edef\tmpa{\noexpand\sdef{bb:##1}{% \the\bibmark have to expand
+ \noexpand\bibitemB[\the\bibmark]{##1}\the\toks0}}\tmpa
+ \fi\fi}%
+ \readbblfile{#1}%
+ \def\bibitemC##1{\bibitemD{##1}}%
+ \def\citeI[##1]{\csname bb:##1\endcsname}\citelist
+ \global\let\addcitelist=\writeXcite
+ \egroup
+}
+\def\Xcite#1{\addto\citelistB{\citeI[#1]}}
+
+\def\usebib{\par \input opmac-bib \usebib}
+
+%%%%%%%%%%%%%% output -- sec. 3.24 in opmac-d.pdf
+
+\output={\begoutput \opmacoutput \endoutput}
+\def\begoutput{%
+ \immediate\wref\Xpage{{\the\pageno}}%
+ \def\nl{ }\def\fnote##1{}\def\fnotemark##1{}%
+ \prephoffset
+}
+\def\endoutput{} \def\prephoffset{}
+
+\def\opmacoutput{%
+ \setbox0=\vbox{\prepghook\ensureblacko{\makeheadline}\pagebody\ensureblacko{\makefootline}}%
+ \pghook \protectlist
+ \shipout\box0 \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+\def\doprotect#1{\let#1=\relax}
+\def\prepage{\def\destheight{25pt}\dest[pg:\pgilabel.\the\pageno]}
+\def\preboxcclv{} \def\postboxcclv{}
+
+{\catcode`\@=11
+\gdef\pagecontents{\prepage % dest of pageno
+ \ifvoid\topins\else\ensureblacko{\unvbox\topins}\fi
+ \preboxcclv
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \postboxcclv
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \ensureblacko{\footnoterule \unvbox\footins}\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi
+}}
+
+\footline={\hss\tenrm\thefontsize[10]\folio\hss}
+
+\newcount\lastpage \lastpage=0 % the last page of the document
+\def\Xpage#1{\lastpage=#1 \fnotenumlocal=0 }
+
+%%%%%%%%%%%%%% margins -- sec. 3.25 in opmac-d.pdf
+
+\newdimen\pgwidth \newdimen\pgheight \pgwidth=0pt
+\newdimen\shiftoffset
+
+\def\margins/#1 #2 (#3,#4,#5,#6)#7 {\def\tmp{#7}%
+ \ifx\tmp\empty
+ \opwarning{\string\margins: missing unit, mm inserted}\def\tmp{mm}\fi
+ \addto\tmp{\relax}%
+ \setpagedimens #2 % setting \pgwidth, \pgheight
+ \ifdim\pgwidth=0pt \else
+ \hoffset=-1\trueunit in \voffset=-1\trueunit in
+ \if$#3$\if$#4$\tmpdim=\pgwidth \advance\tmpdim -\hsize
+ \divide\tmpdim by2 \advance\hoffset \tmpdim % left=right
+ \else \rbmargin\hoffset\hsize{#4\tmp}% only right margin
+ \fi
+ \else \if$#4$\advance\hoffset #3\tmp % only left margin
+ \else \hsize=\pgwidth % left+right margin
+ \advance\hsize -#3\tmp \advance\hsize -#4\tmp
+ \advance\hoffset #3\tmp
+ \fi\fi
+ \if$#5$\if$#6$\tmpdim=\pgheight \advance\tmpdim -\vsize
+ \divide\tmpdim by2 \advance\voffset \tmpdim % top=bottom
+ \else \rbmargin\voffset\vsize{#6\tmp}% only bottom margin
+ \fi
+ \else \if$#6$\advance\voffset #5\tmp % only top margin
+ \else \vsize=\pgheight % top+bottom margin
+ \advance\vsize -#5\tmp \advance\vsize -#6\tmp
+ \advance\voffset #5\tmp
+ \fi\fi
+ \if 1#1\shiftoffset=0pt \def\prephoffset{}\else \if 2#1% double-page layout
+ \shiftoffset=\pgwidth \advance\shiftoffset -\hsize
+ \advance\shiftoffset -2\hoffset \advance\shiftoffset -2in
+ \def\prephoffset{\ifodd\pageno \else \advance\hoffset \shiftoffset \fi}%
+ \else \opwarning{use \string\margins/1 or \string\margins/2}%
+ \fi\fi\fi
+}
+\def\rbmargin#1#2#3{\advance#1\pgwidth \advance#1-#2 \advance#1-#3}
+
+\def\setpagedimens{\isnextchar({\setpagedimensB}{\setpagedimensA}}
+\def\setpagedimensA#1 {\isdefined{pgs:#1}\iftrue
+ \expandafter\expandafter\expandafter\setpagedimensB \csname pgs:#1\expandafter\endcsname\space
+ \else \opwarning{page specification "#1" is undefined}\fi}
+\def\setpagedimensB (#1,#2)#3 {\setpagedimensC\pgwidth=#1:#3 \setpagedimensC\pgheight=#2:#3
+ \ifx\pdfpagewidth\undefined \else
+ \pdfpagewidth=\pgwidth \pdfpageheight=\pgheight \fi}
+\def\setpagedimensC #1=#2:#3 {#1=#2\ifx^#3^\tmp\else#3\fi\relax\truedimen#1}
+
+\sdef{pgs:a3}{(297,420)mm} \sdef{pgs:a4}{(210,297)mm} \sdef{pgs:a5}{(148,210)mm}
+\sdef{pgs:a3l}{(420,297)mm} \sdef{pgs:a4l}{(297,210)mm} \sdef{pgs:a5l}{(210,148)mm}
+\sdef{pgs:b5}{(176,250)mm} \sdef{pgs:letter}{(8.5,11)in}
+
+\def\trueunit{}
+\def\magscale[#1]{\mag=#1\def\trueunit{true}%
+ \ifdim\pgwidth=0pt \else \truedimen\pgwidth \truedimen\pgheight \fi
+ \ifx\pdfpagewidth\undefined \else
+ \truedimen\pdfpagewidth \truedimen\pdfpageheight
+ \ifx\pdfhorigin\undefined\else
+ \pdfhorigin=1truein \pdfvorigin=1truein % Origin is independent off \mag
+ \fi\fi}
+\def\truedimen#1{\ifx\trueunit\empty \else#1=\expandafter\ignorept\the#1truept \fi}
+
+%%%%%%%%%%%%%% XeTeX specific + REF file is read now -- sec 3.26 in opmac-d.pdf
+
+\ifx\XeTeXversion\undefined \else \pdftexfalse \input opmac-xetex \fi
+\ifx\pdfextension\undefined \else \input opmac-luatex \fi
+\inputref
+\endinput
+
+%%%%%%%%%%%%%% History of versions:
+
+beta (a) Nov. 2012 ... first released version.
+Dec. 2012 first stable version
+Jan. 2013 \parfillskip in \caption corrected.
+ \athetnum, \captionhook introduced.
+ \nobreak in \tocline corrected, \tocdotfill corrected.
+ New \url, \urlcolor implicitly defined as \empty.
+ \bibitem by \hangindent, \afteritcorr in \em
+ \bslash introduced
+ \toclinehook \mnotehook, \mnoteskip introduced.
+ \global\advance in \caption corrected.
+ \thechapnum is without the dot.
+Feb. 2013 \urllink: works with \\, \%, \#, \$, \{, \}.
+ \localcolor, \longlocalcolor introduced
+ \global\advance for chap./sec. nums corrected
+ \printcaption introduced
+Apr. 2013 \table in \table allowed, \catcode`\|=12 set in \table.
+ \printsec(c): \ifnum\lastpenalty added.
+ \urlink: ``~ removing'' corrected
+ {\em text}\macro error corrected.
+May 2013 \margins (2pages laylout) can be redefined by new \margins
+ \outlines use \pdfcatalog{/PageMode/UseOutlines}
+Jul. 2013 \fnotetext unwanted space - corrected
+ \picw=0pt prints picture in natural size, \picheight introduced
+ \isinlist corrected,
+ \othe\secnum in \secc removed
+ \dotocnum, \remskip, \reminsert introduced
+ \nonum, \notoc implemented
+ \destheight introduced as macro
+ \runningfnotes introduced
+ \addto defined as \long
+ \iiskip, \ttskip, \bibskip precedes by \par
+Aug. 2013 \dgsize corrected
+ \ifx\tmpa\tmpb in \printiiA is realized via \meaning
+ \ignorespaces included to \iis
+ \url hidden in group, in order to handle & in tables
+ \destheight rewritten as a dimen register
+ \rightskip, \leftskip corrected in \mnote
+ space corrected in \prepii
+ \input ams-math only if \normalmath is \undefined (released)
+Sep. 2013 \label: the ``duplicated label'' test added
+ \afternoindent: \box0 -> \box7
+ \scantabdata: \if#1| -> \ifx|#1
+ \fixmnotes recoded
+ \, uses \thinspace and it is \addprotected
+ \pdfliteral instead \special{PDF:...} used
+ XeTeX specific added
+ \draft, \insertoulines recoded
+ \endinsert redefined (\par added)
+ \addprotect\exfont (for exchars.tex cooperating)
+ \ulink improved and added to opmac-u
+ \postboxcclv: {\advancepageno} corrected
+Oct. 2013 /Border .6
+ better \adef
+ \typobase introduced
+ \typoscale[20000/] ``too large dimension'' ... solved
+ \activettchar reimplemented
+Nov. 2013 \Xpage: \ifnum\lastpage=#1 \else inserted
+ \frame is defined as \long
+ multilanuage: cz -> cs changed (by ISO 639-1)
+ \cr -> \crcr in \crl, \crll and \crli
+ \doverbinput: \ifeof\vifile added (bug ``empty line at EOF'' corrected)
+ eTeX support for multilang added.
+Feb. 2014 \sortcitations introduced, internal macros of \cite rewritten
+Mar. 2014 \frame: \setbox0=\hbox{{#1}} in order to \aftergroup in #1
+ \mnote: \pdfsave,\pdfrestore inserted, \mnote colors rewritten
+Apr. 2014 \nonumcitations, \ecite, \printbib, \lastbibnum introduced
+ \wbib, \citelink rewritten (more parameters now)
+ \destheight rewritten as macro, sorry
+ \fnotehook introduced
+Apr. 2014b \nocite[*] bug removed, \insertmark corrected
+Apr. 2014c nowarn about old csplain if csplain isn't used
+May 2014 \hyphenchar\urlfont=-1, \urlspecchar introduced
+May 2014b \linkactive introduced (bug fixing)
+May 2014c \maybebreak introduced
+May 2014d \seccfont bug fixed
+ \tabstrut inserted to each column in the \table
+Jun 2014 \opwarning about missing .bbl file rewritten.
+ more robust \replacestrings
+Jun. 2014a \mnoteC: default base mnote color set as current
+Jun. 2014b \footline: \the\pageno replaced by \folio
+ ? instead \/ in \replacestrings
+Jun. 2014c \pgfolioA, \pgfolioB introduced
+ \Xindexg introduced
+Jul. 2014 \bgroup -> \begingroup in \adef
+Aug. 2014 \parskip=0pt in \begtt ...\endtt
+ \addtabdata: redundant \expandafter removed
+Sep. 2014 \bib [...] = {...} space before = is now optional
+ \nbpar in \caption
+ \replacestrings: reduced by 3\expandafter
+ \isnextchar, \isinlist prefixed as \long
+ \testparA uses \romannumeral trick now.
+Oct. 2014 \pdfborder corrected: /Border [0 0 0] set for AR users.
+Nov. 2014 \sortingdata corrected, \specsortingdata introduced.
+ \replacestrings uses \replacestringsA instead \tmp
+ \bfshape used in \titfont and \Xchap
+ \adef{ }{\ } in verbatim environment (instead \adef{ }{ }).
+ \fnotemark+\fnotetext+\runningfnotes bug fixed.
+ \flushcolumns, \iiparams removed, \mullines introduced.
+Dec. 2014 Color features rewritten using \pdfcolorstack.
+ Unwanted spaces in \dosorting removed.
+ Better definition of \frame.
+ \margins/\setpagedimens improved, \isnextchar: \bgroup\egroup added.
+Apr. 2015 \wtotoc, \Xtoc, \tocilabel, \pgilabel introduced.
+ \outlinesC introduced
+ \setpagedimensC corrected: \truedimen
+ \opwarnig about missing \hyperlinks in \outlines added.
+ \fnotetext: \fnotehook inserted (bug fixing)
+May 2015 \itemhook introduced
+ \REFversion introduced
+ \prepghook introduced, \draft redefined using \prepghook
+ \mnote, \fnote redeclared as \long
+Jun 2015 \urlfont: \hyphenchar=-1 removed (bug fixed)
+ \mnote: \nobreak after \wref added (bug fixed)
+ csbxti10 -> cmbxti10, corrected for non-csplain users
+ default \ulink: \leavevmode added (bug fixed)
+Jul. 2015 \openref: \def\wref -> \gdef\wref (bug fixed)
+ \margins/2: \prephoffset introduced (bug fixed)
+ \hyperlinks when non-pdftex prints warning
+Sep. 2015 \sortingdata<iso-code> introduced, \isolangset introduced.
+ \toasciidata<iso-code> introduced.
+ \dosorting: local \iisort changes.
+Oct. 2015 \printttline, \ptthook introduced, \viprintline redesigned.
+ \everypar\expandafter{\the\everypar...} in \begtt, \doverbinput.
+Nov. 2015 \parskip=0 in \doverbinput, \vskip\parskip before first \ttskip
+ \addto\prepghook instead \def\prepghook in \draft
+ \mnote: ifvmode \hbox{\strut...} added
+Jan. 2016 \inspicpage introduced
+ \isolangset: \chardef..Patt added
+Mar. 2016 \thefnote default changed: ^{num}) -> ^{num}
+Apr. 2016 \frame: redundant group removed
+ \isnextchar improved (using \toks)
+ \eoldef introduced to \tit, \chap, \sec, \secc, see OPmac trick 0121
+ \input opmac-luatex.tex introduced
+ \slet introduced
+ \fontfam introduced, \usebib as module loaded
+May 2016 \replacestrings improved
+ \bfshape: \everymath={\boldmath} instead \boldmath directly
+ \tskip corrected
+Jun 2016 \thefontsize: \fontdim=#1\ptunit added.
+ \pdfhvorigin unknown in XeTeX, bug fixed
+Jun 2017 \begingroup...\endgroup trick introduced in \isinlist
+ \table: repeating and p declarator added,
+ \colnum=0 in table corrected (cor cases table in table)
+ \mspan added
+ \fnotetext: \everypar={} added (bug correction)
+Mar. 2018 \frame: \relax after \kern\hhkern added (bug correction)
+Mar. 2018a \uv defined as \long
+May 2018 \chap: \edef\thesecnum added (J. Sustek)
+ \printchap: \vfill\supereject instead \vfil\break
+ \link: argument in group in both: \hyperlinks on/off (J. Sustek)
+Aug. 2018 \wlabel: \protectlist added.
+ \Xlabel: \sxdef{lab:#1} changed to \sdef (J. Sustek)
+
+%%%%%%%%%%%%%% End of opmac.tex
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.pdf b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.pdf
new file mode 100644
index 0000000000..b08a743512
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.tex b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.tex
new file mode 100644
index 0000000000..b3c43f9188
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/two-columns.tex
@@ -0,0 +1,399 @@
+% [two-columns.tex]
+% << [FORM_PLAIN.tex]
+
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+% these macro files are explained in more detail at the top of each file
+% here I give a brief indication of the content.
+
+\input format_XETEX.mac
+ % spacing, special symbols ...
+
+\input unicode_latin.mac
+ % French and German accented letters
+
+\input macros.mac
+
+\input ancestors.mac
+
+\input additional.mac
+
+\input petr_olsak.mac
+
+\input my_fonts.mac
+
+\input pstricks
+\input epsf
+
+
+\input color %
+
+
+%%%%%%%%%%%%%%%% END XETEX INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information \( =1 for full\)
+\tracingonline = 0 % screen - minimum information \( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein % !! % these are xetex commands
+\pdfpagewidth= 8.5truein %!! % presently set for "letter" size
+
+\vsize = 8.50 in %!!
+{\hsize = 5.94 in %!!
+
+\voffset = 0.5 truecm %!!
+\hoffset = 0.70truecm %!!
+
+\baselineskip = 14pt % default = 12pt!!
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+% =======> 3 CHANGES TO MAKE <=========
+
+ \nopagenumbers
+
+ % -1was chosen so that I will notice and change
+ % in final versions
+ \pageno = -1 % 3 CHANGES TO MAKE
+
+ % this footer puts a page number in bold at the bottom of each page, EXCEPT FIRST
+ \footline = { % THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \ifnum \pageno = -1 % do nothing <== keep with false #
+ \else
+ {\centerline{\bf \folio}} % centerline closes here for page #
+ \fi % this matches \ifnum
+ }
+ %
+ % NO DATES HERE, ONLY IN TITLE
+\headline = {% THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \centerline{ % CAN NOT PUT \CENTERLINE AFTER ELSE, FOULS UP!
+ \ifnum \pageno = -1 % do nothing <== keep with false #
+ \else
+ {\bfthirteen The Shape of the Great Pyramid}
+ \fi % THIS MATCHES \IFNUM
+ } %THIS MATCHS CENTERLINE
+ } % THIS MATCHES { WITH \FOOTLINE
+
+%%%%%%%%%%%%%%%%%%%% END FOOTER AND HEADER %%%%%%%%%%%%%%%%%%%%%
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+%
+ {\rm % !! 12.5pt I like a larger font, defined in [my_fonts.mac]
+%
+%
+{\verysmall . } % !! 0.1pt used to move text up via \vskip -20pt\nin !!
+%
+\centerline{\bfsixteen \[two-columns.tex\]}
+\mni
+This text ilustrate the multi-columns command from \[petr\_olsak.mac\]
+\mni
+{\leftskip = 1.8cm
+{\bf \bsl begmulti 2}\q \%\TH for two columns,
+\sni
+\bsl nin\hskip 2.0truecm \%\TH \bsl nin is needed here
+\sni
+\qq \lbr {\iteleven text\/}\rbr\
+\sni
+{\bf \bsl endmulti}
+\par}
+%
+\vskip 18pt\nin
+N.B. Because of the reduced text width, the nominal font size has been reduced from 12.5 points to 10.5 points with
+the font command:
+\sni
+\bsl font\bsl rmtenplus = \[/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.5 pt
+%
+%
+\vskip .70 truecm\nin
+%
+\centerline{ \bfsixteen The Shape of the Great Pyramid}%
+\mni
+\centerline{ \bffourteen Roger Herz-Fischler \(2000\)}
+\mni
+\centerline{ \bffourteen Introduction}
+% TITLE
+\vskip .27 truecm\nin
+%
+% multi-columsn from [petr_olsak.mac]
+%
+\begmulti 2 % 2 columns
+\nin % needed here after \begmulti
+%
+% font size definition
+%
+\font\rmtenplus = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.5 pt
+%
+{\rmtenplus
+\nin
+Perhaps no other structure built by humans has at\-tracted as much
+attention as the Great Pyramid of Egypt. Its size, with a base of
+230 m and a height of 147 m, is not the sole cause of awe. The
+setting, on the edge of the desert and overlooking the Nile
+valley,
+only adds to its impressiveness, while the complex system of
+passages, chambers and block\-age points, and the yet to be found
+tomb of the Pharoah Khu\-fwey (Cheops), have added an aura of
+mystery.
+The present work is devoted to what at first glance would appear
+to be a rather innocent question, \lq What
+was the {\iteleven geometrical\/}$^{1}$ basis, if any, that was used to
+determine the shape of the Great Pyramid?\hglue 1.0pt \rq\
+However, as the reader can ascertain from its size,
+there is much more to this book than just giving a mathematical
+description of a well-known monument from antiquity.
+In order to better describe its contents, it is
+necessary to explain its origins.
+\mni%
+%%
+In 1972 I was asked to teach a mathematics course for first-year
+ students of architecture. Since I was
+ essentially free$^{2}$ to choose the topics for the course, I decided
+ to introduce some material dealing with the use of mathematical
+ proportions in architecture. Among the material that I came
+ across was a statement in Ghyka's 1927 book, {\iteleven L'Esth\ae tique
+ des proportions dans la nature et dans les arts}, concerning a
+ putative text by the ancient Greek historian He\-ro\-dot\-us. This
+ ancient
+ text, it was claimed, explained the shape of the Great Pyramid.
+ Indeed, it seemed from the numbers that were presented by Ghyka,
+ that \lq theory\rq\ and \lq observation\rq\ were in concordance with one
+ another.
+Not having any reason to doubt what I had read, I presented the
+theory, over a period of three years, to my classes. It was only
+later, when I began to write a mathematics textbook for students
+of architecture,$^{3}$ that I tried to locate the quotation by
+Hero\-dot\-us. This proved to be impossible, for the putative
+statement by He\-ro\-dot\-us simply did not exist; the only
+description in the {\iteleven Histories\/} of He\-ro\-dot\-us which dealt
+with the dimensions of the Great Pyramid bore little prima
+facie resemblance to what Ghyka had written.
+%
+\mni
+%
+My curiosity was piqued and thus began a long, tortuous and
+complicated investigation into the theories that had been
+proposed
+concerning
+the shape of the Great Pyramid. I would come across a new
+theory and then try to trace it back to its origins,
+sometimes via comments of others, but most often by working
+backwards through bibliographic references.
+Thus, what started out
+as a factual, historical study became a more involved and
+multi-faceted project. I
+became interested, not only in the theories and their {\iteleven
+history\/} as such, but also in
+what I refer to as the {\iteleven sociological\/} aspect of these
+theories; namely how these
+theories originated, how they were propagated and why some
+theories survived, whereas others passed into oblivion. This
+aspect eventually led me back to the Victorian era and to
+relationships---hardly anticipated at the beginning
+of my research---between the pyramid theories, and, among
+other topics, the theory of evolution and the struggle
+against the introduction of the metric system.
+Another question also presented itself for, as will be seen,
+several of the theories gave results which, from a practical
+viewpoint, were indistinguishable from the observed values.
+I was thus led to consider {\iteleven philosophical\/} questions
+related to the acceptance of theories.
+%
+\mni
+%
+The present work is the result of my research and reflection. My
+basic approach in this book is the same as that in my {\iteleven A
+Mathematical History of Division in Extreme and Mean Ratio}, my
+articles in art and architectural history and my forthcoming {\iteleven
+ The Golden Number}, i.e., keep reading and backtracking through the
+literature, be skeptical of secondary sources, go off on
+interesting side tracks,$^{4}$ and avoid all preconceived theoretical
+\lq approaches\rq\ to the subject matter. Above all I believe in
+letting the material that one finds shape the book rather than
+writing a book that shapes the material.$^{5}$
+\mni
+%
+The book is divided in three parts which correspond in general
+terms to the historical and physical background to the theories,
+the theories themselves, and an overview.
+%
+\mni
+%
+In Part 1, Chapter 1 provides the historical and contextual background for
+the book. I have summarized, while at the same time giving
+references for those readers who wish to read more detailed
+discussions, the early history of Egypt and the development of the
+pyramid. Appendix 1 provides a further, annotated, bibliography
+of various topics related to the pyramids. Appendix 2 provides a
+table, together with references, of the dimensions of early
+pyramids and other tom\-ball superstructures. To my knowledge the
+set of references to writings on the dimensions and angles of the
+pyramids is the most complete one available.
+%
+Chapter 2 begins with the surveyed dimensions of the
+Great Pyramid and the estimated original angle of
+inclination of the triangular sides. This is followed
+by brief discussions of how the Egyptians
+measured, what their units of measurements were, and what is
+known of their building techniques. Appendix 3 provides more
+detailed information on Egyptian units of measure.
+%
+Chapter 3 is historiographical in nature, and considers
+previous studies of the theories of the shape of the Great
+Pyramid.
+%
+\mni
+%
+The second part of the book begins with diagrams which
+illustrate the different ways in which the shape of a pyramid can
+be defined and gives the terminology employed in the rest of the
+book.
+Part 2 begins in Chapter 4 with a comparative table of the
+theories and the angles of inclinations of the faces which
+correspond to these theories. I also point out parallels between
+certain of the theories.
+Then follows, in Chapters 5 through 15, the historical and sociological developments of
+the eleven theories that are known to me. The presentation is in
+chronological order, with respect to the first known appearance
+of the theory. The one exception is the {\iteleven seked} theory of
+Chapter 5, for which the theoretical basis is an ancient Egyptian
+text. I thus presented this theory first, even though a formal
+connection with the Great Pyramid was not stated until 1922.
+%
+\mni
+%
+Each chapter begins with a brief mathematical description,
+in simple trigonometric or geometric language, of the
+theory in question. The first note of each section contains
+a complete list of the angles, lengths etc.\ associated with this
+theory. The formulae for computing these quantities are given in the notes
+to Chapter 4. The rest of each chapter is then a mixture of historical
+and sociological material, including a description of the mathematical
+approach of different authors.
+%
+\mni%
+%
+Several of the Chapters in Part 2 contain special material, which
+I felt was necessary for a proper understanding of the background
+of the theory. Chapter 5 includes archaeological evidence related
+to the {\iteleven seked\/} theory, as well as a discussion of the pyramid
+problems in the {\iteleven Rhind Papyrus\/}. Similarly Chapter 9
+discusses what the Egyptians knew about circle calculations.
+Other aspects of Egyptian mathematics are summarized in Appendix
+4. The text of He\-ro\-dot\-us cited above in connection with the book
+by Ghyka, and which constitutes the \lq historical\rq\ basis for two
+of the theories, is discussed in Chapter 6, with Appendix 5
+providing a technical background for Greek and Greek-Egyptian
+systems of measures. Chapter 7 contains a discussion of another
+ancient text which has formed the theoretical basis for the
+discussions of various authors, namely Plu\-tarch's {\iteleven Isis and
+Osiris\/} in which the 3--4--5 triangle is related to these
+Egyptian gods.
+Chapter 16 presents some additional material which, while
+never appearing as formal theories of
+the shape of the Great Pyramid, is of interest in the
+context of this book.
+%
+\mni
+%
+Part 3 begins with a discussion of {\iteleven philosophical\/} matters
+related to the theories. One notes
+immediately that there are only very small differences
+between the angles resulting from the theories and the
+observed value of the angle of inclination of the faces.
+Since the correct theory cannot be determined on the
+basis of numerical accuracy---or to look at the matter in
+another way, cannot be rejected on the basis of a
+discrepancy between theory and
+observation---philosophical questions arise as to when we can, or
+should, accept or reject a theory. Chapter 17 proposes some
+criteria related to the acceptance of theories.
+%
+\mni
+%
+Chapter 18 is devoted to a case study of the {\iteleven sociology\/} of the
+pi-theory. As we shall see, the pi-theory is a true theory of
+Victorian Britain and so we have a very special opportunity to observe the
+conditions which give rise to a theory and cause it to be widely
+disseminated.
+The first section of Chapter 18 discusses the social and
+intellectual background in Victorian Britain which gave rise to
+the pi-theory and led to its widespread dissemination. The next
+section deals with the four topics of great interest in that
+period with which the pi-theory was associated: the \lq squaring
+of the circle\rq\ , units of measure, the Bible, and the
+theory of evolution. The last section deals with the authors
+themselves. By means of specialized biographical sources, I have
+made an analysis of the background, occupation and interests of
+the nine principal Victorian authors who wrote on the pi-theory.
+I hope that
+the reader will find the maze of interconnected external
+influences and people as fascinating as I did.
+%
+\mni
+%
+Chapter 19 contains my conclusions. The first section deals with
+my observations as to how
+theories propagate and in particular why certain theories
+flourished whereas others essentially disappeared.
+The second section of Chapter 19 returns to the question, \lq What
+was the geometrical basis that was used to determine the shape of
+the Great Pyramid?\hglue 1.0pt \rq\gl.
+%
+\mni
+%
+The bibliography contains some 315 items. Since many of the
+primary and secondary sources are very difficult to locate or
+obtain, I have indicated with each bibliographic entry, except
+for very common twentieth-century material, the library that was
+kind enough to lend me the material. For certain bibliographical
+entries, I have added comments or references to other works so as
+to aid future researchers. Since this is to a large extent a
+book about books and articles, I felt that it would be more
+useful to the reader to have an index to an author's individual
+books rather than just having an index with only the names of the
+authors. Thus the bibliography also serves as the index, with the
+location of the discussion of a book or article being given at
+the end of the bibliographic entry. The detailed table of
+contents provides another entry to the authors and topics
+discussed.
+\par} % end \rmeleven
+%
+\endmulti
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % KEEP THIS ENDING!!! had when needed headers
+\vfill\eject
+%%
+ } % ends roman
+ \mni} % ends \hsize
+ \bye
+
+%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%%%
+%
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centerline{}
+%
+\vskip 0.7cm\nin
+%
+% FOOTNOTES FORM: section 14 of [petr_olsak.mac]
+% \fnotemark{*.} next to the text
+% \fnotetext{*} place somewhere after location of \fnotemark
+% it may require two runs to complete
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/unicode_latin.mac b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/unicode_latin.mac
new file mode 100644
index 0000000000..f7cc105385
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/FORMS+MAC-FILES/unicode_latin.mac
@@ -0,0 +1,73 @@
+% [unicode_latin.mac]
+% there is now a [unicode_hebrew.mac]
+
+% What is the purpose of this as type French anyway? [2018.09.12]
+% maybe it was so that I could finish the CW book with the graphs that had codes
+%
+% 2018.10.31 this is very useful in replacing charabia in German where I had \u etc
+
+
+% NO! NOI! GREAT IN PRINCIPLE. BUT I FORGOT AND WASTED 30 MINUTES WITH \BSL
+% KEEP ONLY ALPHANUMERIC HERE
+% 2017.12.26 taken from [format.mac] (was not in [fonts.mac])
+% replace all the Cork with UNICODE
+%
+% ====) anything defined by unicode in [format_XETEX.mac]
+% has been moved here. that way can change and check more easily.
+% quotation marks and apostrophes are located there.
+
+%
+
+
+% g = grave; a = aigu; c = circumflex
+% THESE NEED SPACE AFTER! lc uc
+\def\ge{\char"00E8} % g = GRAVE columns 00E & 00C 00F & 00D
+\def\gE{\char"00C8}
+\def\ga{\char"00E0}%%%%%%%%%%% OBLIQUE %%%%%%%%%%
+\def\gA{\char"00C0}
+\def\go{\char"00F2}
+\def\gO{\char"00D2}
+\def\gu{\char"00F9}
+\def\gU{\char"00D9}
+%
+\def\ae{\char"00E9} % a =AIGUE only two letters with aigu
+\def\aE{\char"00C9}
+%
+\def\ce{\char"00EA} % c = CIRCUMFLEX
+\def\cE{\char"00CA}
+\def\ca{\char"00E2}
+\def\cA{\char"00C2}
+\def\cu{\char"00FB}
+\def\cU{\char"00DB}
+\def\ci{\char"00EE}
+\def\cI{\char"00CE}
+\def\co{\char"00F4}
+\def\cO{\char"00D4}
+%
+\def\ue{\char"00EB} % c = umlaut/trema
+\def\uE{\char"00CB}
+\def\ua{\char"00E4}
+\def\uA{\char"00C4}
+\def\uo{\char"00F6}
+\def\uO{\char"00D6}
+\def\uu{\char"00FC}
+\def\uU{\char"00DC}
+\def\ui{\char"00EF} % yes for Mo\ui se
+\def\uI{\char"00CF}
+
+\def\cc{\char"00E7}
+\def\cC{\char"00C7}
+
+\def\ajoine{\char"00E6} % I used \ae above for grave
+\def\AjoinE{\char"00C6}
+
+\def\ss{\char"00DF}
+
+
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/README.txt b/macros/xetex/plain/do-it-yourself-tex/README.txt
new file mode 100644
index 0000000000..2014592680
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/README.txt
@@ -0,0 +1,24 @@
+do-it-yourself-tex -- Back to Plain XeTeX
+
+version 1.3 [2019.03.17]
+
+maintainer: Roger Herz-Fischler, Ottawa, Ontario, Canada
+contact: roger@herz-fischler.ca
+web page: http://people.math.carleton.ca/~rhfischl/
+
+
+The main purpose of this package is to provide easily modifiable forms and macros which illustrate how
+plain XeTex can used to produce high quality texts with such features as precise font designations,
+imported images, marginal notes, colour, right to left texts and syllabics.
+
+Real examples are provided in both the TeX and PDF versions.
+
+A set of shell files, font tables an HTML page with links to font sources are also included.
+
+ -----
+
+This work is provided in the hope that it may be useful. There are absolutely no restrictions, licenses etc.
+as to the use (or non-use!), modification and/or publication of any of the material provided in the package.
+Further there are no requirements regarding attribution.
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.pdf b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.pdf
new file mode 100644
index 0000000000..55863260fb
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.tex b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.tex
new file mode 100644
index 0000000000..2c86664025
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/FORM-for-RIGHT-to-LEFT.tex
@@ -0,0 +1,207 @@
+% [FORM_for_RIGHT_to_LEFT.tex]
+%
+% N.B. This has my Hebrew font definitions. Change to the desired point size
+% Uncomment \input arabic.mac if there is Arabic text.
+
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+\input unicode_latin.mac
+\input format_XETEX.mac
+\input macros.mac
+%
+\input petr_olsak.mac % tables + marginal notes
+%
+% ===> have to put [my_fonts.mac] AFTER [petr_olsak.mac] which redefines \rm
+\input my_fonts.mac
+
+\input additional.mac %[\raggedleft]
+\input unicode_hebrew.mac
+\input my_hebrew_fonts.mac
+
+% ===> include these if the text contains arabic
+% ===> see the shortcuts in [arabic_vocabulary.tex]
+% \input arabic_fonts.mac
+% \input unicode_arabic.mac % have to set up the definitions as in [unicode_hebrew.mac]
+
+\input pstricks % need for centring
+\input epsf % need for importing eps
+\input color % this is part of the dpctex package. Allows typesetting text
+ % in colour;
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+% KEEP BIDI UP HERE AND AFTER OTHER *.MAC
+\input bidi % bi-directional, enables right to left
+
+
+% A = interline glue If A < B then sets A to C p. 134
+\lineskiplimit = 2pt % B % pg 134 they have 2pt plus .5pt
+\lineskip= 1.8pt % C % pg 134 they have 1pt
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt % p. 156
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein
+\pdfpagewidth= 8.5truein
+
+\vsize = 8.50 in
+{\hsize = 5.94 in
+
+\voffset = 0.5 truecm %1.0truecm
+\hoffset = 0.70truecm
+
+\baselineskip = 14pt % default = 12pt
+\nopagenumbers
+
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%% SPECIAL HEBREW+ENGLISH FONT DEFINITIONS %%%%%%%%%%%%%
+
+\def\H{\sblBBB} % SBL at 20pt main Hebrew
+
+% CHANGE THE FONT SIZES AS DESIRED
+% For typing Hebrew inside English text
+\def\heb#1{\RL{\H#1}}
+% For typing English inside Hebrew text
+\def\eng#1{\LR{\rmfifteen #1}}
+
+% These are for larger letters on the first word of a paragraph
+% H = Hebrew, E = English
+\def\firstH{\frbfBBBBBB} % first Hebrew word
+\def\firstE{\RalewayBoldAA} % first Latin word
+
+
+%%%%%%%%%%%%%%%%% Other SPECIAL DEFINITIONS %%%%%%%%%%%%%
+
+% QUESTION MARK for use with libertine
+\def\Q{\RL{\bffourteen ?}}
+
+%%%%%%%%%%%%%%%%% END SPECIAL HEBREW+ENGLISH FONT DEFINITIONS + SHORTCUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% START TEXT %%%%%%%%%%%%%
+
+{\rm % 12.5 | \bf = 12.5 | \it =13.0 | \bi = 13.5
+%
+%{\verysmall .}
+%
+% \vskip -20pt % to move up
+
+\centerline {\bfsixteen [\gl FORM\unl for\unl RIGHT\unl to\unl LEFT.tex\gl]} % English title
+\mni
+%
+% because of \rm the text will start off in English
+% use the following for HEBREW
+% to insert English use \eng{**text**}
+%
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+ \y\A\d\Th \eng{\rmfifteen (\gl hand\gl)}
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+{\rmfifteen Hand\Th (\gl\heb{\y\A\d}\gl)}
+%
+% still in English
+\vskip 40pt
+\centreline{\bi More copies of these forms after \bsl bye\/}
+
+
+
+
+
+%
+\end % it says to put, probably to end \bidi
+%
+\vfill\eject
+ } % end \rm
+\par} % ends \hsize
+ \bye
+
+%%%%%%%%%%%%%%%%%%%%%% END OF TEXT %%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+**********
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+*************
+
+
+
+
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+**********
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+*************
+
+
+
+% FORM FOR A MAINLY HEBREW SECTION % more forms after \BYE
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H % SBL at 20pt main Hebrew
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [additional.mac]
+**********
+\mni}
+%
+\vskip 15pt\nin
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+\pni
+*************
+
+
+
+%
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centerline{}
+%
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/SBL-hebrew-part.pdf b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/SBL-hebrew-part.pdf
new file mode 100644
index 0000000000..3fbb1a826c
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/SBL-hebrew-part.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/Scheherazade--arabic-part-.pdf b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/Scheherazade--arabic-part-.pdf
new file mode 100644
index 0000000000..72079c97c9
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/Scheherazade--arabic-part-.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/additional.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/additional.mac
new file mode 100644
index 0000000000..32870db4fa
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/additional.mac
@@ -0,0 +1,48 @@
+% [additional.mac]
+
+% 1. printdate
+% 2. ragged left (used in typesetting RIGHT to LEFT languages)
+%
+
+
+% %%%%%%%%%%%%%%%%%%%% PRINTDATE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% MACRO: for printing the date on preliminary versions
+\def\printdate{
+%
+\count255 = \year
+\count254 = \month
+\count253 = \day
+%
+\count252 =\time % from midnight
+\count251 = \count252 % copy: from midnight
+\divide \count252 by 60 % integer hours from midnight
+\count250 = \count252 % print: integer hours from midnight
+\count249 = \count252 % use to multiply by 60
+\multiply\count249 by 60 % whole hour minutes from midnight
+\advance\count251 by -\count249
+\count249 = \count251 % print: integer minutes after hour
+{\tt This text was printed:\quad
+%
+DATE:\hskip 1.5pt \number\count255.\number\count254.\number\count253\quad
+%
+TIME:\hskip 1.5pt \number\count250:\hskip 1.5pt \number\count249
+\vskip 1truecm
+} % end \tt10000
+} % end \def
+% END OF \printdate
+
+
+% %%%%%%%%%%%%%%%%%%%% \RAGGEDLEFT % %%%%%%%%%%%%%%%%%%%%
+% Answer to my question on Tex Exchange by Marcel Krüger
+
+\def\raggedleft{
+% if make =0.2 not wide enough, this goes into left margin
+% \kern -12pt moves to right, but not uniform do in text
+\leftskip = -0.0cm plus 4em %\rightskip absolutely need plus 4em
+\spaceskip = .3333em % these two are pg 107 eh?
+\xspaceskip = .5em
+\parfillskip = 0pt
+\relax % stops \TeX from doing other things such as adding bits
+\noindent}
+%
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancestors.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancestors.mac
new file mode 100644
index 0000000000..ddb5e2e3e4
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancestors.mac
@@ -0,0 +1,42 @@
+% [ancestors.mac]
+% These shortcuts saved a LOT of typing and avoided MANY mistakes in
+% my genealogical texts
+% Below are the partial contents to show the schema
+
+%
+% contains abbreviations for the names of ancestors and their town
+% 7 groups. in each names first, then towns
+% names = 2 lettres towns = 3 letters
+
+% the hyphenation is indicated in the individual definitions
+
+
+%%%%%%%%%%% Grandparents / Great-Grandparents %%%%%%%%%%%%%%%
+\def\gp{Grandparents}
+\def\ggp{Great-Grandparents}
+\def\gm{Grandmother}
+\def\ggm{Great-Grandmother}
+\def\gf{Grandfather}
+\def\ggf{Great-Grandfather}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\atd{autour de{ }} % shortcut used with dates
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% group 1: Frankenberg group/ common
+\def\ka{Katzenstein}
+\def\aka{Abraham Katz\-en\-stein} .
+\def\mk{Manus Katz\-en\-stein}
+%
+\def\mx{Marx}
+\def\k-s{Katz-Stiefel} % \ks = Koppel Sommer
+\def\amx{Amalie Marx}
+%
+\def\fnau{Fran\-ken\-au}
+\def\fbrg{Fran\-ken\-berg}
+\def\gru{Gr\uu sen}
+
+% etc groups 2 ... 7
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancient_semitic.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancient_semitic.mac
new file mode 100644
index 0000000000..8383e9baa2
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/ancient_semitic.mac
@@ -0,0 +1,38 @@
+% [ancient_semitic.mac]
+
+%%%%%%%%%%%%%%%%%%% ANCIENT FONTS %%%%%%%%%%%%%%%%%%%
+% DO NOT CHANGE THE DIRECTORY NAME FROM HEBREW to HEBREW+ANCIENT!!!!
+
+\font\meshaBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 20.0pt
+\font\meshaBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 22.5pt
+\font\meshaBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 25.0pt
+\font\meshaBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 27.5pt
+\font\meshaBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 30.0pt
+\font\meshaBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Mesha.ttf] at 32.0pt
+
+% [did_not_work_paleo_lev] fntsample chart shows
+%\font\moabiteBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/moabite_stone.ttf] at 20.0pt
+
+
+% 20PT TOO LARGE IN [paleo_leviticus.tex]
+\font\qumranBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 17.5pt
+\font\qumranBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 20.0pt
+\font\qumranBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 22.5pt
+\font\qumranBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 25.0pt
+\font\qumranBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 27.5pt
+\font\qumranBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 30.0pt
+\font\qumranBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Qumran.ttf] at 32.0pt
+
+\font\siloamBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 20.0pt
+\font\siloamBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 22.5pt
+\font\siloamBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 25.0pt
+\font\siloamBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 27.5pt
+\font\siloamBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 30.0pt
+\font\siloamBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Paleo-Siloam.ttf] at 32.0pt
+
+\font\samaritanBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 20.0pt
+\font\samaritanBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 22.5pt
+\font\samaritanBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 25.0pt
+\font\samaritanBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 27.5pt
+\font\samaritanBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 30.0pt
+\font\samaritanBBBBBBBB=[/home/liliane/ROGER/MY-FONTS/ANCIENT_SEMITIC/Hebrew-Samaritan.ttf] at 32.0pt
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.pdf b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.pdf
new file mode 100644
index 0000000000..cfe2cbd402
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.tex b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.tex
new file mode 100644
index 0000000000..2b94a602bf
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic-vocabulary.tex
@@ -0,0 +1,211 @@
+% [arabic_vocabulary.tex]
+
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+\input unicode_latin.mac
+\input format_XETEX.mac
+\input macros.mac
+\input arabic_fonts.mac
+%
+\input petr_olsak.mac % tables + marginal notes
+\input my_fonts.mac
+
+\input pstricks % need for centring
+\input epsf % need for importing eps
+\input color % this is part of the dpctex package. Allows typesetting text
+ % in colour;
+
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+% KEEP BIDI UP HERE AND AFTER OTHER *.MAC
+\input bidi
+
+% A = interline glue If A < B then sets A to C p. 134
+\lineskiplimit = 2pt % B % pg 134 they have 2pt plus .5pt
+\lineskip= 1.8pt % C % pg 134 they have 1pt
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt % p. 156
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein
+\pdfpagewidth= 8.5truein
+
+\vsize = 8.50 in
+{\hsize = 5.94 in
+
+\voffset = 0.5 truecm %1.0truecm
+\hoffset = 0.70truecm
+
+\baselineskip = 14pt % default = 12pt
+\nopagenumbers
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+% Here \rm encloses everything
+% For short Arabic use: \RL{Arabic text} ===> see \arb#1 below
+% For longer Arabic use \setRL and \LR{\rm English text} ===> see \eng#1 below
+
+% HAVE TO GO BACK TO MAINLY ENGLISH WITH \SETLR
+
+%%%%%%%%%%%%%%%%% SPECIAL DEFINITIONS %%%%%%%%%%%%%
+% keep these definitions here
+
+% QUESTION MARK for use with libertine
+\def\Q{\RL{\bffourteen ?}}
+
+
+%%%%%%%%%%%%%%%%% SPECIAL ARABIC+ENGLISH FONT DEFINITIONS %%%%%%%%%%%%%
+
+% I was not sure of what point size to use so I created a sub-selection
+% from the fonts defined in [arabic.mac] with names that show the font size
+\def\atwelve{\arabicaaaa} % 12.0pt
+\def\athirteen{\arabicaaaa} % 13.0pt
+\def\afourteen{\arabicaaaaa} % 14.0pt
+ \def\afifteen{\arabicaaaaaa} % 15.0pt This seems to be a good size
+
+% I created these macros so
+% For typing Arabic inside English text
+\def\arb#1{\RL{\arabicAAAA#1}}
+% For typing English inside Arabic text
+\def\eng#1{\LR{\rmfifteen #1}}
+
+
+%%%%%%%%%%%%%%%%% END SPECIAL ARABIC+ENGLISH FONT DEFINITIONS %%%%%%%%%%%%%
+%
+%
+%%%%%%%%%%%%%%%%% START TEXT %%%%%%%%%%%%%
+%
+{\verysmall .} % so that I can move the text up
+\vskip -25truept\nin
+%
+{\rmtwelve % 12.5 | \bf = 12.5 | \it =13.0 | \bi = 13.5
+%
+\centerline {\bfeighteen Typesetting Arab: sample} % English title
+\mni
+% wikipedia had backwards so leave LR
+\centerline{\bfsixteen The Arabic alphabet\quad \RL{\arabicAAAA أَبْجَدِيَّة عَرَبِيَّة}‎ }
+\mni
+In addition to the modern order of the Arabic alphabet (which groups consonants of similar shape)
+there still exists another order, the so-called {\itthirteen Abjad\/} order, which is the same as one of the ancient Semitic
+orders; see the following for variations where different subsitutes for the ancient \lq samech\rq\ (another {\itthirteen s\/}, which
+still exists in Hebrew) are used:
+\sni
+{\tteleven https:\gl /\gl/en.wikipedia.org\fsl wiki\fsl Abjad\unl numerals}
+%
+%
+%\setRL % the wikipedia side gave a "backwards" copy so just leave
+\sni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+\centerline{
+{\arabicAAA
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+%\raggedleft % in [macros.mac]
+ ظ ض ذ خ ث ت ش ر ق ص ف ع س ن م ل ك ي ط ح ز و ه د ج ب أ
+}
+ } % end centerline
+%
+\sni
+%
+\setLR % TO RETURN TO MAINLY ENGLISH
+%
+\mni
+The first twenty-two letters are essentially the same as the corresponding Hebrew consonants and so
+I learned the Arabic alphabet (in part) by looking at the correponding letter. There are practical
+differences between the two alphabets, mainly to do with letters that have a soft and hard variation.
+For instance Hebrew has a {\itthirteen f\/} and {\itthirteen p\/} Arabic only has
+the {\itthirteen f\/}. in addition Arabic treats soft and hard variation as separate letters, whereras
+Hebrew indicates the difference by an interior dot and so treats {\itthirteen f\/} and {\itthirteen p\/} as one letter.
+Hebrew also treats the {\itthirteen sin\/} and {\itthirteen shin\/} as one letter and indicates the difference by a the position
+of the dot above the form. Arabic treats these as separate letters and this accounts, in part, for the different
+Abjad orders.
+\bni
+%
+% OPAC
+% || = double lines on edges
+% vowels centred examle left aligned
+% need 3 x &
+\centerline{\bffourteen Arabic\tiret English Vocabulary}
+\mni
+%
+\centerline{ % ===> 1 x &
+\table{ ||c c||} % just one line if use frame
+%
+ {
+\crll % empty text with line on top
+%
+ % I use the following to leave more vertical space in a ruled table
+ % \vtop pushes away from bottom \vbox from top
+%
+\vtop spread 15pt{}\vbox spread 24pt{} \eng{Arabic} & \eng{English} \crl
+%
+\vtop spread 15pt{}\vbox spread 24pt{} % vertical spacing
+\arb{يَد } & \eng{hand}\crl % data
+%
+\vtop spread 15pt{}\vbox spread 24pt{} % vertical spacing
+ \arb{ماءٌ } & \eng{water}\crl % data
+%
+\vtop spread 15pt{}\vbox spread 24pt{} % vertical spacing
+%
+\arb{كَتَبَ } & \eng{to write}\crl % data
+%
+\crll % empty text with line on bottom
+} % empty text with line on bottom
+ } % centerline
+\vskip 15pt\nin
+%
+\vfill\eject
+\nin
+\setLR
+\pni
+\centerline {\bffifteen The Opening Verses of the Quran}
+\mni
+{\rmthirteen N.B. Not typeset, but copied from a web version of the Quran: {\[\ttthirteen http:\gl//\gl tanzil.net/\]}
+\bni
+\centerline{\RL{\arabicB {سورة الفاتحة}}}
+
+% % FORM FOR ARABIC
+\setRL % \setRL {\verysmall .}
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\arabicAAAAA
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+\raggedleft % in [macros.mac]
+ %\fixmnotes\right
+% NOTE GOES BEFORE TEXT
+ % \mnoteskip = 10pt\mnote{\rm 1:1\TH} % MOVE UP for double notes
+{\arabicBBB
+\raise 5pt\hbox{
+بِسْمِ
+} } \kern -10pt
+اللَّـهِ الرَّحْمَـٰنِ الرَّحِيمِ.
+الْحَمْدُ لِلَّـهِ رَبِّ الْعَالَمِينَ.
+الرَّحْمَـٰنِ الرَّحِيمِ.
+مَالِكِ يَوْمِ الدِّينِ.
+}
+%
+%
+\end % it says to put, probably to end \bidi
+\vfill\eject
+ } % end \rm
+\par} % ends \hsize
+ \bye
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic_fonts.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic_fonts.mac
new file mode 100644
index 0000000000..2c385b11e1
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/arabic_fonts.mac
@@ -0,0 +1,31 @@
+ % [arabic_fonts.mac]
+
+\font\arabica =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 10pt
+\font\arabicaa =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 11pt
+\font\arabicaaa =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 12pt
+\font\arabicaaaa =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 13pt
+\font\arabicaaaaa =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 14pt
+\font\arabicaaaaaa =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 15pt
+
+% repeat 15pt for uniformity
+\font\arabicA =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 15pt
+\font\arabicAA =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 20pt
+\font\arabicAAA =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 25pt
+\font\arabicAAAA =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 30pt
+\font\arabicAAAAA =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 35pt
+\font\arabicAAAAAA =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 40pt
+\font\arabicAAAAAAA =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 45pt
+
+\font\arabicB =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 50pt
+\font\arabicBB =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 55pt
+\font\arabicBBB =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 60pt
+\font\arabicBBBB =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 65pt
+\font\arabicBBBBB =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 70pt
+\font\arabicBBBBBB =[/home/liliane/ROGER/MY-FONTS/ARABIC_FONTS/ScheherazadeR.ttf] at 75pt
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/chart-unicode-hebrew-definitions.pdf b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/chart-unicode-hebrew-definitions.pdf
new file mode 100644
index 0000000000..046ea02c49
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/chart-unicode-hebrew-definitions.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/format_XETEX.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/format_XETEX.mac
new file mode 100644
index 0000000000..bda1b30645
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/format_XETEX.mac
@@ -0,0 +1,227 @@
+% [format_XETEX.mac]
+
+% Note, for example, that using \def\lb{\char"007B} for left braces (instead of $\($ )
+% produces a size which corresponds to the font being used.
+% The same philosopy is applied elsewhere in this list
+
+
+%%%%%%%%%%%% FIXED VERTICAL DISTANCES (increasing order)
+% I do not bother with the glue as I change distances via \vskip if not correct
+
+\def\pni{\par\noindent}
+\def\pin{\par\indent}
+
+% \smallskip = 3pt; I want a little more
+\def\sni{\vskip 4truept\noindent}
+\def\sin{\vskip 4truept\indent}
+
+% \medskip = 6pt; I want a little more
+\def\mni{\vskip 8 truept\noindent}
+\def\min{\vskip 8 truept\indent}
+
+% \bigskip is 12pt
+\def\bni{\vskip 12truept\noindent}
+\def\bin{\vskip 12truept\indent}
+
+\def\nin{\noindent}
+
+\def\centreline{\centerline} % Canadian spelling which I naturally tend to write
+
+%%%%%%%%%%%% FIXED HORIZONTAL DISTANCES (increasing order)
+%
+\def\gl{\hglue 1.0pt} % gl = GLUE , does not break
+\def\th{\hskip 1.5pt} % = approx \thinspace GLUE
+\def\thh{\hskip 2.25pt} % between \th and Th
+
+% just like \big and \Big
+\def\Th{\hskip 3.0pt} % = \jot
+\def\TH{\hskip 4.0pt}
+
+% just like \big and \Big
+\def\en{\enspace} % \hskip 5pt BREAKS
+\def\En{\enspace} % \hskip 6pt BREAKS
+\def\EN{\enspace} % \hskip 7pt BREAKS
+
+% conflicts with Hebrew qof, so use \quad with Hebrew
+% and comment out this next line
+\def\q{\quad} % \hskip 10pt BREAKS
+\def\qq{\qquad} % \hskip 20pt BREAKS
+
+%%%%%%%%%%%% SLASHES %%%%%%%%%%%
+\def\bsl{\char"005C\gl}
+
+\def\fsl{\hskip 1.8pt/\hskip 1.5pt} % was 2.5pt
+
+%%%%%%%%%%%% SPECIAL INDENTS + SQUEEZE %%%%%%%%%%%
+\def\bibl{\mni\hangindent=\parindent\noindent}
+\def\bib{\mni\hangindent=\parindent\noindent}
+
+% USAGE: \squeeze{\spaceskip = 1.5pt proud, shallow, ....}
+\def\squeeze{\hbox to \hsize }
+
+%%%%%%%%%%%% UNDERBAR IN FILE TITLE %%%%%%%%%%%
+\def\un{\kern -0.85pt \gl\_\gl }
+\def\unl{\kern -0.85pt \gl\_\gl }
+
+%%%%%%%%%%% TIRET + DOTS + GUILLEMETS + ANGLE BRACKETS %%%%%%%%%%
+\def\tiret{\Th--\Th}
+
+\def\dots{\th{\rmfourteen ...}\th} % OK DO NOT PUT A PERIOD
+
+\def\lgui{{\rmsixteen\char"00AB\kern -1pt}} % ««
+\def\rgui{{\gl \rmsixteen\char"00BB}} % »»
+
+\def\<{\gl{\rmsixteen\char"003C\gl}} % <
+\def\>{{\gl\rmsixteen\char"003E}\gl} % >
+
+%%%%%%%%%%%% BRACES two choices %%%%%%%%%%%
+\def\lb{\char"007B} % left braces
+\def\lbr{\char"007B} % left braces
+
+\def\rb{\char"007D}% right braces
+\def\rbr{\char"007D } % right braces
+
+%%%%%%%%%%% BRACKETS + PARENTHESIS Use inside italics %%%%%%%%%%
+
+\def\[{{\rm \char"005B\gl}} % [ Use inside italics
+\def\]{{\rm \gl \char"005D}} % ] Use inside italics
+\def\({{\rm \char"0028\gl}} % [ Use inside italics
+\def\){{\rm \gl \char"0029}}
+
+%%%%%%%%%%% QUOTATION MARKS + APOSTROPHE %%%%%%%%%%
+% eloquent quotations
+\def\lq{\char"201C\kern -0.1pt}
+\def\rq{\char"201D} % NEEDS CLOSING
+
+\def\"{\char"0022} % plain quotation
+
+% apostrophe is 0027, but it says that 2019 is preferred,
+% this is true as 2019 has the nice curl on top
+\def\'{\char"2019}
+\def\apos{\char"2019}
+\def\aps{\char"2019}
+\def\ap{\char"2019}
+
+%%%%%%%%%%% SEPARATING LINES %%%%%%%%%%
+% modify according to teste
+
+ \def\linea{\nin\centerline{\vrule height 2.0pt width 1.5truein depth 0 pt}}
+ \def\lineb{\nin\centerline{\vrule height 1.0pt width 1.5truein depth 0 pt}}
+
+ \def\lineA{\nin\centerline{\vrule height 2.0pt width 2.5truein depth 0 pt}}
+ \def\lineAa{\nin\centerline{\vrule height 2.5pt width 4.3truein depth 0pt}}
+
+\def\lineAA{\nin\centerline{\vrule height 3.2pt width 5.5truein depth 0pt}}
+%
+% next size up would be lineaaa etc
+
+%%%%%%%%%%%%% SPECIALIZED DEFINITIONS, INTRODUCED AS NEEDED %%%%%
+% I used many of these in my genealogical books to indicate various sources etc.
+% \msamA, \msbmBBBB and \cmsyAA are defined in [my_fonts.mac]
+
+\def\dvd{\hglue 1.0pt$^{\hbox{\boldmedsmall DVD}}$\hglue 1.0pt}
+\def\DVD{\hglue 1.0pt$^{\hbox{\boldmedsmall DVD}}$\hglue 1.0pt}
+\def\html{\kern 1.0truept{\raise 3.0pt \hbox{\bfnine HTML}}}
+\def\HTML{\kern 1.0truept{\raise 3.0pt \hbox{\bfnine HTML}}}
+\def\copyright{\char"00A9}
+\def\pdf{\raise 4pt\hbox{\boldmedsmall PDF}} % can not put \} in case there is a period after.
+\def\copyright{\char"00A9}
+\def\euro{{\char"20AC}}
+\def\pilcrow{{\char"00B6}}
+\def\star{\raise 3.5pt \hbox{\gl\msamA \char70}}
+\def\web{\gl{\msbmBBBB\char121}\hfill}
+\def\square{\th\raise 3.7pt\hbox{\msamAaaa\char4}}
+\def\tilda{{\cmsyAA \char24}}
+%
+% a separating | I use \| as command, since \ and | are on same key
+% used for identifying numbers in genealogy, e.g. {\tt 122\|1}
+\def\|{\th\raise 1.5pt \hbox{\cmsyAa\char 15}\th}
+%
+% I use \club to indicated a place in the text where changes are needed
+\def\club{\raise 3.5pt \hbox{\gl$\clubsuit$}}
+
+ %%%%%%%%%%%% ARROWS %%%%%%%%%%%%
+% n.b. the names of the arrows are just: hackd etc, without a for arrow
+%
+% these are with hackbold
+\def\hackD{\hbox{\hackboldBB \char"21A6}\hbox to 10truept{}}% |--->
+\def\hackE{\hbox{\hackboldBB \char"21E2}\hbox to 10truept{}} % --->
+\def\hackF{\hbox{\hackboldBB \char"2192}\hbox to 10truept{}} % ==>
+
+% these are regular hack for smaller, lighter arrows
+% 21DA <-- triple line 21DB --> triple line
+\def\hackd{\hbox{\hackseventeen \char"21A6}\hbox to 10truept{}} % |-->
+\def\hacke{\hbox{\hackseventeen \char"21E2}\hbox to 10truept{}} % -->
+\def\hackf{\hbox{\hackseventeen \char"2192}\hbox to 10truept{}} % ==>
+
+% libertine 21D0: <= no opposite of 21A6
+% libertine 2190 <---- single line
+%
+\def\libertineEA{\lower 1pt \hbox{\rmfifteen \char"21A6}\kern -1.5pt{}} % same as above |--->
+\def\libertineEAA{\lower 1pt \hbox{\rmeighteen \char"21A6}\kern -1.5pt{}} % same as above |--->
+\def\libertineEAAA{\lower 1pt \hbox{\rmtwenty \char"21A6}\kern -1.5pt{}} % same as above |--->
+
+% right facing
+\def\libertineEBR{\lower 1pt \hbox{\rmfifteen \char"21D2}\kern -1.5pt{}} % ==>
+\def\libertineEBBR{\lower 1pt \hbox{\rmeighteen \char"21D2}\kern -1.5pt{}} % ==>
+\def\libertineEBBBR{\lower 1pt \hbox{\rmtwenty \char"21D2}\kern -1.5pt{}} % ==>
+% left facing
+\def\libertineEBL{\lower 1pt \hbox{\rmfifteen \char"21D0}\kern -1.5pt{}} % <==
+\def\libertineEBBL{\lower 1pt \hbox{\rmeighteen \char"21D0}\kern -1.5pt{}} % <==
+\def\libertineEBBBL{\lower 1pt \hbox{\rmtwenty \char"21D0}\kern -1.5pt{}} % <==
+
+% These are long, double and slanted arrows set in \cmsy
+% long + double arrows
+\def\LRA{$\Longrightarrow$} % SEE REGULAR DOUBLE ARROWS BELOW
+\def\LLA{$\Longleftarrow$}
+\def\EWAA{\hbox{\cmsyAAAA \char 44}\hbox to 10truept{}} % DOUBLE ARROW, BOTH WAYs
+
+% arrows in SE, SW, NW , NE
+\def\SEA{\lower 5truept\hbox{\cmsyAAAA \char38}}
+\def\SWA{\lower 5truept\hbox{\cmsyAAAA \char 46}\hbox to 10truept{}}
+%
+\def\NWA{\lower 5truept\hbox{\cmsyAAAA \char 45\hbox to 10truept{}}}
+%
+\def\NEA{\lower 5truept\hbox{\cmsyAAAA \char 37\hbox to 10truept{}}}
+%
+% arrows in E, S, W , N 10 to big for EA
+\def\EA{\hbox{\cmsyAAAA \char 33}\hbox to 5truept{}}
+%
+\def\SA{\hbox{\cmsyAAAA \char 35}\hbox to 10truept{}}
+%
+\def\WA{\hbox{\cmsyAAAA \char 32}\hbox to 10truept{}}
+%
+\def\NA{\hbox{\cmsyAAAA \char 34}\hbox to 10truept{}}
+
+% double arrows in E, S, W , N
+%
+\def\EAA{\hbox{\cmsyAAAA \char 41}\hbox to 10truept{}}
+%
+\def\SAA{\hbox{\cmsyAAAA \char 43\hbox to 10truept{}}}
+%
+\def\WAA{\hbox{\cmsyAAAA \char 40\hbox to 10truept{}}}
+%
+\def\NAA{\hbox{\cmsyAAAA \char 42\hbox to 10truept{}}}
+
+%%%%%%%%%% TRIG DEFINITIONS %%%%%%%%%%
+% the following definition allows me to fix the R inside $ $; note \hbox{ }
+\def\R{\hbox{\rm R}} % leave out '' ( '' because I already have.
+%
+% I took out \sin because it interfered with \sin = \small\noindent
+\def\cos{\hbox{\rm cos}}
+\def\tan{\hbox{\rm tan}}
+\def\csc{\hbox{\rm csc}}
+\def\sec{\hbox{\rm sec}}
+\def\cot{\hbox{\rm cot}}
+\def\ln{\hbox{\rm ln}}
+\def\log{\hbox{\rm log}}
+\def\lim{\hbox{\rm lim}}
+
+ %%%%%%%%%% END %%%%%%%%%%
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.pdf b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.pdf
new file mode 100644
index 0000000000..867fba0e0b
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.tex b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.tex
new file mode 100644
index 0000000000..18300260f2
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/haftarah-shabbat-shuvah.tex
@@ -0,0 +1,285 @@
+% [shabbat_shuvah_hebrew+english.tex]
+
+% note the kerns that were necessary and left marginal notes
+%
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+\input unicode_latin.mac
+\input format_XETEX.mac
+\input macros.mac
+
+\input petr_olsak.mac % for marginal notes
+\input my_fonts.mac % libertine etc
+%
+\input additional.mac % [\raggedleft]
+\input unicode_hebrew.mac
+\input my_hebrew_fonts.mac
+
+
+\input pstricks % need for centring
+\input epsf % need for importing eps
+\input color % this is part of the dpctex package. Allows typesetting text
+ % in colour;
+
+
+% KEEP BIDI UP HERE AND AFTER OTHER *.MAC
+\input bidi
+
+
+% A = interline glue If A < B then sets A to C p. 134
+\lineskiplimit = 2pt % B % pg 134 they have 2pt plus .5pt
+\lineskip= 1.8pt % C % pg 134 they have 1pt
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt % p. 156 Hosea 14:2 - 10
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein
+\pdfpagewidth= 8.5truein
+
+\vsize = 8.50 in
+{\hsize = 5.94 in
+
+\voffset = 0.5 truecm %1.0truecm
+\hoffset = 0.70truecm
+
+\baselineskip = 16.5pt % default = 12pt
+\nopagenumbers
+
+% MOVED IN FROM [FORM_ENGLISH_WITH HEBREW] 2018.09.14
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+% [FORM_ENGLISH_with_HEBREW.tex]
+% Here \rm encloses everything
+% For short Hebrew use: \RL{Hebrew text}
+% For longer Hebrew use \setRL and \LR{English text}
+
+% HAVE TO GO BACK TO MAINLY ENGLISH WITH \SETLR
+
+
+%%%%%%%%%%%%%%%%% SPECIAL HEBREW FONT DEFINITIONS %%%%%%%%%%%%%
+% keep these definitions here
+\def\H{\sblBBB} % SBL at 20pt main Hebrew
+
+
+\def\Q{\RL{\bffourteen ?}} % TO PUT A question mark
+% THIS PUT ? IN RIGHT ORDER
+% FOR BRACKETS, PARENTHESES: eh? second goes same way as first!
+%\RL{\bffourteen \m\r\y\`\ \q\l\y\ [\n\gl\Q( \g}.
+
+\def\hn{\sblbbbbbb} % 15pt hebrew for marginal notes
+
+% new first letters for Hebrew and English
+\def\firstH{\frbfBBBBBB} %
+\def\firstE{\bfeighteen }
+
+\def\shema{\sbeighteen} % 20,22 too big
+
+
+%%%%%%%%%%%%%%%%% END SPECIAL HEBREW FONT DEFINITIONS %%%%%%%%%%%%%
+
+
+{\rm % 12.5 | \bf = 12.5 | \it =13.0 | \bi = 13.5
+%
+{\verysmall .}
+\vskip -20pt\nin
+{\centerline{\hbox to -4pt{} % playing with centring to match English
+\RL
+{\sblCC
+שבת שובה
+ } } % English title
+\mni
+\centerline{\bftwenty Adath Shalom Tradition}
+\mni
+\centerline{\bftwenty{ {\bitwenty Hosea}\Th 14:\th 2--10\TH \&\Th
+{\bitwenty Micah}\Th 7:\th
+18--20}}
+%
+\vskip25pt\nin % C = 35pt H = 20pt
+%
+\centerline{\RL{\sblC הושע}}
+\mni
+\centerline{\bftwenty {\bitwenty Hosea} 14:2\Th-\Th 10}
+%
+\mni
+\baselineskip = 18.5pt % for hebrew
+\setRL
+\sni
+%{\rm 18:27\TH} \DO SEARCH AND REPLACE ON NUMBERS. NO NEED TO HIGHLIGHT, KEEP CHANGING
+ % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+{\H
+%\rightskip = 1cm % IF WANT TO INDENT FOR MARGINAL NOTES
+%
+\raggedleft % in [macros.mac]
+ \fixmnotes\right
+% NOTE GOES BEFORE TEXT
+ \mnoteskip = 4pt
+ \mnote{\rm 14:2\TH} % MOVE UP for double notes
+ \kern -12pt
+{\firstH
+ שׁ֚וּבָה
+ } \kern -5pt % have to move right
+ יִשְׂרָאֵ֔ל עַ֖ד יְהוָ֣ה אֱלֹהֶ֑יךָ כִּ֥י כָשַׁ֖לְתָּ בַּעֲוֺנֶֽךָ׃
+ \mnoteskip = -21pt\mnote{\rm 14:3\TH} % 14.3 STARTS ON NEXT LINE
+ קְח֤וּ עִמָּכֶם֙ דְּבָרִ֔ים
+וְשׁ֖וּבוּ אֶל־יְהוָ֑ה אִמְר֣וּ אֵלָ֗יו כָּל־תִּשָּׂ֤א עָוֺן֙ וְקַח־ט֔וֹב וּֽנְשַׁלְּמָ֥ה פָרִ֖ים
+שְׂפָתֵֽינוּ׃
+ \mnote{\rm 14:4\TH}
+אַשּׁ֣וּר ׀ לֹ֣א יוֹשִׁיעֵ֗נוּ עַל־סוּס֙ לֹ֣א נִרְכָּ֔ב וְלֹא־נֹ֥אמַר ע֛וֹד אֱלֹהֵ֖ינוּ
+לְמַעֲשֵׂ֣ה יָדֵ֑ינוּ אֲשֶׁר־בְּךָ֖ יְרֻחַ֥ם יָתֽוֹם׃
+ \mnote{\rm 14:5\TH}
+אֶרְפָּא֙ מְשׁ֣וּבָתָ֔ם אֹהֲבֵ֖ם נְדָבָ֑ה כִּ֛י שָׁ֥ב
+אַפִּ֖י מִמֶּֽנּוּ׃
+ \mnote{\rm 14:6\TH}
+אֶהְיֶ֤ה כַטַּל֙ לְיִשְׂרָאֵ֔ל יִפְרַ֖ח כַּשּֽׁוֹשַׁנָּ֑ה וְיַ֥ךְ שָׁרָשָׁ֖יו
+כַּלְּבָנֽוֹן׃
+ \mnote{\rm 14:7\TH}
+יֵֽלְכוּ֙ יֹֽנְקוֹתָ֔יו וִיהִ֥י כַזַּ֖יִת הוֹד֑וֹ וְרֵ֥יחַֽ ל֖וֹ
+\break
+כַּלְּבָנֽוֹן׃
+ \mnote{\rm 14:8\TH}
+יָשֻׁ֙בוּ֙
+יֹשְׁבֵ֣י בְצִלּ֔וֹ יְחַיּ֥וּ דָגָ֖ן וְיִפְרְח֣וּ כַגָּ֑פֶן זִכְר֖וֹ כְּיֵ֥ין לְבָנֽוֹן׃
+ % have to leave 14:9 here but move down
+ %\mnoteskip = -21pt
+ \mnote{\rm 14:9\TH}
+אֶפְרַ֕יִם מַה־לִּ֥י
+ע֖וֹד לָֽעֲצַבִּ֑ים אֲנִ֧י עָנִ֣יתִי וַאֲשׁוּרֶ֗נּוּ אֲנִי֙ כִּבְר֣וֹשׁ רַֽעֲנָ֔ן מִמֶּ֖נִּי פֶּרְיְךָ֥
+נִמְצָֽא׃
+ \mnote{\rm 14:10\TH}
+מִ֤י חָכָם֙ וְיָ֣בֵֽן אֵ֔לֶּה נָב֖וֹן וְיֵֽדָעֵ֑ם כִּֽי־יְשָׁרִ֞ים דַּרְכֵ֣י יְהוָ֗ה וְצַדִּקִים֙
+יֵ֣לְכוּ בָ֔ם וּפֹשְׁעִ֖ים
+\break
+יִכָּ֥שְׁלוּ בָֽם׃
+\par}
+%
+%
+% start again because \raggedleft does not carry over
+%
+\vskip 1.0truecm\nin
+%
+% I switched \RL to after seemed to affect spacing
+\centerline{\RL{\sblC מיכה}}
+\mni
+\centerline{\LR{\bftwenty {\bitwenty Micah 7:18\Th-\Th 20} } }
+%
+\setRL
+\mni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\H
+\raggedleft % in [macros.mac]
+ \fixmnotes\right
+%
+ \mnoteskip = 4pt
+ \mnote{\rm 7:18\TH}
+\kern -12pt
+{\firstH
+מִי־אֵ֣ל
+}\kern -3pt %have to pull right
+כָּמ֗וֹךָ נֹשֵׂ֤א עָוֺן֙ וְעֹבֵ֣ר עַל־פֶּ֔שַׁע לִשְׁאֵרִ֖ית נַחֲלָת֑וֹ
+לֹא־הֶחֱזִ֤יק לָעַד֙ אַפּ֔וֹ
+כִּֽי־חָפֵ֥ץ חֶ֖סֶד הֽוּא׃
+ \mnote{\rm 7:19\TH}
+יָשׁ֣וּב יְרַֽחֲמֵ֔נוּ
+\break
+יִכְבֹּ֖שׁ עֲוֺֽנֹתֵ֑ינוּ וְתַשְׁלִ֛יךְ בִּמְצֻל֥וֹת יָ֖ם
+כָּל־חַטֹּאותָֽם׃
+%
+\fixmnotes\left % want on LEFT
+ \mnoteskip = 13pt\mnote{ \kern -14pt\LR{{\rmfourteen extra}\Th {\hn \w}
+ {\rmfourteen in}\hbox to 6pt{} {\hn חַטֹּאותָֽם}}}
+%
+\fixmnotes\right % back to right
+\mnote{\rm 7:20\TH}
+תִּתֵּ֤ן אֱמֶת֙ לְיַֽעֲקֹ֔ב חֶ֖סֶד לְאַבְרָהָ֑ם אֲשֶׁר־נִשְׁבַּ֥עְתָּ לַאֲבֹתֵ֖ינוּ מִ֥ימֵי
+קֶֽדֶם׃
+\par}
+%
+\vskip -28truept\nin
+
+
+\baselineskip = 16.5pt
+
+%\FOR ENGLISH AGAIN
+%
+\setLR
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+% FOR ENGLISH QUOTES/TRANSLATIONS
+
+\mni
+%
+\centerline {\bftwenty {\bitwenty Hosea}\Th 14:\th 2--10}
+\mni
+{\rmfourteen %make a little larger
+\raggedright
+%
+\fixmnotes\left
+ \mnote{\rm 14:2\TH}
+\kern -7pt{\firstE Return}, O Israel, to the LORD your God, for you have fallen
+because of your sin.
+\mnote{\rm 14:3\TH}
+Take words with you And return to the LORD. Say to Him: “Forgive all guilt and accept what is good; instead
+of bulls we will pay \[the offering of\] our lips".
+ \mnote{\rm 14:4\TH}
+Assyria shall not save us, no more will we ride on steeds; nor ever again will we call our handiwork our god,
+since in You alone orphans find pity!”
+ \mnote{\rm 14:5\TH}
+I will heal their affliction, generously will I take them back in love; for my anger has turned away from
+them.
+ \mnote{\rm 14:6\TH}
+I will be to Israel like dew; he shall blossom like the lily, he shall strike root like a Lebanon tree.
+\mnote{\rm 14:7\TH}
+His boughs shall spread out far, his beauty shall be like the olive tree’s, his fragrance like that of
+Lebanon.
+ \mnote{\rm 14:8\TH}
+They who sit in his shade shall be revived: they shall bring to life new grain, they shall blossom like the
+vine; his scent shall be like the wine of Lebanon.
+ \mnote{\rm 14:9\TH}
+Ephraim \[shall say\]: “What more have I to do with idols? When I respond and look to Him, I become like a
+verdant cypress.” Your fruit is provided by Me.
+\mnote{\rm 14:10\TH}
+He who is wise will consider these words, He who is prudent will take note of them. For the paths of the LORD
+are smooth; The righteous can walk on them, While sinners stumble on them.
+%
+\vskip 0.8truecm\nin
+%
+\centerline{\bftwenty{\bitwenty Micah}\Th 7:\th 18-20}
+ \mni
+ \mnote{\rm 7:18\TH}
+\kern -7pt{\firstE Who} is a God like You, forgiving iniquity and remitting
+transgression; who has not
+maintained His wrath forever against the remnant of His own people, because He loves graciousness!
+ \mnote{\rm 7:19\TH}
+He will take us back in love; He will cover up our iniquities, You will hurl all our sins Into the depths of
+the sea.
+ \mnote{\rm 7:18\TH}
+You will keep faith with Jacob, loyalty to Abraham, as You promised on oath to our fathers In days gone by.
+%
+%
+\vskip 2.0truecm
+\item{} The Hebrew text is from: {\tt Westminster Leningrad Codex [4.20]} from {\tt http://tanach.us/}.
+\sni
+\item{} The English text is that of the Jewish Publication Society, {\it The
+Prophets\/}
+\item{}from {\tt https://www.sefaria.org/}.
+%
+} % end \rmfourteen
+%
+\end % it says to put, probably to end \bidi
+\vfill\eject
+ } % end \rm
+\par} % ends \hsize
+ \bye
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/macros.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/macros.mac
new file mode 100644
index 0000000000..98864fad6c
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/macros.mac
@@ -0,0 +1,145 @@
+% [macros.mac]
+% these are REAL macros with #1 ...
+
+%
+% %%%%%%%%%%%%%%%%%%%% THICKNESS OF RULES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ====> CHANGE THICKNESS AS DESIRED
+
+\newdimen\hruledefaultheight \hruledefaultheight = 1.1pt
+\newdimen\hruledefaultdepth \hruledefaultdepth = 0.0pt
+\newdimen\vruledefaultwidth \vruledefaultwidth = 1.1pt
+\def\ehrule{\hrule height\hruledefaultheight depth\hruledefaultdepth}%
+\def\evrule{\vrule width\vruledefaultwidth}%
+
+
+% %%%%%%%%%%%%%%%%%%%% \INFOBOXING MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \boxit{#1}, taken from the TeXbook, trivially generalized to allow
+% something other than 3pt around the box.
+
+% ====> CHANGE \BOXITSPACE AS DESIRED
+
+% \boxit{#1} is not used directly; it is used in \infobox{#1}
+% \long, permits \par inside definition
+%
+%
+\newdimen\boxitspace \boxitspace = 8pt %13pt too much % WAS 3PT,
+\long\def\boxit#1{%
+ \centerline{\vbox{%
+ \ehrule
+ \hbox{%
+ \evrule
+ \kern\boxitspace
+ \vbox{\kern\boxitspace \parindent = 0pt #1\kern\boxitspace}%
+ \kern\boxitspace
+ \evrule
+ }%
+ \ehrule
+ } % \vbox
+ }% \centerline
+ } % end of def
+
+%
+% MACRO: \infobox{#1}, based on \boxit withspace = 8pt, line thickness 1.1pt
+%
+\long\def\infobox#1{ % start defn
+ \vskip 15truept\noindent
+ \hbox{
+ \boxit{\hbox{#1}} % was \bf
+ }
+ \vskip 6truept\noindent} % end of def
+
+
+% %%%%%%%% MACROS FOR GENEALOGY: NUMBER+NAME+INFO +FILE %%%%%%%%%%%%%%%
+% three macros here. the test for \ancestor is at the end
+% 1: \ancestor: (formely \identity) is used in [coralie_weill_list-ancestors.tex].
+% 3 entries: {\ttfourteen number}{\bffourteen name}{\rm = 12.5 dates and documents}
+% the identitification number is on a separate line, and the fonts are
+% larger than for \person
+%
+% 2: \person : similar to \ancestor, but name is first; all on one line and fonts are
+% different
+%
+% the number is in parentheses ( ); also colon after number
+% 3 entries: {\bfthirteen name} ({\tt =12.5 number}): {\rm = 12.5 dates and documents}
+% =====) can use for children after \item{1.}\person{}{}{}
+%
+% 3: \former: used inside \person for former name
+%
+% 4: \marriage
+% \marriage moved to AFTER husband, so no need for name or identification
+% {\tt Married}: {\rm date and place of marriage + source}
+%
+% I PUT THE PERIODS IN THE DEFINITION
+
+% 1: DEFINING \ancestor
+% \long allows paragraph etc
+% fifteen seems to big. I seem to have to change -3pt, -2pt
+% all 3 inputs are in {}
+% NO PERIOD AFTER #3 FOR THIS SIMPLE LIST
+\long\def\ancestor#1#2#3{
+\noindent
+\hskip -5pt\hbox{\ttfourteen #1} % identiification number
+\vskip -1.0 truept % \sni = 4pt was too much space between # and name as compared to between couple
+ % even + 1.0pt seems to much
+ % increase distance between mother/father to \sni + 2pt =6pt? ?this is
+ % distance before separation line
+\hangindent = 2.0\parindent\noindent % noindent here
+%
+ \hskip -1pt %I had this to move number over to line up
+ {\bffourteen #2}\TH % #2 =NAME + \quad skip before text
+ {#3.} % #3 is just text on same line
+ } % end of def %
+
+% \ancestorB for list of ancestors
+\def\ancestorB#1#2{
+\hskip -5pt\hbox{\ttfourteen #1}\TH % identiification number
+{\bffourteen #2}
+ } % end of def %
+
+
+% 2: DEFINING \PERSON
+% ==============) ( ) and : are built in
+% PERIOD AFTER #3
+\long\def\person #1#2#3{
+ \noindent % need after \vfill, perhaps other times
+ % may be different on 2005 and 2014
+ % was thirteen , but children are fourteen!!
+ \kern -3.4pt{\bffourteen #1}\TH % use \former inside \person{NAME\former{OLD}}
+ (\gl {\tt #2}\gl)\TH
+ {#3.}
+ } % end of def %
+
+% 3: DEFINING \FORMER; use INSIDE \PERSON
+% I took off ( ) because the identity # is inside ( )
+% But I added in a comma
+ \long\def\former #1{ % not allowed to use #2
+ % was \it = 13pt, increased to match \person
+ \kern -2.5truept{\rm ,}\Th {\it #1\/}} % end of def
+
+
+%
+% 4: DEFINING \MARRIAGE #2 (name) and # 3 (number) eliminated
+% PERIOD AFTER #1
+% ==============) ( ) and : are built in
+
+\long\def\marriage #1{
+ \hskip -0.1pt{\tt marriage}\th:\TH % \Th too big, -2,-5 too big
+ %{\bfthirteen #1}\TH
+ % {\tt #2}\th:\TH
+ {#1.}
+ } % end of def marriage%
+
+%
+% \file, for putting file letter in [coralie_list]
+\def\file #1{
+ \TH [\th\hbox{\bf #1}\th]} % \biggl[ only for $$? \big
+ % end defn file
+
+
+% \titleA ancestor title for list of ancestors
+% #1 = name, #2 = number, same font ( ) built in
+\def\titleA#1#2{\centerline{\bffifteen #1 \(#2\)}}
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_fonts.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_fonts.mac
new file mode 100644
index 0000000000..f6a21e0e52
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_fonts.mac
@@ -0,0 +1,259 @@
+% [my_fonts.mac]
+% The idea of this mac file is to be able to call up various font faces, styles and sizes
+% with an abbreviation. I add sizes as needed
+
+% Notice the format (this may vary with your operating system)
+% \font\<ASSIGNEDNAME> % NO DASHES OR UNDERLINES
+% = [\full path .../ <NAME OF FONT>.otf ] % ENCLOSE IN [ ]
+% % RENAME FONT, NO DASHES AND UNDERLINES
+% at <POINT SIZE> pt
+
+% I prefer to place the fonts in my home directory so as to avoid the need for permissions, etc
+% to change the name of the fonts.
+% In my case I use: /home/liliane/ROGER/
+
+%%%%%%%%%%%%% LIBERTINE FONTS (open source) %%%%%%%%%%%%%
+% available at: http://libertine-fonts.org
+% They have a whole range of families (sans serif etc)
+%
+% These are my main typesetting fonts.
+
+%%%%%%%%%%% LIBERTINE SERIF TYPES %%%%%%%%%%%%%%% very stylized
+
+% %%%%%%%% ROMAN %%%%%%%%
+%
+% The normal size roman font
+ \font\rm = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 12.5 pt % roman
+
+ % very small indeed. I used this so that I can have a negative \vskip
+ % to move material at the start of a page (often after \eject
+ \font\verysmall = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 0.01 pt
+
+
+ \font\tiny = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 0.01 pt
+% /home/liliane/ROGER/MY-FONTS/
+ \font\small = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.0 pt % COMPATIBLE
+ \font\rmten = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 10.0 pt
+ \font\rmeleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 11.0 pt
+ \font\rmtwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 12.0 pt
+ \font\rmthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 13.0 pt
+ \font\rmfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 14.0 pt
+ \font\rmfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 15.0 pt
+ \font\rmsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 16.0 pt
+ \font\rmseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 17.0 pt
+ \font\rmeighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 18.0 pt
+ \font\rmtwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineR.otf] at 20.0 pt
+
+% %%%%%%%% ROMAN BOLD %%%%%%%%
+% The normal size bold face font
+ \font\bf = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 12.5 pt
+
+ \font\bfnine = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 9.0 pt
+ \font\bften = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 10.0 pt
+ \font\bfeleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 11.0 pt
+ \font\bftwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 12.0 pt
+ \font\bfthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 13.0 pt
+ \font\bffourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 14.0 pt
+ \font\bffifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 15.0 pt
+ \font\bfsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 16.0 pt
+ \font\bfseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 17.0 pt
+ \font\bfeighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 18.0 pt
+ \font\bftwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 20.0 pt
+ \font\bftwentytwo = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 22.0 pt
+
+% SMALL BOLDFACE for $^{CD}$ % I made 5pt in notes
+\font\boldmedsmall = [/home/liliane/ROGER/MY-FONTS/LinLibertineRB.otf] at 6.6pt
+
+
+ %%%%%%%% ROMAN ITALICS %%%%%%%
+ %
+ % The normal size italic face font
+ \font\it = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 13.0 pt % slightly larger than \rm
+
+ \font\itten = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 10.0 pt
+ \font\iteleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 11.0 pt
+ \font\ittwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 12.0 pt
+ \font\itthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 13.5 pt
+ % this goes with rmfourteen & bffourteen
+ \font\itfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 14.5 pt
+ \font\itfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 15.5 pt
+ \font\itsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 16.5 pt
+ \font\itseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 17.5 pt
+ \font\iteighteen= [/home/liliane/ROGER/MY-FONTS/LinLibertineRI.otf] at 18.0 pt
+
+ % %%%%%%%% ROMAN BOLD ITALICS % %%%%%%%%
+ %
+\font\bi = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 13.5 pt
+% for {\bfsixteen .... [italicized] }
+\font\bififteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 15.5 pt
+\font\bisixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 16.5 pt
+\font\biseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 17.5 pt
+\font\bieighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 18.5 pt
+\font\bitwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRBI.otf] at 20.0 pt
+
+ %%%%%%%% MONO use in place of \TeX \tt %%%%%%%
+%
+% The normal size moni font
+\font\tt = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 12.5 pt % mono
+
+ \font\ttnine = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 9.0 pt % mono
+ \font\ttten = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 10.0 pt % mono
+\font\tteleven = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 11.0 pt % mono
+\font\tttwelve = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 12.0 pt % mono
+\font\ttthirteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 13.0 pt % mono
+\font\ttfourteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 14.0 pt % mono
+\font\ttfifteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 15.0 pt % mono
+\font\ttsixteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 16.0 pt % mono
+\font\ttseventeen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 17.0 pt % mono
+\font\tteighteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 18.0 pt % mono
+\font\ttnineteen = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 19.0 pt % mono
+\font\tttwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineM.otf] at 20.0 pt % mono
+
+
+%%%%%%% ROMAN SEMI-BOLDS FOR TITLES %%%%%%
+% I use forty for posters
+% roman semi-bold
+\font\sb = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 14.5 pt
+\font\sbtwenty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 20.0 pt
+\font\sbtwentyfive= [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 25.0 pt
+\font\sbthirty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 30.0 pt
+\font\sbthirtyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 35.0 pt
+\font\sbforty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 40.0 pt
+\font\sbfortyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 45.0 pt
+\font\sbfifty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 50.0 pt
+\font\sbfiftyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZ.otf] at 55.0 pt % used for haftarah poster
+
+ % roman semi-bold-italics
+\font\sbi = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 12.5 pt
+\font\sbiforty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 40.0 pt
+\font\sbifortyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 45.0 pt
+\font\sbififty = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 50.0 pt
+\font\sbififtyfive = [/home/liliane/ROGER/MY-FONTS/LinLibertineRZI.otf] at 55.0 pt % used for haftarah poster
+
+%%%%%%%%%%%%% END LIBERTINE %%%%%%%%%%%%%
+
+%%%%%%%%%%% RALEWAY %%%%%%%%%
+% These fonts are available at:
+% https://www.theleagueofmoveabletype.com/
+% [They have other interesting fonts]
+
+% I use these fonts for posters, woodburning etc.
+% There are other fonts in the Raleway family.
+
+% Notice how multiples of A, B, C and D are use to group font sizes
+
+% BOLD
+\font\RalewayBoldA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 15pt
+\font\RalewayBoldAA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 20pt
+\font\RalewayBoldAAA = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 25pt
+
+\font\RalewayBoldB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 50pt
+\font\RalewayBoldBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 55pt
+\font\RalewayBoldBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 60pt
+\font\RalewayBoldBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 65pt
+\font\RalewayBoldBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 70pt
+\font\RalewayBoldBBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayBold.otf] at 75pt
+
+% EXTRA BOLD
+\font\RalewayExtraBoldB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 50pt
+\font\RalewayExtraBoldBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 55pt
+\font\RalewayExtraBoldBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 60pt
+\font\RalewayExtraBoldBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 65pt
+\font\RalewayExtraBoldBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 70pt
+\font\RalewayExtraBoldBBBBBB = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 75pt
+
+\font\RalewayExtraBoldC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 80pt
+\font\RalewayExtraBoldCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 85pt
+\font\RalewayExtraBoldCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 90pt
+\font\RalewayExtraBoldCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 95pt
+\font\RalewayExtraBoldCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 100pt
+\font\RalewayExtraBoldCCCCC = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 105pt
+
+\font\RalewayExtraBoldD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 110pt
+\font\RalewayExtraBoldDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 115pt
+\font\RalewayExtraBoldDDD= [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 120pt
+\font\RalewayExtraBoldDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 125pt
+\font\RalewayExtraBoldDDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 130pt
+\font\RalewayExtraBoldDDDDDD = [/home/liliane/ROGER/MY-FONTS/RalewayExtraBold.otf] at 135pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% END RALEWAY %%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% HACK %%%%%%%%%%%%%%%
+% These fonts are available at: https://sourcefoundry.org/hack/
+% Hack is a mono space (teletype =\tt or fixed spacing) designed for coding.
+% The heavier version are excellent for arrows; see the file [format_XETEX.mac]
+
+%%%%%%%%%%% REGULAR HACK %%%%%%%%%%%%%%
+\font\hackthirteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 13.0pt
+\font\hackfourteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 14.0pt
+\font\hackfifteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 15.0pt
+\font\hacksixteen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 16.0pt
+\font\hackseventeen = [/home/liliane/ROGER/MY-FONTS/HackRegular.otf] at 17.0pt
+
+%%%%%%%%%%% BOLD HACK %%%%%%%%%%%%%%
+\font\bfhackthirteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 13.0pt
+\font\bfhackfourteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 14.0pt
+\font\bfhackfifteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 15.0pt
+\font\bfhacksixteen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 16.0pt
+\font\bfhackseventeen = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 17.0pt
+
+\font\hackboldA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 13.0pt
+\font\hackboldAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 14.0pt
+\font\hackboldAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 16.0pt
+\font\hackboldAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 18.0pt
+\font\hackboldAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 20.0pt
+\font\hackboldAAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 30.0pt
+\font\hackboldAAAAAAA = [/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 40pt
+
+\font\hackboldB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 50.0pt
+\font\hackboldBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 55.0pt
+\font\hackboldBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 60.0pt
+\font\hackboldBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 65.0pt
+\font\hackboldBBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 70.0pt
+\font\hackboldBBBBBB =[/home/liliane/ROGER/MY-FONTS/HackBold.otf] at 75.0pt
+
+% HackBoldOblique.otf
+\font\hackboldobliqueA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 13.0pt
+\font\hackboldobliqueAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 14.0pt
+\font\hackboldobliqueAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 16.0pt
+\font\hackboldobliqueAAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 18.0pt
+\font\hackboldobliqueAAAAA =[/home/liliane/ROGER/MY-FONTS/HackBoldOblique.otf] at 20.0pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% END HACK %%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%% TEX CMSY, MSAM AND MSBM FONTS %%%%%%%
+
+% These are used in [format.mac] for some special symbols
+% Since these are special fonts corresponding to sets of symbols,
+% i did not bother to convert to unicode
+% Choose the font which corresponds to the chart on which the
+% the symbol is located, as indicated below by: % \exists chart
+% e.g \| is the bullet on the cmsy10 table at position 15.
+% so I use \font\cmsyAa to define it at the font size that I want
+%
+\font\cmsyAAAA = cmsy10 at 17.0pt % used for arrows
+\font\cmsyAAA = cmsy10 at 15.0pt
+\font\cmsyAA = cmsy10 at 13.0pt
+\font\cmsyA = cmsy10 at 11.0pt
+\font\cmsyAa = cmsy10 at 10.0pt % \exists chart
+
+% ff used for star (char70), square (char04)
+\font\msamAAAA = msam10 at 17.0pt
+\font\msamAAA = msam10 at 15.0pt
+\font\msamAA = msam10 at 13.0pt % \exists chart
+\font\msamA = msam10 at 11.0pt
+\font\msamAa = msam10 at 10.0pt % used for \square
+\font\msamAaa = msam10 at 9.0pt % used for \square
+\font\msamAaaa = msam10 at 8.0pt % used for \square
+
+% I use B here, because of msBm
+\font\msbmBBBB = msbm10 at 17.0pt % used with \web
+\font\msbmBBB = msbm10 at 15.0pt
+\font\msbmBB = msbm10 at 13.0pt % \exists chart
+\font\msbmB = msbm10 at 11.0pt
+
+%%%%%%%%%%%% END: TEX CMSY, MSAM AND MSBM FONTS %%%%%%%
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_hebrew_fonts.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_hebrew_fonts.mac
new file mode 100644
index 0000000000..ca6b38a79d
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/my_hebrew_fonts.mac
@@ -0,0 +1,93 @@
+% [my_hebrew_fonts.mac]
+% [ancient_fonts.mac] is separate
+
+%%%%%%%%%%%%%%%%%%%%%%%% FONTS %%%%%%%%%%%%%%%%%%%%%
+% my identification is LC, but leave font name capital
+% ====>> NO DASHES OR UNDERLINES in identification name
+
+
+% SBL = SOCIETY BIBLICAL LITTERATURE
+ % https://www.sbl-site.org/educational/biblicalfonts_sblhebrew.aspx
+% This is the default font at Tanach.us
+% ===> SIL has a faulty yod-heeriq combination
+
+% Here I use the AA notation, whereas for the English I use \font\sbiforty
+
+\font\sblb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 10pt
+\font\sblbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 11pt
+\font\sblbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 12pt
+\font\sblbbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 13 pt
+\font\sblbbbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 14 pt
+\font\sblbbbbbb=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 15 pt
+
+ % repeat 15pt for convenience
+\font\sblB=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 15pt
+\font\sblBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 17.5pt
+\font\sblBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 20pt
+\font\sblBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 22.5pt
+\font\sblBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 25.0pt
+\font\sblBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 27.5pt
+\font\sblBBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 30.0pt
+
+\font\sblC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 35pt
+\font\sblCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 40pt
+\font\sblCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 45pt
+\font\sblCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 50pt
+
+\font\sblCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 55pt
+\font\sblCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 60pt
+\font\sblCCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 65pt
+\font\sblCCCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/SBL_Hbrw.ttf] at 70pt
+%
+%
+
+% for the following and other fonts, see:
+% http://culmus.sourceforge.net/ ===> summary + download
+% https://opensiddur.org/help/fonts/
+
+%%%%%%%%%%%%%%% BOLD CLASSIC FOR TITLES+FIRST WORKDS %%%%%%%%%%%%%%
+
+% I keep the same letters as for sbl
+\font\frbfB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 15.0pt
+\font\frbfBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 17.5pt
+\font\frbfBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 20.0pt
+\font\frbfBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 22.5pt
+\font\frbfBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 25.0pt
+\font\frbfBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 27.5pt
+\font\frbfBBBBBBB =[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 30.0pt
+
+\font\frbfC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 35pt
+\font\frbfCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 40pt
+\font\frbfCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 45pt
+\font\frbfCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 50pt
+\font\frbfCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 55pt
+\font\frbfCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 60pt
+\font\frbfCCCCCCC=[/home/liliane/ROGER/MY-FONTS/HEBREW/FrankRuehlBold.ttf] at 65pt
+
+ %%%%%%%% OBLIQUES + \QERE %%%%%%%
+
+\def\HI{\ketermediumobliqueBBBBB} % KOREH for Hebrew oblIque 25.0pt
+
+% THIS IS THE ONLY ONE OF THE 3 THAT WILL PLACE THE QERE ([hebrew_font_trials_[2017.11.12].tex])
+\font\ketermediumobliqueBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 20pt
+\font\ketermediumobliqueBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 22.5pt
+\font\ketermediumobliqueBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 25.0pt
+\font\ketermediumobliqueBBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGMediumOblique.ttf] at 27.5pt
+
+\font\keterboldobliqueBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/KeterYGBoldOblique.ttf] at 20pt
+
+\font\ShofarDemiBoldObliqueBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/ShofarDemiBoldOblique.ttf] at 20pt
+
+ %%%% END: OBLIQUES + \QERE %%%
+
+ %%%%%%%%%%%%%% TORAH FONTS %%%%%%%%%%%%%%%%%%%%%
+\font\ashktorahBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 20.0pt
+\font\ashktorahBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 22.5pt
+\font\ashktorahBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 25.0pt
+\font\ashktorahBBBBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamAshkenazCLM.ttf] at 27.5pt
+
+%\font\sephtorahBBB=[/home/liliane/ROGER/MY-FONTS/HEBREW/StamSefaradCLM.ttf] at 20.0pt
+
+ %%%%%%%%%%%%%% END: TORAH FONTS %%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo-leviticus.tex b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo-leviticus.tex
new file mode 100644
index 0000000000..89dfae8fa9
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo-leviticus.tex
@@ -0,0 +1,259 @@
+% [paleo_leviticus.tex]
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+
+\input format_XETEX.mac
+\input unicode_latin.mac
+\input macros.mac
+\input ancient_semitic.mac
+\input my_hebrew_fonts.mac
+\input unicode_hebrew.mac
+
+\input petr_olsak.mac
+\input my_fonts.mac % libertine etc
+
+\input pstricks % need for centring
+\input epsf % need for importing eps
+
+% KEEP BIDI UP HERE AND AFTER OTHER *.MAC
+\input bidi
+
+
+% A = interline glue If A < B then sets A to C p. 134
+\lineskiplimit = 2pt % B % pg 134 they have 2pt plus .5pt
+\lineskip= 1.8pt % C % pg 134 they have 1pt
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt % p. 156
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein
+\pdfpagewidth= 8.5truein
+
+\vsize = 8.50 in
+{\hsize = 5.94 in
+
+\voffset = 0.5 truecm %1.0truecm
+\hoffset = 0.70truecm %
+%
+\baselineskip = 14pt % default = 12pt
+\nopagenumbers
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+% [FORM_ENGLISH_with_HEBREW.tex]
+% Here \rm encloses everything
+% For short Hebrew use: \RL{Hebrew text}
+% For longer Hebrew use \setRL and \LR{English text}%
+%
+% CAN GO BACK TO MAINLY ENGLISH WITH \SET LR
+
+% THIS PUT ? IN RIGHT ORDER
+% FOR BRACKETS USE REGULAR ORDER, ie.
+% \RL{\bffourteen \m\r\y\`\ \q\l\y\[\n\Q\]\g}.
+
+\def\Q{\RL{\bffourteen}} % FOR USE WITH LIBERTINE
+
+\def\H{\sblBBB} % SBL at 20pt main Hebrew
+
+{\rm % 12.5 | \bf = 12.5 | \it =13.0 | \bi = 13.5
+%
+{\verysmall .}
+\vskip -20pt\nin
+\centerline {\bfsixteen Paleo-Leviticus} % English title%
+%
+\mni
+%
+The image is take from an article by Richard Hanson that appeared in {\it
+Biblical Archaeologist} in June,
+1985. A complete study, including a transcription a detailed analysis of the script by Hanson, in Freedman,
+D. and Mathews, K. 1985. {\it The Paleo-Hebrew Leviticus Scroll (11QpaleoLev)\/}. The \lq 11Q\rq\ indicates
+that it came from cave number 11 at Qumran; it was discovered in 1956.
+\mni
+Here is the image again:
+%
+\vskip 12pt\nin
+% PSTRICKS FORM
+ \centerline{\epsfxsize = 6.5truein\epsfbox{}} % paleo-hebrew_leviticus.eps
+%
+\vskip 12pt\nin
+%
+and here is the transcription from Freedman and Mathews:
+
+% PSTRICKS FORM
+\vskip -1pt\nin
+\centerline{\epsfxsize = 6.5truein\epsfbox{}} % paleo_leviticus_transcription_marked.eps
+%
+\vfill\eject\nin
+{\rmfourteen % want a little larger
+Now here is the text of {\it Leviticus\/} 18:27-19:4 from {\tt Tanach.us} set in the SBL font:}
+%
+\vskip12pt\nin
+\setRL
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+% \hskip 9pt\vbox NO makes left
+{\H
+\rightskip = 1cm % Much better
+% if make =0.2 not wide enough, this goes into left margin
+\leftskip = -0.0cm plus 4em %\rightskip absolutely need plus 4em
+\spaceskip = .3333em % these two are pg 107 eh?
+\xspaceskip = .5em
+\parfillskip = 0pt
+\noindent
+%TO PUT THE NUMBERS IN i USED SEARCH 18:27 AND REPLACED WITH \RM{18.27}
+% MAY WANT A BIGGER FONT
+{\rm 18:27\TH}כִּי אֶת־כָּל־הַתּוֹעֵבֹת הָאֵל עָשׂוּ אַנְשֵׁי־הָאָרֶץ אֲשֶׁר לִפְנֵיכֶם וַתִּטְמָא הָאָרֶץ׃
+{\rm 18:28\TH}וְלֹא־תָקִיא הָאָרֶץ אֶתְכֶם בְּטַמַּאֲכֶם אֹתָהּ כַּאֲשֶׁר קָאָה אֶת־הַגּוֹי אֲשֶׁר
+לִפְנֵיכֶם׃
+{\rm 18:29\TH}כִּי כָּל־אֲשֶׁר יַעֲשֶׂה מִכֹּל הַתּוֹעֵבוֹת הָאֵלֶּה וְנִכְרְתוּ הַנְּפָשׁוֹת
+הָעֹשֹׂת מִקֶּרֶב עַמָּם׃
+{\rm 18:30\TH}
+וּשְׁמַרְתֶּם אֶת־מִשְׁמַרְתִּי לְבִלְתִּי עֲשׂוֹת מֵחֻקּוֹת
+הַתּוֹעֵבֹת אֲשֶׁר נַעֲשׂוּ לִפְנֵיכֶם וְלֹא תִטַּמְּאוּ בָּהֶם אֲנִי יְהוָה אֱלֹהֵיכֶם׃ פ
+{\rm 19:1\TH}וַיְדַבֵּר יְהוָה אֶל־מֹשֶׁה לֵּאמֹר‪
+{\rm 19:2\TH}דַּבֵּר אֶל־כָּל־עֲדַת
+בְּנֵי־יִשְׂרָאֵל וְאָמַרְתָּ אֲלֵהֶם קְדֹשִׁים תִּהְיוּ כִּי קָדוֹשׁ אֲנִי יְהוָה אֱלֹהֵיכֶם׃
+{\rm 19:3\TH}אִישׁ אִמּוֹ וְאָבִיו תִּירָאוּ וְאֶת־שַׁבְּתֹתַי תִּשְׁמֹרוּ אֲנִי יְהוָה אֱלֹהֵיכֶם׃
+{\rm 19:4\TH}אַל־תִּפְנוּ אֶל־הָאֱלִילִים וֵאלֹהֵי מַסֵּכָה לֹא תַעֲשׂוּ לָכֶם אֲנִי יְהוָה אֱלֹהֵיכֶם׃
+\par} %
+%
+\vskip 1.0cm\nin
+%
+\setLR % ABSOLUTELY NEED THIS
+\pni % ABSOLUTELY NEED THIS
+{\rmfourteen
+Now here is the text of {\it Leviticus\/} 18:27-19:4 } set in the {\it Hebrew-Paleo-Qumran.ttf\/} font by
+Yoram Gnat. This is one of a set of ancient fonts that he designed. They are available at:
+\sni
+ \centerline{\tttwelve https://sourceforge.net/projects/culmus/files/ancient\_fonts/}
+ }
+\sni
+\setRL % NEED TO REPEAT
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+%
+{\qumranBB
+\rightskip = 1cm % Much better
+% if make =0.2 not wide enough, this goes into left margin
+\leftskip = -0.0cm plus 4em %\rightskip absolutely need plus 4em
+\spaceskip = .3333em % these two are pg 107 eh?
+\xspaceskip = .5em
+\parfillskip = 0pt
+\noindent
+{\rm 18:27\TH}כי את כל התועבת האל עשו אנשי הארץ אשר לפניכם ותטמא הארץ {\rm 18:28\TH}ולא תקיא
+הארץ אתכם בטמאכם אתה
+כאשר קאה את הגוי אשר לפניכם
+{ \rm 18:29\TH}
+כי כל אשר יעשה מכל התועבות האלה ונכרתו הנפשות העשת מקרב עמם
+{\rm 18:30\TH}ושמרתם את משמרתי לבלתי עשות מחקות התועבת אשר נעשו לפניכם ולא תטמאו בהם אני יהוה אלהיכם פ
+{\rm 19:1\TH}וידבר יהוה אל משה לאמר {\rm 19:2\TH}דבר אל כל עדת בני ישראל ואמרת אלהם קדשים תהיו
+כי קדוש אני יהוה
+אלהיכם
+{\rm 19:3\TH}איש אמו ואביו תיראו ואת שבתתי תשמרו אני יהוה אלהיכם {\rm 19:4\TH}אל תפנו אל האלילים
+ואלהי מסכה
+לא תעשו לכם אני יהוה אלהיכם
+\par} %
+% {\qumranBBBBB בני ישראל } did not work
+\vskip 1.0cm
+%
+%
+\setLR % ABSOLUTELY NEED THIS
+\pni
+{\rmfourteen
+Now here is the text of {\it Leviticus\/} 18:27-19:4 set in the much easier to read {\it
+Hebrew-Paleo-Mesha.ttf\/} font, also by
+Yoram Gnat. This comes from the same set as the Qumran font.
+\sni
+This is font is based on that of the {\it Mesha Stelle\/}, which dates fromthe
+nineth century BCE., and which relates the feats of King
+Mesha of Moab (see {\it 2 Kings\/} 3, verse 4).
+\par}
+%
+\bni
+\setRL % NEED TO REPEAT
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+{\meshaBBBB % needs to
+\rightskip = 1cm % Much better
+% if make =0.2 not wide enough, this goes into left margin
+\leftskip = -0.0cm plus 4em %\rightskip absolutely need plus 4em
+\spaceskip = .3333em % these two are pg 107 eh?
+\xspaceskip = .5em
+\parfillskip = 0pt
+\noindent
+{\rm 18:27\TH}כי את כל התועבת האל עשו אנשי הארץ אשר לפניכם ותטמא הארץ {\rm 18:28\TH}ולא תקיא
+הארץ אתכם בטמאכם אתה
+כאשר קאה את הגוי אשר לפניכם
+{\rm 18:29\TH}
+כי כל אשר יעשה מכל התועבות האלה ונכרתו הנפשות העשת מקרב עמם
+{\rm 18:30\TH}ושמרתם את משמרתי לבלתי עשות מחקות התועבת אשר נעשו לפניכם ולא תטמאו בהם אני יהוה אלהיכם פ
+{\rm 19:1\TH}וידבר יהוה אל משה לאמר {\rm 19:2\TH}דבר אל כל עדת בני ישראל ואמרת אלהם קדשים תהיו
+כי קדוש אני יהוה
+אלהיכם
+{\rm 19:3\TH}איש אמו ואביו תיראו ואת שבתתי תשמרו אני יהוה אלהיכם
+{\rm 19:4\TH}
+אל תפנו אל האלילים ואלהי
+מסכה
+לא תעשו לכם אני יהוה אלהיכם
+\par} %
+%% {\qumranBBBBB בני ישראל } did not work
+\vskip 1.0cm\nin
+%
+%
+% SILOM AFTER \BYE
+\setLR % ABSOLUTELY NEED THIS
+\pni
+{\rmfourteen
+Now here is the text of {\it Leviticus\/} 18:27-19:4 set in the
+{\it Hebrew-Samaritan.ttf\/} font, also by
+Yoram Gnat. This comes from the same set as the Qumran font. The Samaritan {\it Bible\/}---which differs
+from the Hebrew {\it Bible\/}---was written in this script, which is still being used by the present day
+Samaritans.
+}
+\bni
+\setRL % NEED TO REPEAT
+\pni % IT ABSOLUTELY NEEDS A \PAR. \NIN IS NOT GOOD ENOUGH
+{\samaritanBBBB %
+\rightskip = 1cm % Much better
+% if make =0.2 not wide enough, this goes into left margin
+\leftskip = -0.0cm plus 4em %\rightskip absolutely need plus 4em
+\spaceskip = .3333em % these two are pg 107 eh?
+\xspaceskip = .5em
+\parfillskip = 0pt
+\noindent
+{\rm 18:27\TH}כי את כל התועבת האל עשו אנשי הארץ אשר לפניכם ותטמא הארץ {\rm 18:28\TH}ולא תקיא
+הארץ אתכם בטמאכם אתה
+כאשר קאה את הגוי אשר לפניכם
+{\rm 18:29\TH}
+כי כל אשר יעשה מכל התועבות האלה ונכרתו הנפשות העשת מקרב עמם
+{\rm 18:30\TH}ושמרתם את משמרתי לבלתי עשות מחקות התועבת אשר נעשו לפניכם ולא תטמאו בהם אני יהוה אלהיכם פ
+{\rm 19:1\TH}וידבר יהוה אל משה לאמר {\rm 19:2\TH}דבר אל כל עדת בני ישראל ואמרת אלהם קדשים תהיו
+כי קדוש אני יהוה
+אלהיכם
+{\rm 19:3\TH}איש אמו ואביו תיראו ואת שבתתי תשמרו אני יהוה אלהיכם
+{\rm 19:4\TH}
+אל תפנו אל האלילים ואלהי
+מסכה
+לא תעשו לכם אני יהוה אלהיכם
+\par} %
+%
+
+%
+\end % it says to put, probably to end \bidi
+\vfill\eject
+ } % end \rm
+\par} % ends \hsize
+ \bye
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo_leviticus.pdf b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo_leviticus.pdf
new file mode 100644
index 0000000000..daaa6d8be2
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/paleo_leviticus.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/petr_olsak.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/petr_olsak.mac
new file mode 100644
index 0000000000..71f740800b
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/petr_olsak.mac
@@ -0,0 +1,1843 @@
+% [petr_olsak.mac]
+% The coding after these preliminary statements is a VERBATIM copy
+% of Peter Olsak's [opmac.tex].
+% This was extracted from his CTAN package [csplain] available at:
+% https://www.ctan.org/pkg/csplain
+% All credits and licenses are those of Peter Olsak and should be respected.
+
+% The extension ".mac" was used for the purpose of a uniform presentation.
+% The name change from "OPmac" to "petr_olsak" was made precisely to avoid the
+% impression that any of the macros in this file are due to me.
+% Roger H-F, Ottawa, 2019.01.08
+
+% N.B. the \rm statements here intefered with the definition of \rm in [my_fonts.mac]
+% so the latter should be placed AFTER this mac file in the input statements
+
+%%%%%%% THE VERBATIM COPY STARTS AFTER THIS LINE %%%%%%%%%%%%%%%
+
+
+% OPmac
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Petr Olsak, 2012 -- 2016
+
+%% The history of versions is at the end of this file, after \endpinput
+
+\ifx\OPmacversion\undefined \else \endinput \fi
+\def\OPmacversion{Aug. 2018}
+\immediate\write16{This is OPmac (Olsak's Plain macros), version <\OPmacversion>}
+
+%%%%%%%%%%%%%% Basic macros, sec. 3.1 in opmac-d.pdf
+
+\newcount\tmpnum % auxiliary count
+\newdimen\tmpdim % auxiliary dimen
+
+\def\opwarning#1{\immediate\write16{l.\the\inputlineno\space OPmac WARNING: #1.}}
+
+\long\def\addto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\def\protectlist{}
+\def\addprotect#1{\addto\protectlist{\doprotect#1}}
+\addprotect~
+
+\ifx\pdfextension\undefined \else
+ \let\pdfoutput=\outputmode \def\pdfcolorstackinit{\pdffeedback colorstackinit}\fi
+
+\newif\ifpdftex \pdftextrue
+\ifx\pdfoutput\undefined \pdftexfalse \else \ifnum\pdfoutput=0 \pdftexfalse \fi \fi
+\ifx\XeTeXversion\undefined \else \pdftextrue \fi
+
+\def\sdef#1{\expandafter\def\csname#1\endcsname}
+\def\sxdef#1{\expandafter\xdef\csname#1\endcsname}
+\def\slet#1#2{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
+
+\def\adef#1{\catcode`#1=13 \begingroup \lccode`\~=`#1\lowercase{\endgroup\def~}}
+
+\def\isdefined #1#2{\expandafter\ifx \csname#1\endcsname \relax
+ \csname iffalse\expandafter\endcsname
+ \else
+ \csname iftrue\expandafter\endcsname
+ \fi
+}
+\long\def\isinlist#1#2#3{\begingroup \long\def\tmp##1#2##2\end{\def\tmp{##2}%
+ \ifx\tmp\empty \endgroup \csname iffalse\expandafter\endcsname \else
+ \endgroup \csname iftrue\expandafter\endcsname \fi}% end of \def\tmp
+ \expandafter\tmp#1\endlistsep#2\end
+}
+\long\def\isnextchar#1#2#3{\begingroup\toks0={\endgroup#2}\toks1={\endgroup#3}%
+ \let\tmp=#1\futurelet\next\isnextcharA
+}
+\def\isnextcharA{\the\toks\ifx\tmp\next0\else1\fi\space}
+
+\def\eoldef#1{\def#1{\begingroup \catcode`\^^M=12 \eoldefA#1}%
+ \expandafter\def\csname\string#1:M\endcsname}
+{\catcode`\^^M=12 \gdef\eoldefA#1#2^^M{\endgroup\csname\string#1:M\endcsname{#2}}}
+
+\def\maybebreak{\afterassignment\maybebreakA\tmpdim=}
+\def\maybebreakA{\ifvmode \vskip0pt plus\tmpdim \penalty-130 \vskip0pt plus-\tmpdim
+ \else \hskip0pt plus\tmpdim \penalty-130 \hskip0pt plus-\tmpdim \fi \relax
+}
+\long\def\uv#1{\clqq#1\crqq}
+\let\\=\undefined
+{\lccode`\?=`\% \lowercase{\gdef\percent{?}}}
+{\lccode`\?=`\\ \lowercase{\gdef\bslash{?}}}
+\def\,{\relax\ifmmode \mskip\thinmuskip \else \thinspace \fi}
+\addprotect\percent \addprotect\bslash \addprotect\, \addprotect\exfont
+
+\bgroup \catcode`!=3 \catcode`?=3
+\gdef\replacestrings#1#2{\long\def\replacestringsA##1#1{\def\tmpb{##1}\replacestringsB}%
+ \long\def\replacestringsB##1#1{\ifx!##1\relax \else\addto\tmpb{#2##1}%
+ \expandafter\replacestringsB\fi}% improved version <May 2016> inspired
+ \expandafter\replacestringsA\tmpb?#1!#1% from pysyntax.tex by Petr Krajnik
+ \long\def\replacestringsA##1?{\def\tmpb{##1}}\expandafter\replacestringsA\tmpb
+}
+\egroup
+
+%%%%%%%%%%%%%% Global parameters, sec. 3.2 in opmac-d.pdf
+
+\widowpenalty=10000
+\clubpenalty=10000
+\showboxdepth=7
+\showboxbreadth=30
+
+\newdimen\iindent \iindent=\parindent
+ % indentation of items, TOC, captions, list of bib. references
+\newdimen\ttindent \ttindent=\parindent
+ % indentation in \begtt...\endtt and \verbinput
+
+\def\ttskip{\medskip} % space above and below \begtt, \verbinput
+\mathchardef\ttpenalty=100 % penalty between lines in \begtt, \verbinput
+\def\tthook{} % hook in \begtt, \verbinput
+\def\intthook{} % hook in in-text verbatim
+\def\ptthook{} % hook in \begtt, \verbinput for post-processing
+
+\def\iiskip{\medskip} % space above and below \begitems...\enditems
+\def\itemhook{} % hook in \startitem
+\def\bibskip{\smallskip} % space between bibitems
+
+\def\tabstrut{\strut} % strut in the \table
+\def\tabiteml{\enspace} % left material before each \table item
+\def\tabitemr{\enspace} % right material after each \table item
+\def\vvkern{1pt} % space between vertical lines
+\def\hhkern{1pt} % space between horizontal lines
+
+\def\multiskip{\medskip} % space above and below \begmulti...\endmulti
+\newdimen\colsep \colsep=2em % space between columns
+
+\newdimen\mnoteindent \mnoteindent=10pt % ditance between mnote and text
+\newdimen\mnotesize \mnotesize=20mm % the width of the mnote paragraph
+
+\def\picdir{} % the directory with picture files
+\def\bibtexhook{} % hook in \usebibtex and \usebbl macros
+\def\chaphook{} % hook in \chap
+\def\sechook{} % hook in \sec
+\def\secchook{} % hook in \secc
+\def\cnvhook{} % hook before conversion of outlines
+\def\prepghook{} % hook before page building in \output routine
+\def\pghook{} % next hook in \output routine
+\def\toclinehook{} % hook in \tocline
+\def\fnotehook{} % hook in \fnote
+\def\mnotehook{} % hook in \mnote
+\def\captionhook#1{} % hook in \caption (#1 is "t" or "f")
+
+%%%%%%%%%%%%%% OPmac, CSplain and LaTeX logos, sec. 3.3 in opmac-d.pdf
+
+\def\OPmac{\leavevmode
+ \lower.2ex\hbox{\thefontscale[1400]O}\kern-.86em P{\em mac}}
+\def\CS{$\cal C$\kern-.1667em\lower.5ex\hbox{$\cal S$}}
+\def\csplain{\CS plain}
+
+\def\LaTeX{\tmpdim=.42ex L\kern-.36em \kern\slantcorr % slant correction
+ \raise\tmpdim\hbox{\thefontscale[710]A}%
+ \kern-.15em \kern-\slantcorr \TeX}
+\def\slantcorr{\expandafter\ignorept\the\fontdimen1\the\font\tmpdim}
+
+\addprotect\TeX \addprotect\OPmac \addprotect\CS \addprotect\LaTeX
+
+
+%%%%%%%%%%%%%% Sizes of fonts and \baselineskip, sec. 3.4 in opmac-d.pdf
+
+\ifx\regfont\undefined
+ \ifx\uselanguage\undefined % if this is etex.src, the following warning is suppressed
+ \opwarning{No multilanguage support (csplain is recommended)}
+ \fi
+ % macros from csplain, file csfontsm.tex:
+ \ifx\tenbi\undefined \font\tenbi=cmbxti10 \def\bi{\tenbi}\fi
+ \def\letfont#1#2{\ifx#2=\expandafter\letfont\expandafter#1\else
+ \expandafter\font\expandafter#1\expandafter\rfontskipat\fontname#2 \relax\space \fi}
+ \def\rfontskipat#1{\ifx#1"\expandafter\rfskipatX\else\expandafter\rfskipatN\expandafter#1\fi}
+ \def\rfskipatX #1" #2\relax{"\whichtfm{#1}"} \def\rfskipatN #1 #2\relax{\whichtfm{#1}}
+ \def\sizespec{} \def\whichtfm#1{#1}
+ \def\resizefont#1{\letfont#1#1\sizespec}
+ \def\regfont#1{\expandafter\def\expandafter\resizeall\expandafter{\resizeall \resizefont#1}}
+ \def\resizeall{}
+ \regfont\tenrm \regfont\tenit \regfont\tenbf \regfont\tenbi \regfont\tentt
+\fi
+
+\newdimen\ptunit \ptunit=1pt
+\newdimen\fontdim \fontdim=10pt
+
+\ifx\normalmath\undefined \input ams-math \fi % ams-math.tex is in csplain package
+
+{\lccode`\?=`\p \lccode`\!=`\t \lowercase{\gdef\ignorept#1?!{#1}}}
+
+\def\typosize[#1/#2]{\fontsizex[#1]\setbaselineskip[#2]\ignorespaces}
+\def\typoscale[#1/#2]{\fontscalex[#1]\scalebaselineskip[#2]\ignorespaces}
+
+\def\fontsizex[#1]{\if$#1$\else
+ \textfontsize[#1]%
+ \tmpdim=0.7\fontdim \edef\tmpa{\expandafter\ignorept\the\tmpdim}%
+ \tmpdim=0.5\fontdim \edef\tmpb{\expandafter\ignorept\the\tmpdim}%
+ \edef\tmp{\noexpand\setmathsizes[\expandafter\ignorept\the\fontdim/\tmpa/\tmpb]}%
+ \tmp \normalmath
+ \fi
+}
+\def\textfontsize[#1]{\if$#1$\else
+ \fontdim=#1\ptunit \ifx\fontdimB\undefined \edef\fontdimB{\the\fontdim}\fi
+ \let\dgsize=\fontdim
+ \edef\sizespec{at\the\fontdim}%
+ \resizeall \rm \let\dgsize=\undefined
+ \fi
+}
+\def\setbaselineskip[#1]{\if$#1$\else
+ \tmpdim=#1\ptunit
+ \baselineskip=\tmpdim \relax
+ \ifx\baselineskipB\undefined \edef\baselineskipB{\the\baselineskip}\fi
+ \bigskipamount=\tmpdim plus.33333\tmpdim minus.33333\tmpdim
+ \medskipamount=.5\tmpdim plus.16666\tmpdim minus.16666\tmpdim
+ \smallskipamount=.25\tmpdim plus.08333\tmpdim minus.08333\tmpdim
+ \normalbaselineskip=\tmpdim
+ \jot=.25\tmpdim
+ \maxdepth=.33333\tmpdim
+ \setbox\strutbox=\hbox{\vrule height.709\tmpdim depth.291\tmpdim width0pt}%
+ \fi
+}
+\def\withoutunit#1#2{\expandafter#1\expandafter[\expandafter\ignorept\the#2]}
+
+\def\fontscalex[#1]{\if$#1$\else \ifnum#1=1000 \else
+ \tmpdim=3277sp \tmpdim=#1\tmpdim \divide\tmpdim by50
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\fontsizex\tmpdim
+ \fi\fi
+}
+\def\textfontscale[#1]{\if$#1$\else
+ \tmpdim=#1pt \divide\tmpdim by1000
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\textfontsize\tmpdim
+ \fi
+}
+\def\scalebaselineskip[#1]{\if$#1$\else \ifnum#1=1000 \else
+ \tmpdim=3277sp \tmpdim=#1\tmpdim \divide\tmpdim by50
+ \tmpdim=\expandafter\ignorept\the\tmpdim \baselineskip
+ \withoutunit\setbaselineskip\tmpdim
+ \fi\fi
+}
+\def\thefontsize[#1]{\fontdim=#1\ptunit
+ \expandafter\let \expandafter\thefont \the\font
+ \edef\sizespec{at#1\ptunit}\def\dgsize{#1\ptunit}\resizefont\thefont
+ \thefont \let\dgsize=\undefined \ignorespaces
+}
+\def\thefontscale[#1]{%
+ \tmpdim=#1pt \divide\tmpdim by1000
+ \tmpdim=\expandafter\ignorept\the\tmpdim \fontdim
+ \withoutunit\thefontsize\tmpdim
+}
+\def\magstep#1{\ifcase#1 1000\or1200\or1440\or1728\or2074\or2488\fi\space}
+
+\def\typobase{\ifx\baselineskipB\undefined \def\baselineskipB{12pt}\fi
+ \ifx\fontdimB\undefined \def\fontdimB{10pt}\fi
+ \baselineskip=\baselineskipB\relax \fontdim=\fontdimB\relax
+}
+\def\em {\expandafter\ifx \the\font \tenit \additcorr \rm \else
+ \expandafter\ifx \the\font \tenbf \bi\aftergroup\afteritcorr\else
+ \expandafter\ifx \the\font \tenbi \additcorr \bf \else
+ \it \aftergroup\afteritcorr\fi\fi\fi}
+\def\additcorr{\ifdim\lastskip>0pt \skip0=\lastskip \unskip\/\hskip\skip0 \else\/\fi}
+\def\afteritcorr{\def\tmp{\ifx\next..\else\ifx\next,,\else\/%
+ \expandafter\expandafter\expandafter\next\expandafter\fi\fi}%
+ \afterassignment\tmp \let\next= }
+
+\addprotect\thefontsize \addprotect\thefontscale
+\addprotect\typosize \addprotect\typoscale
+\addprotect\textfontsize \addprotect\textfontscale
+\addprotect\em
+
+\def\fontfam{\par \input fontfam \fontfam}
+
+%%%%%%%%%%%%%% Multilingual support, sec. 3.5 in opmac-d.pdf
+
+\def\mtext#1{\csname mt:#1:\csname lan:\the\language\endcsname\endcsname}
+
+\sdef{mt:chap:en}{Chapter} \sdef{mt:chap:cs}{Kapitola} \sdef{mt:chap:sk}{Kapitola}
+\sdef{mt:t:en}{Table} \sdef{mt:t:cs}{Tabulka} \sdef{mt:t:sk}{Tabu\v lka}
+\sdef{mt:f:en}{Figure} \sdef{mt:f:cs}{Obr\'azek} \sdef{mt:f:sk}{Obr\'azok}
+
+\ifx\r\undefined \csname csaccents\endcsname \fi
+
+\sdef{lan:0}{en} \sdef{lan:100}{en} \sdef{lan:101}{en}
+\sdef{lan:5}{cs} \sdef{lan:15}{cs} \sdef{lan:115}{cs}
+\sdef{lan:6}{sk} \sdef{lan:16}{sk} \sdef{lan:116}{sk}
+
+\ifx\uselanguage\undefined \def\isolangset#1#2{}\else
+ \message{OPmac: etex.src macros detected}
+ \def\isolangset#1#2{{\uselanguage{#1}\sxdef{lan:\the\language}{#2}%
+ \global\expandafter\chardef\csname#2Patt\endcsname=\language}}
+ \isolangset{USenglish}{en} \isolangset{czech}{cs} \isolangset{slovak}{sk}
+\fi
+
+%%%%%%%%%%%%%% REF file, sec 3.6 in opmac-d.pdf
+
+\newwrite\reffile
+\newread\testin
+
+\def\wrefrelax#1#2{}
+\let\wref=\wrefrelax
+
+\def\inputref{
+ \openin\testin=\jobname.ref
+ \ifeof\testin \else
+ \closein\testin
+ \input \jobname.ref
+ \fnotenum=0 \mnotenum=0
+ \openrefA{\string\inputref}%
+ \fi
+}
+\def\openref{%
+ \ifx\wref\wrefrelax \openrefA{\string\openref}\fi
+ \gdef\openref{}%
+}
+\def\openrefA#1{%
+ \immediate\openout\reffile=\jobname.ref
+ \gdef\wref##1##2{\write\reffile{\string##1##2}}%
+ \immediate\write\reffile {\percent\percent\space OPmac - REF file (#1)}%
+ \immediate\wref\Xrefversion{{\REFversion}}%
+}
+\def\REFversion{2}
+\def\Xrefversion#1{\ifnum#1=\REFversion\relax \else \endinput \fi}
+
+%%%%%%%%%%%%%% \label, \ref, \pgref, sec. 3.7 in opmac-d.pdf
+
+\def\label[#1]{\isdefined{l0:#1}%
+ \iftrue \opwarning{duplicated label [#1], ignored}\else \xdef\lastlabel{#1}\fi
+ \ignorespaces}
+
+\def\wlabel#1{%
+ \ifx\lastlabel\undefined \else
+ \dest[ref:\lastlabel]%
+ {\protectlist\edef\tmp{\wref\Xlabel{{\lastlabel}{#1}}}\expandafter}\tmp
+ \sxdef{lab:\lastlabel}{#1}\sxdef{l0:\lastlabel}{}%
+ \global\let\lastlabel=\undefined
+ \fi
+}
+\def\ref[#1]{\isdefined{lab:#1}%
+ \iftrue \reflink[#1]{\csname lab:#1\endcsname}%
+ \else ??\opwarning{label [#1] unknown. Try to TeX me again}\openref
+ \fi
+}
+\def\pgref[#1]{\isdefined{pgref:#1}%
+ \iftrue \pglink{\csname pgref:#1\endcsname}%
+ \else ??\opwarning{pg-label [#1] unknown. Try to TeX me again}\openref
+ \fi
+}
+\def\Xlabel#1#2{\sdef{lab:#1}{#2}\sxdef{pgref:#1}{\the\lastpage}}
+
+%%%%%%%%%%%%%% Chapters, sections, subsections -- sec. 3.8 in opmac-d.pdf
+
+\def\printchap#1{\vfill\supereject
+ {\chapfont \noindent \mtext{chap} \dotocnum{\thetocnum}\par
+ \nobreak\smallskip\noindent #1\nbpar}\mark{}%
+ \nobreak \remskip\bigskipamount \firstnoindent
+}
+\def\printsec#1{\par \norempenalty-400 \bigskip
+ {\secfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}\insertmark{#1}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\def\printsecc#1{\par \norempenalty-200 \medskip
+ {\seccfont \noindent \dotocnum{\thetocnum\quad}#1\nbpar}%
+ \nobreak \remskip\medskipamount \firstnoindent
+}
+\eoldef\tit#1{\vglue4em
+ {\leftskip=0pt plus1fill \rightskip=\leftskip
+ \titfont \noindent #1\par}%
+ \nobreak\bigskip
+}
+\def\titfont{\typobase\typoscale[\magstep4/\magstep4]\bfshape}
+\def\chapfont{\typobase\typoscale[\magstep3/\magstep3]\bfshape}
+\def\secfont{\typobase\typoscale[\magstep2/\magstep2]\bfshape}
+\def\seccfont{\typobase\typoscale[\magstep1/\magstep1]\bfshape}
+\def\bfshape{\let\tenit=\tenbi \everymath\expandafter{\the\everymath\boldmath}\bf}
+
+\newcount\chapnum \newcount\secnum \newcount\seccnum \newcount\nonumnum
+\newif\ifnotoc \notocfalse \def\notoc{\global\notoctrue}
+\newif\ifnonum \nonumfalse \def\nonum{\global\nonumtrue}
+
+\eoldef\chap#1{\ifnonum\else \global\advance\chapnum by1 \fi
+ \chaphook {\globaldefs=1 \secnum=0 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax
+ \edef\thechapnum{\the\chapnum}\let\thetocnum=\thechapnum
+ \edef\thesecnum{\othe\chapnum.\the\secnum}%
+ \def\dotocnumafter{\wtotoc0\bfshape{#1}}%
+ \printchap{#1}\resetnonumnotoc
+}
+\eoldef\sec#1{\ifnonum\else \global\advance\secnum by1 \fi
+ \sechook {\globaldefs=1 \seccnum=0 \tnum=0 \fnum=0 \dnum=0}\relax
+ \edef\thesecnum{\othe\chapnum.\the\secnum}\let\thetocnum=\thesecnum
+ \def\dotocnumafter{\wtotoc1\rm{#1}}%
+ \printsec{#1}\resetnonumnotoc
+}
+\eoldef\secc#1{\ifnonum\else \global\advance\seccnum by1 \fi
+ \secchook {}\relax
+ \edef\theseccnum{\othe\chapnum.\the\secnum.\the\seccnum}\let\thetocnum=\theseccnum
+ \def\dotocnumafter{\wtotoc2\rm{#1}}%
+ \printsecc{#1}\resetnonumnotoc
+}
+\def\wtotoc#1#2#3{% #1 = level, #2 = info, #3 = titletext
+ \ifnotoc\else
+ \def\act{\wref{\Xtoc{#1}{\noexpand#2}}}%
+ \expandafter\act\expandafter{\expandafter{\thetocnum}{#3}{\the\pageno}}%
+ \fi
+}
+\def\wcontents#1#2{% #1 = sequence to REF, #2 = titletext
+ \ifnotoc\else
+ \expandafter\wref\expandafter#1\expandafter
+ {\expandafter{\thetocnum}{#2}{\the\pageno}}%
+ \fi
+}
+\def\dotocnum#1{%
+ \leavevmode
+ {\ifnonum \global\advance\nonumnum by1 \edef\thetocnum{!\the\nonumnum}\fi
+ \wlabel\thetocnum \dest[toc:\tocilabel.\thetocnum]%
+ \dotocnumafter}\ifnonum\else#1\fi
+ \global\let\dotocnumafter=\relax
+}
+\def\resetnonumnotoc{\global\notocfalse \global\nonumfalse
+ \ifx\dotocnumafter\relax \else
+ \opwarning{\noexpand\dotocnum unused in printchap/printsec/printsecc}\fi
+}
+\def\insertmark#1{\toks0={#1}\mark{{\ifnonum\else\thetocnum\fi} {\the\toks0}}}
+
+\newskip\remskipamount
+\def\remskip{\afterassignment\remskipA \global\remskipamount}
+\def\remskipA{\vskip\remskipamount \penalty11333 }
+\def\norempenalty{\ifnum\lastpenalty=11333
+ \vskip-\remskipamount \tmpnum=\else \removelastskip \penalty \fi}
+
+\def\othe#1.{\ifnum#1>0 \the#1.\fi}
+\def\thechapnum{} \def\thesecnum{} \def\theseccnum{}
+
+\def\afternoindent{\global\everypar={\wipeepar\setbox7=\lastbox}}
+\def\wipeepar{\global\everypar={}}
+\let\firstnoindent=\afternoindent
+\def\nbpar{{\interlinepenalty=10000\endgraf}}
+\def\nl{\hfil\break}
+
+%%%%%%%%%%%%%% Captions, equations -- sec. 3.9 in opmac-d.pdf
+
+\newcount\tnum \newcount\fnum \newcount\dnum
+
+\def\thetnum{\thesecnum.\the\tnum}
+\def\thefnum{\thesecnum.\the\fnum}
+\def\thednum{(\the\dnum)}
+
+\def\caption/#1 {\isdefined{#1num}%
+ \iftrue \global\advance \csname #1num\endcsname by1
+ \else \opwarning{Unknown caption /#1}%
+ \fi
+ \bgroup
+ \leftskip=\iindent plus1fil
+ \rightskip=\iindent plus-1fil
+ \parfillskip=0pt plus2fil
+ \def\par{\nbpar\egroup}%
+ \captionhook{#1}\noindent
+ \wlabel{\csname the#1num\endcsname}%
+ \printcaption{\mtext{#1}}{\csname the#1num\endcsname}%
+}
+\def\printcaption#1#2{{\bf#1 #2}\enspace}
+
+\expandafter\def\expandafter\endinsert\expandafter{\expandafter\par\endinsert}
+
+\def\eqmark{\global\advance\dnum by1
+ \ifinner\else\eqno \fi
+ \wlabel\thednum \thednum
+}
+
+%%%%%%%%%%%%%% Items -- sec. 3.10 in opmac-d.pdf
+
+\newcount\itemnum \itemnum=0
+
+\def\begitems{\par\iiskip\bgroup
+ \itemnum=0 \adef*{\startitem}
+ \advance\leftskip by\iindent
+ \let\printitem=\normalitem
+}
+\def\enditems{\par\egroup\iiskip}
+
+\def\startitem{\par \advance\itemnum by1
+ \itemhook \noindent\llap{\printitem}\ignorespaces}
+\def\normalitem{$\bullet$\enspace}
+
+\def\style#1{\expandafter\let\expandafter\printitem\csname item:#1\endcsname
+ \ifx\printitem\relax \let\printitem=\normalitem \fi
+}
+\sdef{item:o}{\raise.4ex\hbox{$\scriptscriptstyle\bullet$} }
+\sdef{item:-}{- }
+\sdef{item:n}{\the\itemnum. }
+\sdef{item:N}{\the\itemnum) }
+\sdef{item:i}{(\romannumeral\itemnum) }
+\sdef{item:I}{\uppercase\expandafter{\romannumeral\itemnum}\kern.5em}
+\sdef{item:a}{\athe\itemnum) }
+\sdef{item:A}{\uppercase\expandafter{\athe\itemnum}) }
+\sdef{item:x}{\raise.3ex\fullrectangle{.6ex} }
+\sdef{item:X}{\raise.2ex\fullrectangle{1ex}\kern.5em}
+
+\def\fullrectangle#1{\hbox{\vrule height#1 width#1}}
+
+\def\athe#1{\ifcase#1?\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or
+ m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else ?\fi
+}
+
+%%%%%%%%%%%%%% TOC -- sec. 3.11 in opmac-d.pdf
+
+\def\toclist{} \newif\ifischap \ischapfalse
+
+\def\Xtoc#1#2#3#4#5{\ifnum#1=0 \ischaptrue\fi \addto\toclist{\tocline{#1}{#2}{#3}{#4}{#5}}}
+\def\Xchap{\Xtoc0\bfshape} \def\Xsec{\Xtoc1\rm} \def\Xsecc{\Xtoc2\rm}
+
+\def\tocline#1#2#3#4#5{{\leftskip=#1\iindent \rightskip=2\iindent
+ \ifischap\advance\leftskip by\iindent\fi
+ \ifnum#1>1 \advance\leftskip by\iindent\fi
+ \toclinehook \noindent\llap{#2\toclink{#3}\enspace}%
+ {#2#4}\nobreak\tocdotfill\pglink{#5}\nobreak\hskip-2\iindent\null\par}}
+\def\tocdotfill{\leaders\hbox to.8em{\hss.\hss}\hskip 1em plus1fill\relax}
+
+\def\maketoc{\par \ifx\toclist\empty
+ \opwarning{\noexpand\maketoc -- data unavailable, TeX me again}\openref
+ \else \toclist \fi}
+
+\def\toclinkA#1{\def\tmp##1!##2\end{\if^##1^\kern.8em \else##1\fi}\tmp#1!\end}
+
+%%%%%%%%%%%%%% Index -- sec. 3.12 on opmac-d.pdf
+
+\def\iindex#1{\openref\wref\Xindex{{#1}{\the\pageno}}}
+
+\def\ii #1 {\leavevmode\def\tmp{#1}\iiA #1,,}
+
+\def\iiA #1,{\if$#1$\else\def\tmpa{#1}%
+ \ifx\tmpa\iiatsign \expandafter\iiB\tmp,,\else\iindex{#1}\fi
+ \expandafter\iiA\fi}
+\def\iiatsign{@}
+
+\def\iiB #1,{\if$#1$\else \iiC#1/\relax \expandafter\iiB\fi}
+\def\iiC #1/#2\relax{\if$#2$\else\iindex{#2#1}\fi}
+
+\def\iid #1 {\leavevmode\iindex{#1}#1\futurelet\tmp\iiD}
+\def\iiD{\ifx\tmp,\else\ifx\tmp.\else\space\fi\fi}
+
+\def\Xindex{\Xindexg,}
+\def\Xindexg#1#2#3{\bgroup \def~{ }% #1=prefix, #2=index-item, #3=pageno
+ \isdefined{#1#2}\iftrue
+ \ifx^#3^\else
+ \expandafter\firstdata \csname#1#2\endcsname \XindexA
+ \ifnum#3=\tmpa % \ii on the same page
+ \else
+ \tmpnum=#3 \advance\tmpnum by\pgfolioB-1
+ \expandafter\seconddata \csname#1#2\endcsname \XindexB
+ \ifx\tmp\empty
+ \sxdef{#1#2}{{#3/+}{\pgfolioA{#3}}} % previous item: empty page
+ \else
+ \if\tmpb+% state: the pagelist ends by a pagenumber
+ \ifnum\tmpnum=\tmpa % the consecutive page
+ \sxdef{#1#2}{{#3/-}{\tmp\iiendash}}
+ \else % the pages drop
+ \sxdef{#1#2}{{#3/+}{\tmp, \pgfolioA{#3}}}
+ \fi
+ \else % state: the pagelist ends by --
+ \ifnum\tmpnum=\tmpa % the consecutive page
+ \sxdef{#1#2}{{#3/-}{\tmp}}
+ \else % the pages drop
+ \sxdef{#1#2}{{#3/+}{\tmp\pgfolioA{\tmpa}, \pgfolioA{#3}}}
+ \fi\fi\fi\fi\fi
+ \else % first occurrence of the index item #2
+ \ifx^#3^\sxdef{#1#2}{{0/+}{}}\else \sxdef{#1#2}{{#3/+}{\pgfolioA{#3}}}\fi
+ \ifx,#1
+ \global \expandafter\addto \expandafter\iilist \csname#1#2\endcsname
+ \else
+ \isdefined{iilist:#1}\iftrue
+ \global\expandafter\addto \csname iilist:#1\expandafter\endcsname \csname#1#2\endcsname
+ \else \sxdef{iilist:#1}{\expandafter\noexpand \csname#1#2\endcsname}
+ \fi\fi\fi
+ \egroup
+}
+\def\iilist{} \def\iiendash{--}
+
+\def\firstdata#1#2{\expandafter\expandafter\expandafter #2\expandafter\firstdataA#1}
+\def\firstdataA#1#2{#1&}
+\def\seconddata#1#2{\expandafter\expandafter\expandafter #2\expandafter\seconddataA#1}
+\def\seconddataA#1#2{#2&}
+
+\def\XindexA#1/#2&{\def\tmpa{#1}\let\tmpb=#2}
+\def\XindexB#1&{\def\tmp{#1}}
+
+\def\pgfolioA#1{\ifnum#1<0 \romannumeral-\fi#1}
+\def\pgfolioB{\ifnum\tmpnum<0-\fi}
+
+\def\makeindex{\par
+ \ifx\iilist\empty \opwarning{index data-buffer is empty. TeX me again}
+ \else
+ \bgroup
+ \setprimarysorting
+ \def\act##1{\ifx##1\relax \else
+ \firstdata##1\XindexA \seconddata##1\XindexB
+ \if\tmpb+%
+ \preparesorting##1% converted item by sorting data in \tmpb
+ \xdef##1{{\tmpb}{\tmp}}
+ \else
+ \preparesorting##1% converted item by sorting data in \tmpb
+ \xdef##1{{\tmpb}{\tmp\pgfolioA{\tmpa}}}
+ \fi
+ \expandafter\act\fi}
+ \expandafter \act \iilist \relax
+ \egroup
+ \dosorting % sorting is in progress
+ \bgroup
+ \rightskip=0pt plus1fil \exhyphenpenalty=10000 \leftskip=\iindent
+ \def\act##1{\ifx##1\relax \else \prepii##1%
+ \seconddata##1\printiipages \expandafter\act \fi}
+ \expandafter \act \iilist \relax
+ \egroup
+ \fi
+}
+\def\printiipages#1&{ #1\par}
+
+\def\prepii #1{\isinlist \iispeclist #1\iftrue
+ \expandafter\expandafter\expandafter \printii \csname\string#1\endcsname&%
+ \else \expandafter\prepiiA\string #1&%
+ \fi
+}
+\def\prepiiA #1#2#3&{\printii#3&}
+
+\def\iis #1 #2{\bgroup \def~{ }%
+ \global\expandafter\addto\expandafter\iispeclist\csname,#1\endcsname
+ \global\sdef{\expandafter\string\csname,#1\endcsname}{#2}%
+ \egroup \ignorespaces
+}
+\def\iispeclist{}
+
+\def\printii #1&{\gdef\currii{#1}\noindent\everyii
+ \hskip-\iindent \ignorespaces\printiiA#1//}
+\def\printiiA #1/{\if^#1^\let\previi=\currii \else
+ \expandafter\scanprevii\previi/&\def\tmpb{#1}\edef\tmpb{\meaning\tmpb}%
+ \ifx\tmpa\tmpb \iiemdash \else#1 \gdef\previi{}\fi
+ \expandafter\printiiA\fi
+}
+\def\iiemdash{\kern.1em---\space}
+\def\everyii{}
+
+\def\scanprevii#1/#2&{\def\previi{#2}\def\tmpa{#1}\edef\tmpa{\meaning\tmpa}}
+\def\previi{} % previous index item
+
+%%%%%%%%%%%%%% Sorting -- sec. 3.13 in opmac-d.pdf
+
+\def\sortingdata{%
+ /,{ },-,&,@,%
+ aA\"a\"A\'a\'A,%
+ bB,%
+ cC,%
+ \v c\v C,%
+ dD\v d\v D,%
+ eE\'e\'E\v e\v E,%
+ fF,%
+ gG,%
+ hH,%
+ ^^T^^U^^V,% ch Ch CH
+ iI\'i\'I,%
+ jJ,%
+ kK,%
+ lL\'l\'L\v l\v L,%
+ mM,%
+ nN\v n\v N,%
+ oO\"o\"O\'o\'O\^o\^O,%
+ pP,%
+ qQ,%
+ rR\'r\'R,%
+ \v r\v R,%
+ sS,%
+ \v s\v S,%
+ tT\v t\v T,%
+ uU\"u\"U\'u\'U\r u\r U,%
+ vV,%
+ wW,%
+ xX,%
+ yY\'y\'Y,%
+ zZ,%
+ \v z\v Z,%
+ 0,1,2,3,4,5,6,7,8,9,'.%
+}
+\def\setignoredchars{\setlccodes ,.;.?.!.:.'.".|.(.).[.].<.>.=.+.{}{}}
+\def\specsortingdatacs {ch:^^T Ch:^^U CH:^^V}
+\def\specsortingdatask {ch:^^T Ch:^^U CH:^^V} % DZ etc. are sorted normally
+
+\def\setprimarysorting {%
+ \isdefined{sortingdata\csname lan:\the\language\endcsname}\iftrue
+ \expandafter \let\expandafter\sortingdata
+ \csname sortingdata\csname lan:\the\language\endcsname\endcsname
+ \xdef\sortingmessage{using \string\sortingdata\csname lan:\the\language\endcsname}%
+ \else
+ \xdef\sortingmessage{using internal \string\sortingdata}%
+ \ifx\r\undefined
+ \opwarning{\noexpand\csaccents is unused, falling back to ASCII sorting}%
+ \global\let\asciisorting=t%
+ \fi\fi
+ \ifx\asciisorting\undefined
+ \xdef\sortingdata{\sortingdata}% expand sorting data now
+ \isdefined{specsortingdata\csname lan:\the\language\endcsname}\iftrue
+ \xdef\specsortingdata{\csname specsortingdata\csname lan:\the\language\endcsname
+ \endcsname\space}%
+ \expandafter\setprimarysortingA \meaning\specsortingdata\relax
+ \else \gdef\specsortingdata{}\fi
+ \else
+ \gdef\sortingdata{.}\gdef\specsortingdata{}\gdef\sortingmessage{ASCII}%
+ \fi
+ \def\act##1{\ifx##1.\else
+ \ifx##1,\advance\tmpnum by1
+ \else \lccode`##1=\tmpnum \fi
+ \expandafter \act \fi}%
+ \tmpnum=60 \expandafter \act\sortingdata \setignoredchars
+}
+\def\setprimarysortingA#1->#2\relax{\gdef\specsortingdata{#2}}
+\def\sortingmessage{ASCII default}
+
+\def\setsecondarysorting {\def\act##1{\ifx##1.\else
+ \ifx##1,\else \advance\tmpnum by1 \lccode`##1=\tmpnum \fi
+ \expandafter \act \fi}%
+ \tmpnum=60 \expandafter \act\sortingdata \setignoredchars
+}
+
+\def\preparesorting#1{\expandafter\preparesortingA\string#1&}
+\gdef\preparesortingA#1#2#3&{\xdef\tmpb{#3}%
+ \expandafter\preparesortingB\specsortingdata.:{}
+ \lowercase\expandafter{\expandafter\gdef\expandafter\tmpb\expandafter{\tmpb}}%
+ \replacestrings{.}{}%
+}
+\def\preparesortingB#1#2:#3 {\ifx.#1\else \replacestrings{#1#2}{#3}\expandafter\preparesortingB\fi}
+
+\newif \ifAleB
+
+\def\isAleB #1#2{%
+ \edef\tmp{\firstdata#1\empty\relax\firstdata#2\empty\relax \noexpand#1\noexpand#2}%
+ \expandafter \testAleB \tmp
+}
+\def\testAleB #1#2\relax #3#4\relax #5#6{%
+ \if #1#3\if #1&\testAleBsecondary #5#6%
+ \else \testAleB #2\relax #4\relax #5#6%
+ \fi
+ \else \ifnum `#1<`#3 \AleBtrue \else \AleBfalse \fi
+ \fi
+}
+\def\testAleBsecondary#1#2{%
+ \bgroup
+ \setsecondarysorting
+ \preparesorting#1\let\tmpa=\tmpb \preparesorting#2%
+ \edef\tmp{\tmpa0\relax\tmpb1\relax}%
+ \expandafter\testAleBsecondaryX \tmp
+ \egroup
+}
+\def\testAleBsecondaryX #1#2\relax #3#4\relax {%
+ \if #1#3\testAleBsecondaryX #2\relax #4\relax
+ \else \ifnum `#1<`#3 \global\AleBtrue \else \global \AleBfalse \fi
+ \fi
+}
+\def\dosorting{%
+ \message{Opmac: Sorting index (\sortingmessage)...}%
+ \def\act##1{\ifx##1\relax\else \addto\iilist{##1,}%
+ \expandafter\act\fi}%
+ \edef\iilist{\expandafter}\expandafter\act \iilist\relax
+ \edef\iilist{\expandafter}\expandafter\mergesort \iilist \end,\end
+}
+
+\def\mergesort #1#2,#3{% by Miroslav Olsak
+ \ifx,#1% % prazdna-skupina,neco, (#2=neco #3=pokracovani)
+ \addto\iilist{#2,}% % dvojice skupin vyresena
+ \sortreturn{\fif\mergesort#3}% % \mergesort pokracovani
+ \fi
+ \ifx,#3% % neco,prazna-skupina, (#1#2=neco #3=,)
+ \addto\iilist{#1#2,}% % dvojice skupin vyresena
+ \sortreturn{\fif\mergesort}% % \mergesort dalsi
+ \fi
+ \ifx\end#3% % neco,konec (#1#2=neco)
+ \ifx\empty\iilist % neco=kompletni setrideny seznam
+ \def\iilist{#1#2}%
+ \sortreturn{\fif\fif\gobbletoend}% % koncim
+ \else % neco=posledni skupina nebo \end
+ \sortreturn{\fif\fif % spojim \indexbuffer+necoa cele znova
+ \edef\iilist{\expandafter}\expandafter\mergesort\iilist#1#2,#3}%
+ \fi\fi % zatriduji: p1+neco1,p2+neco2, (#1#2=p1+neco1 #3=p2)
+ \isAleB #1#3\ifAleB % p1<p2
+ \addto\iilist{#1}% % p1 do bufferu
+ \sortreturn{\fif\mergesort#2,#3}% % \mergesort neco1,p2+neco2,
+ \else % p1>p2
+ \addto\iilist{#3}% % p2 do bufferu
+ \sortreturn{\fif\mergesort#1#2,}% % \mergesort p1+neco1,neco2,
+ \fi
+ \relax % zarazka, na ktere se zastavi \sortreturn
+}
+\def\sortreturn#1#2\fi\relax{#1} \def\fif{\fi}
+\def\gobbletoend #1\end{}
+
+%%%%%%%%%%%%%% \begmulti ... \endmulti TBN p. 244, 245 -- sec. 3.14 in opmac-d.pdf
+
+\newcount\mullines
+\def\corrsize #1{%% #1 := #1 + \splittopskip - \topskip
+ \advance #1 by \splittopskip \advance #1 by-\topskip
+}
+\def\begmulti #1 {\par\bgroup\wipeepar\multiskip\penalty0 \def\Ncols{#1}
+ \setbox6=\vbox\bgroup\penalty0
+ %% \hsize := Sirka sloupce = (\hsize+\colsep) / n - \colsep
+ \advance\hsize by\colsep
+ \divide\hsize by\Ncols \advance\hsize by-\colsep
+ \mullines=0
+ \def\par{\ifhmode\endgraf\global\advance\mullines by\prevgraf\fi}%
+}
+\def\endmulti{\vskip-\prevdepth\vfil
+ \expandafter\egroup\expandafter\baselineskip\the\baselineskip\relax
+ \dimen0=.8\maxdimen \tmpnum=\dimen0 \divide\tmpnum by\baselineskip
+ \splittopskip=\baselineskip
+ \setbox1=\vsplit6 to0pt
+ %% \dimen1 := the free space on the page
+ \ifdim\pagegoal=\maxdimen \dimen1=\vsize \corrsize{\dimen1}
+ \else \dimen1=\pagegoal \advance\dimen1 by-\pagetotal \fi
+ \ifdim \dimen1<2\baselineskip
+ \vfil\break \dimen1=\vsize \corrsize{\dimen1} \fi
+ \ifnum\mullines<\tmpnum \dimen0=\ht6 \else \dimen0=.8\maxdimen \fi
+ \divide\dimen0 by\Ncols \relax
+ %% split the material to more pages?
+ \ifdim \dimen0>\dimen1 \splitpart
+ \else \balancecolumns \fi % only balancing
+ \multiskip\egroup
+}
+\def\makecolumns{\bgroup % full page, destination height: \dimen1
+ \vbadness=20000 \setbox1=\hbox{}\tmpnum=0
+ \loop \ifnum\Ncols>\tmpnum
+ \advance\tmpnum by1
+ \setbox1=\hbox{\unhbox1 \vsplit6 to\dimen1 \hss}
+ \repeat
+ \hbox{}\nobreak\vskip-\splittopskip \nointerlineskip
+ \line{\unhbox1\unskip}
+ \dimen0=\dimen1 \divide\dimen0 by\baselineskip \multiply\dimen0 by\Ncols
+ \global\advance\mullines by-\dimen0
+ \egroup
+}
+\def\splitpart{%
+ \makecolumns % full page
+ \vskip 0pt plus 1fil minus\baselineskip \break
+ \ifnum\mullines<\tmpnum \dimen0=\ht6 \else \dimen0=.8\maxdimen \fi
+ \divide\dimen0 by\Ncols \relax
+ \ifx\balancecolumns\flushcolumns \advance\dimen0 by-.5\vsize \fi
+ \dimen1=\vsize \corrsize{\dimen1}\dimen2=\dimen1
+ \advance\dimen2 by-\Ncols\baselineskip
+ %% split the material to more pages?
+ \ifvoid6 \else
+ \ifdim \dimen0>\dimen2 \expandafter\expandafter\expandafter \splitpart
+ \else \balancecolumns % last balancing
+ \fi \fi
+}
+\def\balancecolumns{\bgroup \setbox7=\copy6 % destination height: \dimen0
+ \ifdim\dimen0>\baselineskip \else \dimen0=\baselineskip \fi
+ \vbadness=20000
+ \def\tmp{%
+ \setbox1=\hbox{}\tmpnum=0
+ \loop \ifnum\Ncols>\tmpnum
+ \advance\tmpnum by1
+ \setbox1=\hbox{\unhbox1
+ \ifvoid6 \hbox to\wd6{\hss}\else \vsplit6 to\dimen0 \fi\hss}
+ \repeat
+ \ifvoid6 \else
+ \advance \dimen0 by.2\baselineskip
+ \setbox6=\copy7
+ \expandafter \tmp \fi}\tmp
+ \hbox{}\nobreak\vskip-\splittopskip \nointerlineskip
+ \hbox to\hsize{\unhbox1\unskip}%
+ \egroup
+}
+
+%%%%%%%%%%%%%% Colors -- sec. 3.15 in opmac-d.pdf
+
+\newif\iflocalcolor \localcolorfalse
+\let\localcolor=\localcolortrue
+
+% for backward compatibility:
+\let\longlocalcolor=\localcolor \let\locpgcolor=\relax
+\def\linecolor#1{}
+
+\def\Blue{\setcmykcolor{1 1 0 0}}
+\def\Red{\setcmykcolor{0 1 1 0}}
+\def\Brown{\setcmykcolor{0 0.67 0.67 0.5}}
+\def\Green{\setcmykcolor{1 0 1 0}}
+\def\Yellow{\setcmykcolor{0 0 1 0}}
+\def\Cyan{\setcmykcolor{1 0 0 0}}
+\def\Magenta{\setcmykcolor{0 1 0 0}}
+\def\White{\setcmykcolor{0 0 0 0}}
+\def\Grey{\setcmykcolor{0 0 0 0.5}}
+\def\LightGrey{\setcmykcolor{0 0 0 0.2}}
+\def\Black{\setcmykcolor{0 0 0 1}}
+
+\def\setcmykcolor#1{\global\let\ensureblacko=\ensureblackoA
+ \iflocalcolor \edef\currentcolor{#1}\colorstackpush\currentcolor \aftergroup\colorstackpop
+ \else \xdef\currentcolor{#1}\colorstackset\currentcolor \fi
+}
+\def\pdfblackcolor{0 0 0 1}
+\xdef\currentcolor{\pdfblackcolor}
+\def\ensureblacko#1{#1}
+\def\ensureblackoA#1{\colorstackpush\pdfblackcolor #1\colorstackpop}
+
+\ifx\pdfcolorstackinit\undefined
+ \def\colorstackpush#1{\pdfliteral{#1 k #1 K}}
+ \def\colorstackpop{\colorstackpush\currentcolor}
+ \let\colorstackset=\colorstackpush
+\else
+ \mathchardef\colorstackcnt=\pdfcolorstackinit page {0 g 0 G}
+ \def\colorstackpush#1{\pdfcolorstack\colorstackcnt push{#1 k #1 K}}
+ \def\colorstackpop{\pdfcolorstack\colorstackcnt pop}
+ \def\colorstackset#1{\pdfcolorstack\colorstackcnt set{#1 k #1 K}}
+\fi
+
+\addprotect\setcmykcolor \addprotect\localcolor \addprotect\longlocalcolor
+
+\ifpdftex\else
+ \def\setcmykcolor#1{} \def\pdfliteral#1{}
+\fi
+
+\def\draft{\addto\prepghook{\draftbox{\tenbf DRAFT}\nointerlineskip}}
+\def\draftbox#1{\vbox to0pt{\setbox0=\hbox{\typosize[10/]#1}%
+ \kern.5\vsize \kern4\wd0 \hbox to0pt{\kern.5\hsize \kern-2.5\wd0
+ \pdfsave \pdfrotate{55}\pdfscale{10}{10}%
+ \hbox to0pt{\localcolor\LightGrey \box0\hss}%
+ \pdfrestore
+ \hss}\vss}}
+
+\ifpdftex\else
+ \def\draft{\opwarning{\string\draft: Grey color is possible in pdfTeX only}}
+\fi
+
+%%%%%%%%%%%%%% Hyperrefs -- sec. 3.16 in opmac-d.pdf
+
+\def\destheight{1.4em}
+\def\destactive[#1:#2]{\if$#2$\else\ifvmode
+ \tmpdim=\prevdepth \prevdepth=-1000pt
+ \destbox[#1:#2]\prevdepth=\tmpdim
+ \else \destbox[#1:#2]%
+ \fi\fi
+}
+\def\destbox[#1]{\vbox to0pt{\kern-\destheight \pdfdest name{#1} xyz\vss}}
+\def\dest[#1]{}
+
+\def\linkactive[#1:#2]#3#4{\leavevmode\pdfstartlink height.9em depth.3em
+ \pdfborder{#1} goto name{#1:#2}\relax {#3#4}\pdfendlink
+}
+\def\link[#1]#2#3{\leavevmode{#3}}
+
+\def\urllink[#1:#2]#3{{\let~=\relax \let\\=\relax \let\{=\relax \let\}=\relax
+ \leavevmode\pdfstartlink height.9em depth.3em
+ \pdfborder{#1}user{/Subtype/Link/A <</Type/Action/S/URI/URI(#2)>>}\relax
+ {\def~{\nobreak\space}\urlcolor#3}\pdfendlink}%
+}
+\def\toclink#1{\toclinkA{#1}}
+\def\pglink#1{\leavevmode{\pgfolioA{#1}}}
+\def\citelink#1#2{\leavevmode{#2}}
+\def\reflink[#1]#2{\leavevmode{#2}}
+\def\ulink[#1]#2{\leavevmode{#2}}
+\def\urlcolor{}
+
+\def\hyperlinks#1#2{%
+ \let\dest=\destactive \let\link=\linkactive
+ \def\toclink##1{\link[toc:\tocilabel.##1]{\localcolor#1}{\toclinkA{##1}}}%
+ \def\pglink##1{\link[pg:\pgilabel.##1]{\localcolor#1}{\pgfolioA{##1}}}%
+ \def\citelink##1##2{\link[cite:##1]{\localcolor#1}{##2}}%
+ \def\reflink[##1]##2{\link[ref:##1]{\localcolor#1}{##2}}%
+ \def\ulink[##1]##2{\urllink[url:##1]{##2}}%
+ \def\urlcolor{\localcolor#2}%
+}
+\def\tocilabel{} \def\pgilabel{}
+
+\def\pdfborder#1{\if^#1^\else \isdefined{#1border}\iftrue
+ \if^\csname#1border\endcsname^\else attr{/C[\csname#1border\endcsname] /Border[0 0 .6]}\fi
+ \else attr{/Border[0 0 0]}\fi\fi
+}
+
+\ifpdftex \else
+ \def\link[#1]#2#3{#3}
+ \def\urllink[#1]#2{#2}
+ \def\hyperlinks#1#2{\opwarning{No pdfTeX detected, \noexpand\hyperlinks ignored}}
+\fi
+
+\def\url#1{{\def\tmpb{#1}%
+ \replacestrings{//}{{\urlskip\urlslashslash\urlbskip}}%
+ \replacestrings{/}{{\urlskip/\urlbskip}}%
+ \replacestrings{.}{{\urlskip.\urlbskip}}%
+ \replacestrings{?}{{\urlskip?\urlbskip}}%
+ \replacestrings{=}{{\urlskip=\urlbskip}}%
+ \replacestrings{~}{{\char`\~}}%
+ \replacestrings{_}{{\char`\_}}%
+ \replacestrings{^}{{\char`\^}}%
+ \replacestrings{\\}{\bslash}%
+ \replacestrings{\{}{{\char`\{}}%
+ \replacestrings{\}}{{\char`\}}}%
+ \replacestrings{&}{{\urlbskip\char`\& \urlskip}}%
+ \def\|{}\ulink[#1]{\urlfont\tmpb\null}%
+}}
+\def\urlfont{\tt \let\|=\urlspecchar}
+\def\urlspecchar{\penalty10 }
+\def\urlskip{\null\nobreak\hskip0pt plus0.05em\relax}
+\def\urlbskip{\penalty100 \hskip0pt plus0.05em\relax}
+\def\urlslashslash{/\urlskip/}
+\addprotect\url
+
+%%%%%%%%%%%%%% Outlines -- sec. 3.17 in opmac-d.pdf
+
+\def\outlines#1{\pdfcatalog{/PageMode/UseOutlines}\openref\ifx\toclist\empty
+ \opwarning{\noexpand\outlines -- data unavailable. TeX me again}%
+ \else
+ \ifx\urlcolor\empty
+ \opwarning{\noexpand\outlines doesn't work when \noexpand\hyperlinks isn't declared}\fi
+ {\let\tocline=\outlinesA
+ \count0=0 \count1=0 \toclist % calculate numbers o childs
+ \def\outlinelevel{#1}\let\tocline=\outlinesB
+ \count0=0 \count1=0 \toclist}% create outlines
+ \fi
+}
+\def\outlinesA#1#2#3#4#5{%
+ \advance\count#1 by1
+ \ifcase#1\or
+ \addoneol{ol:\the\count0}\or
+ \addoneol{ol:\the\count0:\the\count1}\fi
+}
+\def\addoneol#1{\isdefined{#1}%
+ \iftrue \tmpnum=\csname#1\endcsname\relax
+ \advance\tmpnum by1 \sxdef{#1}{\the\tmpnum}%
+ \else \sxdef{#1}{1}%
+ \fi
+}
+\def\outlinesB#1#2#3#4#5{%
+ \advance\count#1 by1
+ \ifcase#1\tmpnum=\isdefined{ol:\the\count0}%
+ \iftrue\csname ol:\the\count0\endcsname\else0\fi \or
+ \tmpnum=\isdefined{ol:\the\count0:\the\count1}%
+ \iftrue\csname ol:\the\count0:\the\count1\endcsname\else0\fi \or
+ \tmpnum = 0 \fi
+ \protectlist \def~{ }\setcnvcodesA
+ \ifx\toasciidata\empty \let\lowercase=\relax \else \expandafter\setlccodes\toasciidata{}{}\fi
+ \cnvhook \lowercase{\gdef\tmp{#4}}%
+ \outlinesC{#1}{toc:\tocilabel.#3}{\ifnum#1<\outlinelevel\space\else-\fi}{\tmpnum}{\tmp}%
+}
+\def\outlinesC#1#2#3#4#5{\pdfoutline goto name{#2} count #3#4{#5}\relax}
+
+\def\setcnvcodesA{\global\let\setcnvcodesA=\relax % I am working only once
+ \isdefined{toasciidata\csname lan:\the\language\endcsname}\iftrue
+ \xdef\toasciidata{\csname toasciidata\csname lan:\the\language\endcsname\endcsname}%
+ \else
+ \ifx\r\undefined
+ \gdef\toasciidata{}
+ \opwarning{\noexpand\csaccents unused, CZ/SK outline-conversion is off}%
+ \else
+ \xdef\toasciidata{\toasciidata}%
+ \fi\fi
+}
+\def\toasciidata{% Removes Czech+Slovak accents
+ AA\'AA\"AA\'aa\"aaBBCC\v CC\v ccDD\v DD\v ddEE\'EE\v EE\'ee\v ee%
+ FFGGHHII\'II\'iiJJKKLL\'LL\v LL\'ll\v llMMNN\v NN\v nnOO\'OO\"OO\^OO%
+ \'oo\"oo\^ooPPQQRR\v RR\v rrSS\v SS\v ssTT\v TT\v ttUU\'UU\"UU\r UU%
+ \'uu\"uu\r uuVVWWXXYY\'YY\'yyZZ\v ZZ\v zz%
+}
+\def\setlccodes#1#2{\if\relax#2\relax \else \lccode`#1=`#2 \expandafter \setlccodes \fi}
+
+\newcount\oulnum
+\def\insertoutline#1{\global\advance\oulnum by1
+ \pdfdest name{oul:\the\oulnum} xyz\relax
+ \pdfoutline goto name{oul:\the\oulnum} count0 {#1}\relax
+}
+
+\ifpdftex \else
+ \def\outlines#1{\opwarning{DVI output has no outlines}\gdef\outlines##1{}}
+ \let\insertoutline=\outlines
+\fi
+
+%%%%%%%%%%%%%% Verbatim, \begtt, \endtt -- sec. 3.18 in opmac-d.pdf
+
+\newcount\ttline \ttline=-1
+\newcount\viline
+\newread\vifile
+
+\def\setverb{\frenchspacing\def\do##1{\catcode`##1=12}\dospecials \catcode`\*=12 }
+\def\begtt{\par \vskip\parskip \ttskip \bgroup \wipeepar
+ \setverb \adef{ }{\ }%
+ \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi
+ \parindent=\ttindent \parskip=0pt
+ \tthook\relax
+ \ifnum\ttline<0 \else
+ \tenrm \thefontscale[700]\let\sevenrm=\thefont
+ \everypar\expandafter{\the\everypar \global\advance\ttline by1 \printttline}\fi
+ \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}%
+ \obeylines \startverb}
+{\catcode`\|=0 \catcode`\\=12
+|gdef|startverb#1\endtt{|tt|ptthook#1|egroup|par|ttskip|testparA}}
+\def\testparA{\expandafter\testparB\romannumeral-`\.}
+\def\testparB{\futurelet\tmpa\testparC}
+\def\testparC{\ifx\tmpa\par\else\afternoindent\fi}
+
+\def\printttline{\llap{\sevenrm\the\ttline\kern.9em}}
+
+\def\activettchar#1{%
+ \ifx\savedttchar\undefined\else \catcode\savedttchar=\savedttcharc \fi
+ \chardef\savedttchar=`#1%
+ \chardef\savedttcharc=\catcode`#1%
+ \bgroup\lccode`\~=`#1%
+ \lowercase {\egroup\def~}{\leavevmode\hbox\bgroup\setverb\adef{ }{\ }%
+ \intthook\tt\readverb}%
+ \bgroup\lccode`\~=`#1\lowercase{\egroup\def\readverb ##1~}{##1\egroup}%
+ \catcode`#1=13
+}
+
+\def\verbinput (#1) #2 {\par \def\tmpa{#2}%
+ \ifx\vifilename\tmpa \else
+ \openin\vifile=#2
+ \global\viline=0 \global\let\vifilename=\tmpa
+ \ifeof\vifile
+ \opwarning{\noexpand\verbinput - file "#2" is unable to reading}
+ \expandafter\expandafter\expandafter\skiptorelax
+ \fi
+ \fi
+ \viscanparameter #1+\relax
+}
+\def\skiptorelax#1\relax{}
+
+\def \viscanparameter #1+#2\relax{%
+ \if$#2$\viscanminus(#1)\else \viscanplus(#1+#2)\fi
+}
+\def\viscanplus(#1+#2+){%
+ \if$#1$\tmpnum=\viline
+ \else \ifnum#1<0 \tmpnum=\viline \advance\tmpnum by-#1
+ \else \tmpnum=#1
+ \advance\tmpnum by-1
+ \ifnum\tmpnum<0 \tmpnum=0 \fi % (0+13) = (1+13)
+ \fi \fi
+ \edef\vinolines{\the\tmpnum}%
+ \if$#2$\def\vidolines{0}\else\edef\vidolines{#2}\fi
+ \doverbinput
+}
+\def\viscanminus(#1-#2){%
+ \if$#1$\tmpnum=0
+ \else \tmpnum=#1 \advance\tmpnum by-1 \fi
+ \ifnum\tmpnum<0 \tmpnum=0 \fi % (0-13) = (1-13)
+ \edef\vinolines{\the\tmpnum}%
+ \if$#2$\tmpnum=0
+ \else \tmpnum=#2 \advance\tmpnum by-\vinolines \fi
+ \edef\vidolines{\the\tmpnum}%
+ \doverbinput
+}
+\def\doverbinput{%
+ \tmpnum=\vinolines
+ \advance\tmpnum by-\viline
+ \ifnum\tmpnum<0
+ \openin\vifile=\vifilename\space
+ \global\viline=0
+ \else
+ \edef\vinolines{\the\tmpnum}%
+ \fi
+ \vskip\parskip \ttskip \bgroup \wipeepar
+ \setverb \adef{ }{\ }%
+ \ifx\savedttchar\undefined \else \catcode\savedttchar=12 \fi
+ \parindent=\ttindent \parskip=0pt
+ \tthook\relax
+ \ifnum\ttline<-1 \else
+ \tenrm \thefontscale[700]\let\sevenrm=\thefont
+ \everypar\expandafter{\the\everypar \glob\advance\ttline by1 \printttline}\fi
+ \def\par##1{\endgraf\ifx##1\egroup\else\penalty\ttpenalty\leavevmode\fi ##1}%
+ \obeylines \tmpnum=0 \lccode`\~=`\^^M \lowercase{\def\tmpb{~}}%
+ \loop \ifeof\vifile \tmpnum=\vinolines\space \fi
+ \ifnum\tmpnum<\vinolines\space
+ \vireadline \advance\tmpnum by1 \repeat %% skip line
+ \ifnum\ttline=-1 \ttline=\viline \let\glob=\relax \else\let\glob=\global \fi
+ \tmpnum=0 \ifnum\vidolines=0 \tmpnum=-1 \fi
+ \ifeof\vifile \tmpnum=\vidolines\space \fi
+ \loop \ifnum\tmpnum<\vidolines\space
+ \vireadline
+ \ifeof\vifile \tmpnum=\vidolines\space \else \viprintline \fi %% print line
+ \ifnum\vidolines=0 \else\advance\tmpnum by1 \fi
+ \repeat
+ \tt\expandafter\ptthook\tmpb\egroup\par\ttskip\testparA
+}
+\def\vireadline{\read\vifile to \tmp \global\advance\viline by1 }
+\def\viprintline{\expandafter\addto\expandafter\tmpb\expandafter{\tmp}}
+
+%%%%%%%%%%%%%% \table -- sec. 3.19 in opmac-d.pdf
+
+\newtoks\tabdata
+\def\tabstrutA{\tabstrut}
+\newcount\colnum
+\def\ddlinedata{}
+\def\vvleft{}
+
+\def\table{\vbox\bgroup \catcode`\|=12 \tableA}
+\def\tableA#1#2{\offinterlineskip \colnum=0 \def\tmpa{}\tabdata={}\scantabdata#1\relax
+ \halign\expandafter{\the\tabdata\cr#2\crcr}\egroup}
+
+\def\scantabdata#1{\let\next=\scantabdata
+ \ifx\relax#1\let\next=\relax
+ \else\ifx|#1\addtabvrule
+ \else\isinlist{123456789}#1\iftrue \def\next{\scantabdataC#1}%
+ \else \expandafter\ifx\csname tabdeclare#1\endcsname \relax
+ \expandafter\ifx\csname paramtabdeclare#1\endcsname \relax
+ \opwarning{tab-declarator "#1" unknown, ignored}%
+ \else \def\next{\expandafter \scantabdataB \csname paramtabdeclare#1\endcsname}\fi
+ \else \def\next{\expandafter\scantabdataA \csname tabdeclare#1\endcsname}%
+ \fi\fi\fi\fi \next
+}
+\def\scantabdataA#1{\addtabitem \expandafter\addtabdata\expandafter{#1\tabstrutA}\scantabdata}
+\def\scantabdataB#1#2{\addtabitem\expandafter\addtabdata\expandafter{#1{#2}\tabstrutA}\scantabdata}
+\def\scantabdataC {\def\tmpb{}\afterassignment\scantabdataD \tmpnum=}
+\def\scantabdataD#1{\loop \ifnum\tmpnum>0 \advance\tmpnum by-1 \addto\tmpb{#1}\repeat
+ \expandafter\scantabdata\tmpb
+}
+\def\tabdeclarec{\tabiteml\hfil##\unsskip\hfil\tabitemr}
+\def\tabdeclarel{\tabiteml##\unsskip\hfil\tabitemr}
+\def\tabdeclarer{\tabiteml\hfil##\unsskip\tabitemr}
+\def\paramtabdeclarep#1{\tabiteml\vtop{\hsize=#1\relax \baselineskip=\normalbaselineskip
+ \lineskiplimit=0pt \noindent##\unsskip \vbox to0pt{\vss\hbox{\tabstrutA}}}\tabitemr}
+
+\def\unsskip{\ifdim\lastskip>0pt \unskip\fi}
+\def\addtabitem{\ifnum\colnum>0 \addtabdata{&}\addto\ddlinedata{&\dditem}\fi
+ \advance\colnum by1 \let\tmpa=\relax}
+\def\addtabdata#1{\tabdata\expandafter{\the\tabdata#1}}
+\def\addtabvrule{%
+ \ifx\tmpa\vrule \addtabdata{\kern\vvkern}%
+ \ifnum\colnum=0 \addto\vvleft{\vvitem}\else\addto\ddlinedata{\vvitem}\fi
+ \else \ifnum\colnum=0 \addto\vvleft{\vvitemA}\else\addto\ddlinedata{\vvitemA}\fi\fi
+ \let\tmpa=\vrule \addtabdata{\vrule}}
+
+\def\crl{\crcr\noalign{\hrule}}
+\def\crll{\crcr\noalign{\hrule\kern\hhkern\hrule}}
+
+\def\crli{\crcr \omit
+ \gdef\dditem{\omit\tablinefil}\gdef\vvitem{\kern\vvkern\vrule}\gdef\vvitemA{\vrule}%
+ \vvleft\tablinefil\ddlinedata\crcr}
+\def\crlli{\crli\noalign{\kern\hhkern}\crli}
+\def\tablinefil{\leaders\hrule\hfil}
+
+\def\crlp#1{\crcr \noalign{\kern-\drulewidth}%
+ \omit \xdef\crlplist{#1}\xdef\crlplist{,\expandafter}\expandafter\crlpA\crlplist,\end,%
+ \global\tmpnum=0 \gdef\dditem{\omit\crlpD}%
+ \gdef\vvitem{\kern\vvkern\kern\drulewidth}\gdef\vvitemA{\kern\drulewidth}%
+ \vvleft\crlpD\ddlinedata \global\tmpnum=0 \crcr}
+\def\crlpA#1,{\ifx\end#1\else \crlpB#1-\end,\expandafter\crlpA\fi}
+\def\crlpB#1#2-#3,{\ifx\end#3\xdef\crlplist{\crlplist#1#2,}\else\crlpC#1#2-#3,\fi}
+\def\crlpC#1-#2-#3,{\tmpnum=#1\relax
+ \loop \xdef\crlplist{\crlplist\the\tmpnum,}\ifnum\tmpnum<#2\advance\tmpnum by1 \repeat}
+\def\crlpD{\global\advance\tmpnum by1
+ \edef\tmpa{\noexpand\isinlist\noexpand\crlplist{,\the\tmpnum,}}%
+ \tmpa\iftrue \kern-\drulewidth \tablinefil \kern-\drulewidth\else\hfil \fi}
+
+\def\tskip{\afterassignment\tskipA \tmpdim}
+\def\tskipA{\gdef\dditem{}\gdef\vvitem{}\gdef\vvitemA{}\gdef\tabstrutA{}%
+ \vbox to\tmpdim{}\ddlinedata \crcr \noalign{\gdef\tabstrutA{\tabstrut}}}
+
+\def\mspan{\omit \tabdata={\tabstrut}\let\tmpa=\relax \afterassignment\mspanA \mscount=}
+\def\mspanA[#1]{\loop \ifnum\mscount>1 \csname span\endcsname \omit \advance\mscount by-1 \repeat
+ \mspanB#1\relax}
+\def\mspanB#1{\ifx\relax#1\def\tmpa{\def\tmpa####1}%
+ \expandafter\tmpa\expandafter{\the\tabdata\ignorespaces}\expandafter\tmpa\else
+ \ifx |#1\ifx\tmpa\vrule\addtabdata{\kern\vvkern}\fi \addtabdata{\vrule}\let\tmpa=\vrule
+ \else \let\tmpa=\relax
+ \ifx c#1\addtabdata{\tabiteml\hfil\ignorespaces##1\unsskip\hfil\tabitemr}\fi
+ \ifx l#1\addtabdata{\tabiteml\ignorespaces##1\unsskip\hfil\tabitemr}\fi
+ \ifx r#1\addtabdata{\tabiteml\hfil\ignorespaces##1\unsskip\tabitemr}\fi
+ \fi \expandafter\mspanB \fi}
+
+\newdimen\drulewidth \drulewidth=0.4pt
+\let\orihrule=\hrule \let\orivrule=\vrule
+\def\rulewidth{\afterassignment\rulewidthA \drulewidth}
+\def\rulewidthA{\edef\hrule{\orihrule height\the\drulewidth}%
+ \edef\vrule{\orivrule width\the\drulewidth}}
+
+\long\def\frame#1{%
+ \hbox{\vrule\vtop{\vbox{\hrule\kern\vvkern
+ \hbox{\kern\hhkern\relax#1\kern\hhkern}%
+ }\kern\vvkern\hrule}\vrule}}
+
+%%%%%%%%%%%%%% \inspic -- sec. 3.20 in opmac-d.pdf
+
+\newdimen\picwidth \picwidth=0pt \let\picw=\picwidth
+\newdimen\picheight \picheight=0pt
+
+\ifpdftex
+ \def\inspic #1 {\hbox{%
+ \pdfximage \ifdim\picwidth=0pt \else width\picwidth\fi
+ \ifdim\picheight=0pt \else height\picheight\fi \inspicpage {\picdir#1}%
+ \pdfrefximage\pdflastximage}}
+\else
+ \def\inspic #1 {\opwarning
+ {The \noexpand\inspic is supported for PDF output only}}
+\fi
+\def\inspicpage{}
+
+%%%%%%%%%%%%%%% transformation matrix -- sec. 3.21 in opmac-d.pdf
+
+\def\pdfscale#1#2{\pdfsetmatrix{#1 0 0 #2}}
+
+\def\pdfrotate#1{\tmpdim=#1pt
+ \ifdim\tmpdim=0pt
+ \else \ifdim\tmpdim=90pt \pdfsetmatrix{0 1 -1 0}%
+ \else \edef\tmp{#1}\expandafter\pdfrotateA\tmp..\relax
+ \fi \fi
+}
+\def\pdfrotateA #1.#2.#3\relax{%
+ \def\tmp##1.##2\relax {##1}%
+ \tmpnum=\expandafter \tmp \the\tmpdim \relax % round
+ \ifdim\tmpdim>0pt \def\tmpa{}\else\def\tmpa{-}\fi % save -
+ \loop \ifnum\tmpnum<0 \advance\tmpnum by360 \repeat
+ \loop \ifnum\tmpnum>360 \advance\tmpnum by-360 \repeat
+ \loop \ifnum\tmpnum>90 \pdfrotate{90}\advance\tmpnum by-90 \repeat
+ \ifnum\tmpnum=90 \pdfrotate{90}\else
+ \ifnum\tmpnum>44 \pdfsetmatrix{.7071 .7071 -.7071 .7071}%
+ \advance\tmpnum by-45 \fi
+ \ifnum\tmpnum>22 \pdfsetmatrix{.9272 .3746 -.3746 .9272}%
+ \advance\tmpnum by-22 \fi
+ \ifnum\tmpnum>0
+ \pdfsetmatrix{\smallcos \smallsin -\smallsin \smallcos}%
+ \fi\fi
+ \if$#2$\else % fraction part
+ \tmpdim=.01745329pt % \pi/180
+ \tmpdim=.#2\tmpdim %
+ \edef\tmp{\expandafter\ignorept\the\tmpdim\space}%
+ \ifx\tmpa\empty \pdfsetmatrix{1 \tmp -\tmp 1}%
+ \else \pdfsetmatrix{1 -\tmp \tmp 1}%
+ \fi\fi
+}
+\def\smallcos{.\ifcase\tmpnum \or9998\or9994\or9986\or9976\or9962\or9945\or
+ 9925\or9903\or9877\or9848\or9816\or9781\or9744\or9703\or9659\or9613\or
+ 9563\or9511\or9455\or9397\or9336\or9272\fi\space}
+\def\smallsin{.\ifcase\tmpnum 0\or0175\or0359\or0523\or0698\or0872\or1045\or
+ 1219\or1391\or1564\or1736\or1908\or2079\or2250\or2419\or2588\or2756\or
+ 2924\or309\or3256\or342\or3584\or3746\fi\space}
+
+\ifpdftex \else
+ \def\pdfsetmatrix#1{} \def\pdfsave{} \def\pdfrestore{}
+\fi
+
+%%%%%%%%%%%%%% \fnote, \mnote -- sec 3.22 in opmac-d.pdf
+
+\newcount\fnotenum \fnotenum=0
+\newcount\fnotenumlocal
+\newif\iflocfnum \locfnumtrue
+
+\long\def\fnote#1{\global\advance \fnotenum by1
+ \leavevmode\openref\wref\Xfnote{}%
+ \iflocfnum \isdefined{fn:\the\fnotenum}\iftrue
+ \else\opwarning{unknown \noexpand\fnote mark. TeX me again}\fi\fi
+ \fnmarkx{\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
+}
+\def\fnotemark#1{{\advance\fnotenum by#1\relax
+ \isdefined{fn:\the\fnotenum}\iftrue\thefnote
+ \else$^?$\opwarning{unknown \string\fnotemark. TeX me again}\fi}%
+}
+\long\def\fnotetext#1{\global\advance \fnotenum by1 \openref\wref\Xfnote{}%
+ {\everypar={}\fnotehook\typobase\typoscale[800/800]\vfootnote\fnmarkx{#1}}%
+}
+\def\fnmarkx{\isdefined{fn:\the\fnotenum}\iftrue\thefnote\else$^?$\fi}
+\def\thefnote{$^{\locfnum}$}
+\def\locfnum{\csname fn:\the\fnotenum\endcsname}
+
+\def\Xfnote{\advance\fnotenumlocal by1 \advance\fnotenum by1
+ \sxdef{fn:\the\fnotenum}{\the\fnotenumlocal}}
+
+\def\runningfnotes{\locfnumfalse\def\locfnum{\the\fnotenum}\def\fnmarkx{\thefnote}}
+
+\newcount\mnotenum \mnotenum=0 % global counter of mnotes
+\newdimen\mnoteskip \mnoteskip=0pt
+
+\long\def\mnote#1{\ifvmode \hbox{\vbox to\ht\strutbox{}\mnoteA{#1}}\nobreak\vskip-\baselineskip
+ \else \strut\vadjust{\kern-\dp\strutbox \mnoteA{#1}\kern\dp\strutbox}%
+ \fi
+}
+\long\def\mnoteA#1{\global\advance \mnotenum by1
+ \ifx\mnotesfixed\undefined
+ \isdefined{mn:\the\mnotenum}\iftrue
+ \else\opwarning{unknown \noexpand\mnote side. TeX me again}\fi
+ \edef\tmp{\csname mn:\the\mnotenum\endcsname}%
+ \openref\wref\Xmnote{}\ifvmode\nobreak\fi
+ \else \let\tmp=\mnotesfixed \fi
+ \expandafter\ifx\tmp \left
+ \hbox to0pt{\kern-\mnotesize \kern-\mnoteindent
+ \vbox to0pt{\vss \setbox0=\vtop{\hsize=\mnotesize
+ \leftskip=0pt plus 1fill \rightskip=0pt {\mnotehook\noindent#1\endgraf}}%
+ \dp0=0pt \box0 \kern\mnoteskip \global\mnoteskip=0pt}\hss}%
+ \else
+ \hbox to0pt{\kern\hsize \kern\mnoteindent
+ \vbox to0pt{\vss \setbox0=\vtop{\hsize=\mnotesize
+ \rightskip=0pt plus 1fil \leftskip=0pt {\mnotehook\noindent#1\endgraf}}%
+ \dp0=0pt \box0 \kern\mnoteskip \global\mnoteskip=0pt}\hss}%
+ \fi
+}
+\def\Xmnote{\advance\mnotenum by1
+ \sxdef{mn:\the\mnotenum}{\ifodd\lastpage \right \else \left \fi}}
+
+\def\fixmnotes#1{\def\mnotesfixed{#1}}
+
+%%%%%%%%%%%%%% \cite, \bib, \usebibtex, \usebbl -- sec. 3.23 in opmac-d.pdf
+
+\newwrite\auxfile % AUX file for BibTeX
+\newcount\bibnum % the bibitem counter
+\newtoks\bibmark % the bibmark used if \nonumcitations
+\newcount\lastcitenum \lastcitenum=0 % for \shortcitations
+
+\def\cite[#1]{{\citeA#1,,,[\printsavedcites]}}
+\def\nocite[#1]{{\citeA#1,,,}}
+\def\rcite[#1]{{\citeA#1,,,\printsavedcites}}
+\def\savedcites{}
+
+\def\citeA #1#2,{\if#1,\else
+ \if *#1\addcitelist{*}\expandafter \skiptorelax \fi
+ \isdefined{bib:#1#2}\iftrue \else
+ \addcitelist{#1#2}%
+ \opwarning{The cite [#1#2] unknown. Try to TeX me again}\openref
+ \addto\savedcites{?,}\def\sortcitesA{}\lastcitenum=0
+ \expandafter\gdef\csname bib:#1#2\endcsname {}%
+ \expandafter \skiptorelax \fi
+ \expandafter \ifx \csname bib:#1#2\endcsname \empty
+ \addto\savedcites{?,}\def\sortcitesA{}\lastcitenum=0
+ \expandafter \skiptorelax \fi
+ \def\bibnn##1{}%
+ \if &\csname bib:#1#2\endcsname
+ \addcitelist{#1#2}%
+ \def\bibnn##1##2{##1}%
+ \sxdef{bib:#1#2}{\csname bib:#1#2\endcsname}%
+ \fi
+ \edef\savedcites{\savedcites \csname bib:#1#2\endcsname,}%
+ \relax
+ \expandafter\citeA\fi
+}
+\def\printsavedcites{\sortcitesA
+ \chardef\tmpb=0 \expandafter\citeB\savedcites,%
+ \ifnum\tmpb>0 \printdashcite{\the\tmpb}\fi
+}
+\def\sortcitesA{}
+\def\sortcitations{%
+ \def\sortcitesA{\edef\savedcites{300000,\expandafter}\expandafter\sortcitesB\savedcites,%
+ \def\tmpa####1300000,{\def\savedcites{####1}}\expandafter\tmpa\savedcites}%
+}
+\def\sortcitesB #1,{\if $#1$%
+ \else
+ \mathchardef\tmpa=#1
+ \edef\savedcites{\expandafter}\expandafter\sortcitesC \savedcites\end
+ \expandafter\sortcitesB
+ \fi
+}
+\def\sortcitesC#1,{\ifnum\tmpa<#1\edef\tmpa{\the\tmpa,#1}\expandafter\sortcitesD
+ \else\edef\savedcites{\savedcites#1,}\expandafter\sortcitesC\fi}
+\def\sortcitesD#1\end{\edef\savedcites{\savedcites\tmpa,#1}}
+
+\def\citeB#1,{\if$#1$\else
+ \if?#1\relax??%
+ \else
+ \ifnum\lastcitenum=0 % only comma separated list
+ \printcite{#1}%
+ \else
+ \ifx\citesep\empty % first cite item
+ \lastcitenum=#1\relax
+ \printcite{#1}%
+ \else % next cite item
+ \advance\lastcitenum by1
+ \ifnum\lastcitenum=#1\relax % cosecutive cite item
+ \mathchardef\tmpb=\lastcitenum
+ \else % there is a gap between cite items
+ \lastcitenum=#1\relax
+ \ifnum\tmpb=0 % previous items were printed
+ \printcite{#1}%
+ \else
+ \printdashcite{\the\tmpb}\printcite{#1}\chardef\tmpb=0
+ \fi\fi\fi\fi\fi
+ \expandafter\citeB\fi
+}
+\def\shortcitations{\lastcitenum=1 }
+
+\def\printcite#1{\citesep\citelink{#1}{\citelinkA{#1}}\def\citesep{,\hskip.2em\relax}}
+\def\printdashcite#1{\ifmmode-\else\hbox{--}\fi\citelink{#1}{\citelinkA{#1}}}
+\def\citesep{}
+
+\def\nonumcitations{\lastcitenum=0\def\sortcitesA{}\def\etalchar##1{$^{##1}$}%
+ \def\citelinkA##1{\isdefined{bim:##1}\iftrue \csname bim:##1\endcsname
+ \else ##1\opwarning{\noexpand\nonumcitations + empty bibmark. Maybe bad BibTeX style}\fi}
+}
+\def\citelinkA{}
+
+\def\ecite[#1]{\bgroup\citeA#1,,,\expandafter\eciteB\savedcites;}
+\def\eciteB#1,#2;#3{\if?#1\relax #3\else \citelink{#1}{#3}\fi\egroup}
+
+\def\bib[#1]{\def\tmp{\isnextchar={\bibA[#1]}{\bibmark={}\bibB[#1]}}%
+ \expandafter\tmp\romannumeral-`\.} % ignore optional space
+\def\bibA[#1]=#2{\bibmark={#2}\bibB[#1]}
+\def\bibB[#1]{\par \ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \def\tmpb{#1}\wbib{#1}{\the\bibnum}{\the\bibmark}%
+ \printbib \ignorespaces
+}
+\def\wbib#1#2#3{\dest[cite:\the\bibnum]%
+ \ifx\wref\wrefrelax\else \immediate\wref\Xbib{{#1}{#2}{#3}}\fi}
+
+\def\Xbib#1#2#3{\sdef{bib:#1}{\bibnn{#2}&}\if^#3^\else\sdef{bim:#2}{#3}\fi\def\lastbibnum{#2}}
+
+\def\printbib{\hangindent=\iindent
+ \ifx\citelinkA\empty \noindent\hskip\iindent \llap{[\the\bibnum] }%
+ \else \noindent \fi
+}
+
+\def\addcitelist#1{\global\addto\citelist{\citeI[#1]}}
+\def\writeaux#1{\immediate\write\auxfile{\string\citation{#1}}}
+\def\writeXcite#1{\openref\immediate\wref\Xcite{{#1}}}
+\def\citelist{} \def\citelistB{}
+
+\def\usebibtex#1#2{%
+ \openref \openauxfile{#1}{#2}%
+ \def\citeI[##1]{\writeaux{##1}}\citelist
+ \global\let\addcitelist=\writeaux
+ \bgroup \readbblfile{\jobname}\egroup
+}
+\def\openauxfile#1#2{%
+ \immediate\openout\auxfile=\jobname.aux
+ \immediate\write\auxfile
+ {\percent\percent\space Opmac: AUX file reserved for bibtex only}%
+ \immediate\write\auxfile{\string\bibdata{#1}}%
+ \immediate\write\auxfile{\string\bibstyle{#2}}%
+}
+\def\readbblfile #1{%
+ \openin\testin=#1.bbl
+ \ifeof\testin
+ \opwarning{The `#1.bbl' file doesn't exist. Use `bibtex'..}%
+ \else
+ \closein\testin
+ \bibnum=0
+ \long\def\begin##1\bibitem{\bibitem}\def\end##1{}% LaTeX environment
+ \def\httpAddr##1{\url{http:##1}}\def\\{\hfill\break}%
+ \def\newblock{\hskip .11em plus.33em minus.07em}%
+ \def\mbox{\leavevmode\hbox}\def\emph##1{{\it##1}}%
+ \parindent=\iindent \bibtexhook\relax
+ \input #1.bbl
+ \par
+ \fi
+}
+\def\bibitem{\isnextchar[{\bibitemB}{\bibmark={}\bibitemC}}
+\def\bibitemB[#1]{\bibmark={#1}\bibitemC}
+\def\bibitemC#1{\bibitemD{#1}}
+\def\bibitemD#1{\par\ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \def\tmpb{#1}\wbib{#1}{\the\bibnum}{\the\bibmark}%
+ \printbib \ignorespaces
+}
+\def\genbbl#1#2{\openauxfile{#1}{#2}%
+ \immediate\write\auxfile{\string\citation{*}}%
+ \bgroup
+ \iindent=4em
+ \def\bibitemC##1{\par\ifnum\bibnum>0 \bibskip \fi
+ \advance\bibnum by1
+ \noindent \hangindent=\parindent
+ \indent \llap{[##1]\enspace}\ignorespaces
+ }%
+ \readbblfile{\jobname}%
+ \egroup
+}
+\def\usebbl/#1 #2 {\isdefined{bbl:#1}%
+ \iftrue \csname bbl:#1\endcsname {#2}\else
+ \opwarning{\string\usebbl/#1 #2 ... the `#1' type undefined}%
+ \fi
+}
+\sdef{bbl:a}#1{\bgroup \readbblfile{#1}\egroup}
+
+\sdef{bbl:b}#1{\bgroup
+ \let\citeI=\relax \xdef\citelist{\citelist\citelistB}%
+ \def\bibitemC##1 ##2\par{%
+ \isinlist\citelist{[##1]}\iftrue \bibitemD{##1}##2\par\fi}%
+ \readbblfile{#1}%
+ \global\let\addcitelist=\writeXcite
+ \egroup
+}
+\sdef{bbl:c}#1{\bgroup
+ \ifx\citelinkA\empty \else
+ \opwarning{\string\nonumcitations: don't use \string\usebbl/c}\fi
+ \let\citeI=\relax \xdef\citelist{\citelist\citelistB}%
+ \def\bibitemC##1 ##2\par{%
+ \isinlist\citelist{[##1]}\iftrue
+ \if^\the\bibmark^\sdef{bb:##1}{\bibitemD{##1}##2\par}%
+ \else \toks0={##2\par}%
+ \edef\tmpa{\noexpand\sdef{bb:##1}{% \the\bibmark have to expand
+ \noexpand\bibitemB[\the\bibmark]{##1}\the\toks0}}\tmpa
+ \fi\fi}%
+ \readbblfile{#1}%
+ \def\bibitemC##1{\bibitemD{##1}}%
+ \def\citeI[##1]{\csname bb:##1\endcsname}\citelist
+ \global\let\addcitelist=\writeXcite
+ \egroup
+}
+\def\Xcite#1{\addto\citelistB{\citeI[#1]}}
+
+\def\usebib{\par \input opmac-bib \usebib}
+
+%%%%%%%%%%%%%% output -- sec. 3.24 in opmac-d.pdf
+
+\output={\begoutput \opmacoutput \endoutput}
+\def\begoutput{%
+ \immediate\wref\Xpage{{\the\pageno}}%
+ \def\nl{ }\def\fnote##1{}\def\fnotemark##1{}%
+ \prephoffset
+}
+\def\endoutput{} \def\prephoffset{}
+
+\def\opmacoutput{%
+ \setbox0=\vbox{\prepghook\ensureblacko{\makeheadline}\pagebody\ensureblacko{\makefootline}}%
+ \pghook \protectlist
+ \shipout\box0 \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+\def\doprotect#1{\let#1=\relax}
+\def\prepage{\def\destheight{25pt}\dest[pg:\pgilabel.\the\pageno]}
+\def\preboxcclv{} \def\postboxcclv{}
+
+{\catcode`\@=11
+\gdef\pagecontents{\prepage % dest of pageno
+ \ifvoid\topins\else\ensureblacko{\unvbox\topins}\fi
+ \preboxcclv
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \postboxcclv
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \ensureblacko{\footnoterule \unvbox\footins}\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi
+}}
+
+\footline={\hss\tenrm\thefontsize[10]\folio\hss}
+
+\newcount\lastpage \lastpage=0 % the last page of the document
+\def\Xpage#1{\lastpage=#1 \fnotenumlocal=0 }
+
+%%%%%%%%%%%%%% margins -- sec. 3.25 in opmac-d.pdf
+
+\newdimen\pgwidth \newdimen\pgheight \pgwidth=0pt
+\newdimen\shiftoffset
+
+\def\margins/#1 #2 (#3,#4,#5,#6)#7 {\def\tmp{#7}%
+ \ifx\tmp\empty
+ \opwarning{\string\margins: missing unit, mm inserted}\def\tmp{mm}\fi
+ \addto\tmp{\relax}%
+ \setpagedimens #2 % setting \pgwidth, \pgheight
+ \ifdim\pgwidth=0pt \else
+ \hoffset=-1\trueunit in \voffset=-1\trueunit in
+ \if$#3$\if$#4$\tmpdim=\pgwidth \advance\tmpdim -\hsize
+ \divide\tmpdim by2 \advance\hoffset \tmpdim % left=right
+ \else \rbmargin\hoffset\hsize{#4\tmp}% only right margin
+ \fi
+ \else \if$#4$\advance\hoffset #3\tmp % only left margin
+ \else \hsize=\pgwidth % left+right margin
+ \advance\hsize -#3\tmp \advance\hsize -#4\tmp
+ \advance\hoffset #3\tmp
+ \fi\fi
+ \if$#5$\if$#6$\tmpdim=\pgheight \advance\tmpdim -\vsize
+ \divide\tmpdim by2 \advance\voffset \tmpdim % top=bottom
+ \else \rbmargin\voffset\vsize{#6\tmp}% only bottom margin
+ \fi
+ \else \if$#6$\advance\voffset #5\tmp % only top margin
+ \else \vsize=\pgheight % top+bottom margin
+ \advance\vsize -#5\tmp \advance\vsize -#6\tmp
+ \advance\voffset #5\tmp
+ \fi\fi
+ \if 1#1\shiftoffset=0pt \def\prephoffset{}\else \if 2#1% double-page layout
+ \shiftoffset=\pgwidth \advance\shiftoffset -\hsize
+ \advance\shiftoffset -2\hoffset \advance\shiftoffset -2in
+ \def\prephoffset{\ifodd\pageno \else \advance\hoffset \shiftoffset \fi}%
+ \else \opwarning{use \string\margins/1 or \string\margins/2}%
+ \fi\fi\fi
+}
+\def\rbmargin#1#2#3{\advance#1\pgwidth \advance#1-#2 \advance#1-#3}
+
+\def\setpagedimens{\isnextchar({\setpagedimensB}{\setpagedimensA}}
+\def\setpagedimensA#1 {\isdefined{pgs:#1}\iftrue
+ \expandafter\expandafter\expandafter\setpagedimensB \csname pgs:#1\expandafter\endcsname\space
+ \else \opwarning{page specification "#1" is undefined}\fi}
+\def\setpagedimensB (#1,#2)#3 {\setpagedimensC\pgwidth=#1:#3 \setpagedimensC\pgheight=#2:#3
+ \ifx\pdfpagewidth\undefined \else
+ \pdfpagewidth=\pgwidth \pdfpageheight=\pgheight \fi}
+\def\setpagedimensC #1=#2:#3 {#1=#2\ifx^#3^\tmp\else#3\fi\relax\truedimen#1}
+
+\sdef{pgs:a3}{(297,420)mm} \sdef{pgs:a4}{(210,297)mm} \sdef{pgs:a5}{(148,210)mm}
+\sdef{pgs:a3l}{(420,297)mm} \sdef{pgs:a4l}{(297,210)mm} \sdef{pgs:a5l}{(210,148)mm}
+\sdef{pgs:b5}{(176,250)mm} \sdef{pgs:letter}{(8.5,11)in}
+
+\def\trueunit{}
+\def\magscale[#1]{\mag=#1\def\trueunit{true}%
+ \ifdim\pgwidth=0pt \else \truedimen\pgwidth \truedimen\pgheight \fi
+ \ifx\pdfpagewidth\undefined \else
+ \truedimen\pdfpagewidth \truedimen\pdfpageheight
+ \ifx\pdfhorigin\undefined\else
+ \pdfhorigin=1truein \pdfvorigin=1truein % Origin is independent off \mag
+ \fi\fi}
+\def\truedimen#1{\ifx\trueunit\empty \else#1=\expandafter\ignorept\the#1truept \fi}
+
+%%%%%%%%%%%%%% XeTeX specific + REF file is read now -- sec 3.26 in opmac-d.pdf
+
+\ifx\XeTeXversion\undefined \else \pdftexfalse \input opmac-xetex \fi
+\ifx\pdfextension\undefined \else \input opmac-luatex \fi
+\inputref
+\endinput
+
+%%%%%%%%%%%%%% History of versions:
+
+beta (a) Nov. 2012 ... first released version.
+Dec. 2012 first stable version
+Jan. 2013 \parfillskip in \caption corrected.
+ \athetnum, \captionhook introduced.
+ \nobreak in \tocline corrected, \tocdotfill corrected.
+ New \url, \urlcolor implicitly defined as \empty.
+ \bibitem by \hangindent, \afteritcorr in \em
+ \bslash introduced
+ \toclinehook \mnotehook, \mnoteskip introduced.
+ \global\advance in \caption corrected.
+ \thechapnum is without the dot.
+Feb. 2013 \urllink: works with \\, \%, \#, \$, \{, \}.
+ \localcolor, \longlocalcolor introduced
+ \global\advance for chap./sec. nums corrected
+ \printcaption introduced
+Apr. 2013 \table in \table allowed, \catcode`\|=12 set in \table.
+ \printsec(c): \ifnum\lastpenalty added.
+ \urlink: ``~ removing'' corrected
+ {\em text}\macro error corrected.
+May 2013 \margins (2pages laylout) can be redefined by new \margins
+ \outlines use \pdfcatalog{/PageMode/UseOutlines}
+Jul. 2013 \fnotetext unwanted space - corrected
+ \picw=0pt prints picture in natural size, \picheight introduced
+ \isinlist corrected,
+ \othe\secnum in \secc removed
+ \dotocnum, \remskip, \reminsert introduced
+ \nonum, \notoc implemented
+ \destheight introduced as macro
+ \runningfnotes introduced
+ \addto defined as \long
+ \iiskip, \ttskip, \bibskip precedes by \par
+Aug. 2013 \dgsize corrected
+ \ifx\tmpa\tmpb in \printiiA is realized via \meaning
+ \ignorespaces included to \iis
+ \url hidden in group, in order to handle & in tables
+ \destheight rewritten as a dimen register
+ \rightskip, \leftskip corrected in \mnote
+ space corrected in \prepii
+ \input ams-math only if \normalmath is \undefined (released)
+Sep. 2013 \label: the ``duplicated label'' test added
+ \afternoindent: \box0 -> \box7
+ \scantabdata: \if#1| -> \ifx|#1
+ \fixmnotes recoded
+ \, uses \thinspace and it is \addprotected
+ \pdfliteral instead \special{PDF:...} used
+ XeTeX specific added
+ \draft, \insertoulines recoded
+ \endinsert redefined (\par added)
+ \addprotect\exfont (for exchars.tex cooperating)
+ \ulink improved and added to opmac-u
+ \postboxcclv: {\advancepageno} corrected
+Oct. 2013 /Border .6
+ better \adef
+ \typobase introduced
+ \typoscale[20000/] ``too large dimension'' ... solved
+ \activettchar reimplemented
+Nov. 2013 \Xpage: \ifnum\lastpage=#1 \else inserted
+ \frame is defined as \long
+ multilanuage: cz -> cs changed (by ISO 639-1)
+ \cr -> \crcr in \crl, \crll and \crli
+ \doverbinput: \ifeof\vifile added (bug ``empty line at EOF'' corrected)
+ eTeX support for multilang added.
+Feb. 2014 \sortcitations introduced, internal macros of \cite rewritten
+Mar. 2014 \frame: \setbox0=\hbox{{#1}} in order to \aftergroup in #1
+ \mnote: \pdfsave,\pdfrestore inserted, \mnote colors rewritten
+Apr. 2014 \nonumcitations, \ecite, \printbib, \lastbibnum introduced
+ \wbib, \citelink rewritten (more parameters now)
+ \destheight rewritten as macro, sorry
+ \fnotehook introduced
+Apr. 2014b \nocite[*] bug removed, \insertmark corrected
+Apr. 2014c nowarn about old csplain if csplain isn't used
+May 2014 \hyphenchar\urlfont=-1, \urlspecchar introduced
+May 2014b \linkactive introduced (bug fixing)
+May 2014c \maybebreak introduced
+May 2014d \seccfont bug fixed
+ \tabstrut inserted to each column in the \table
+Jun 2014 \opwarning about missing .bbl file rewritten.
+ more robust \replacestrings
+Jun. 2014a \mnoteC: default base mnote color set as current
+Jun. 2014b \footline: \the\pageno replaced by \folio
+ ? instead \/ in \replacestrings
+Jun. 2014c \pgfolioA, \pgfolioB introduced
+ \Xindexg introduced
+Jul. 2014 \bgroup -> \begingroup in \adef
+Aug. 2014 \parskip=0pt in \begtt ...\endtt
+ \addtabdata: redundant \expandafter removed
+Sep. 2014 \bib [...] = {...} space before = is now optional
+ \nbpar in \caption
+ \replacestrings: reduced by 3\expandafter
+ \isnextchar, \isinlist prefixed as \long
+ \testparA uses \romannumeral trick now.
+Oct. 2014 \pdfborder corrected: /Border [0 0 0] set for AR users.
+Nov. 2014 \sortingdata corrected, \specsortingdata introduced.
+ \replacestrings uses \replacestringsA instead \tmp
+ \bfshape used in \titfont and \Xchap
+ \adef{ }{\ } in verbatim environment (instead \adef{ }{ }).
+ \fnotemark+\fnotetext+\runningfnotes bug fixed.
+ \flushcolumns, \iiparams removed, \mullines introduced.
+Dec. 2014 Color features rewritten using \pdfcolorstack.
+ Unwanted spaces in \dosorting removed.
+ Better definition of \frame.
+ \margins/\setpagedimens improved, \isnextchar: \bgroup\egroup added.
+Apr. 2015 \wtotoc, \Xtoc, \tocilabel, \pgilabel introduced.
+ \outlinesC introduced
+ \setpagedimensC corrected: \truedimen
+ \opwarnig about missing \hyperlinks in \outlines added.
+ \fnotetext: \fnotehook inserted (bug fixing)
+May 2015 \itemhook introduced
+ \REFversion introduced
+ \prepghook introduced, \draft redefined using \prepghook
+ \mnote, \fnote redeclared as \long
+Jun 2015 \urlfont: \hyphenchar=-1 removed (bug fixed)
+ \mnote: \nobreak after \wref added (bug fixed)
+ csbxti10 -> cmbxti10, corrected for non-csplain users
+ default \ulink: \leavevmode added (bug fixed)
+Jul. 2015 \openref: \def\wref -> \gdef\wref (bug fixed)
+ \margins/2: \prephoffset introduced (bug fixed)
+ \hyperlinks when non-pdftex prints warning
+Sep. 2015 \sortingdata<iso-code> introduced, \isolangset introduced.
+ \toasciidata<iso-code> introduced.
+ \dosorting: local \iisort changes.
+Oct. 2015 \printttline, \ptthook introduced, \viprintline redesigned.
+ \everypar\expandafter{\the\everypar...} in \begtt, \doverbinput.
+Nov. 2015 \parskip=0 in \doverbinput, \vskip\parskip before first \ttskip
+ \addto\prepghook instead \def\prepghook in \draft
+ \mnote: ifvmode \hbox{\strut...} added
+Jan. 2016 \inspicpage introduced
+ \isolangset: \chardef..Patt added
+Mar. 2016 \thefnote default changed: ^{num}) -> ^{num}
+Apr. 2016 \frame: redundant group removed
+ \isnextchar improved (using \toks)
+ \eoldef introduced to \tit, \chap, \sec, \secc, see OPmac trick 0121
+ \input opmac-luatex.tex introduced
+ \slet introduced
+ \fontfam introduced, \usebib as module loaded
+May 2016 \replacestrings improved
+ \bfshape: \everymath={\boldmath} instead \boldmath directly
+ \tskip corrected
+Jun 2016 \thefontsize: \fontdim=#1\ptunit added.
+ \pdfhvorigin unknown in XeTeX, bug fixed
+Jun 2017 \begingroup...\endgroup trick introduced in \isinlist
+ \table: repeating and p declarator added,
+ \colnum=0 in table corrected (cor cases table in table)
+ \mspan added
+ \fnotetext: \everypar={} added (bug correction)
+Mar. 2018 \frame: \relax after \kern\hhkern added (bug correction)
+Mar. 2018a \uv defined as \long
+May 2018 \chap: \edef\thesecnum added (J. Sustek)
+ \printchap: \vfill\supereject instead \vfil\break
+ \link: argument in group in both: \hyperlinks on/off (J. Sustek)
+Aug. 2018 \wlabel: \protectlist added.
+ \Xlabel: \sxdef{lab:#1} changed to \sdef (J. Sustek)
+
+%%%%%%%%%%%%%% End of opmac.tex
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_hebrew.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_hebrew.mac
new file mode 100644
index 0000000000..5f9f9ae626
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_hebrew.mac
@@ -0,0 +1,147 @@
+% [unicode_hebrew.mac]
+% 2018.09.12 split off from [my_hebrew_fonts.mac]
+% title conforms to [unicode_latin.mac]
+% this conflicts with drop_letter
+
+% 2018.12.16 something wrong all \rbr match with \lbr in line above
+% but not first FB31\rbr
+ %%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%
+
+ %%%%%%%%%%%%% AVOID DOTS %%%%%%%%%%%%%%
+%\def\.b{\char"FB31} % DAGESH th |||| DOT WITH ONE LETTER WORKS
+%\def\.bb{\char"FB31} % DAGESH th |||| DOT WITH TWO LETTERS DOES NOT WORK
+%\def\.tt{\char"FB38} % DAGESH it does not like .t
+
+
+% CONSONANTS WITHOUT DAGESH (on basic list: unicode 0059 --- 05FF)
+% SIMPLE START WITH 0, COMBINED (dagesh) WITH F
+% On each page the vertical order in a column is ABJED, just copy from set
+% above and change last number (SAME FOR BOTH)
+%
+%%%%%%%%%%%%%% ALEPH + AYIN %%%%%%%%%
+\def\'{\char"05D0} % ALEPF YES IT ACCEPTS \'
+\def\`{\char"05E2} % AYIN, YES IT ACCEPTS \`
+
+%%%%%%%%%%%%%% TET + TAV %%%%%%%%%
+% I changed to d for consistency with shin, ts
+% I use d for SOFFIT \s + \sd
+\def\t{\char"05D8} % tet it does not like .t
+\def\td{\char"FB38} % tet with DAGESH
+
+\def\T{\char"FB4A} % tav USE CAP T
+
+%%%%%%%%%%%%%% SAMECH + SAV %%%%%%%%%
+\def\s{\char"05E1} % samech it does not like .s
+\def\sd{\char"FB41} % samech with DAGESH
+
+
+\def\S{\char"05EA} % SAV
+
+%%%%%%%%%%%%%% SIN = SI + SHIN = SH %%%%%%%%%
+\def\si{\char"FB2B}
+\def\sid{\char"FB2D}
+
+\def\sh{\char"FB2A}
+\def\shd{\char"FB2C}
+
+\def\splain{\char"05E9} % the sin/shin form without a dot
+
+%%%%%%%%%%%%%% TSADE = \ts %%%%%%%%%
+\def\ts{\char"05E6}
+\def\tsd{\char"FB46} % dagish
+\def\tss{\char"05E5} % tsade sofit
+% change font from \hackboldAAAAAA
+
+
+%%%%%%%%%%%%% NON-PROBLEM LETTERS %%%%%%%%%%%%
+% 05D/E*(basic) / FB3/4*(dagesh) come inוְאָמַרְתָּ אֲלֵהֶם pairs
+% I double for dagesh \g + \gg
+% I add s for soffit \khs
+
+\def\b{\char"FB31} % DAGESH
+\def\v{\char"05D1}
+\def\g{\char"05D2}
+\def\gd{\char"FB32} % DAGESH
+\def\d{\char"05D3}
+\def\dd{\char"FB33} % DAGESH
+\def\h{\char"05D4}
+\def\hd{\char"FB34} % DAGESH at end to endicate masculine possesive
+\def\w{\char"05D5}
+\def\wd{\char"FB35} % DAGESH, sometimes need \ww when have \ww\o\
+\def\z{\char"05D6}
+\def\zd{\char"FB36} % DAGESH
+\def\ch{\char"05D7} % apparently no chet with dagesh
+% TET = \t above
+
+\def\y{\char"05D9} % yod
+\def\yd{\char"FB39} % yod DAGESH
+\def\ydee{\char"FB39\char"05B4} % yod-dagesj+ee THIS ONE GIVES GOOD RESULTS
+% \def\yee{\char"FB1D} % yod + ee in one
+% glyph HEERIQ TOO HIGH
+\def\k{\char"FB3B} % Kaf
+\def\kh{\char"05DB} % KHaf they have khaf soffit before khaf!drop_hebrew.mac
+\def\khs{\char"05DA} % khaf SOFIT, no dagesh -?? does this exists
+%\khs\e gives khaf SOFIT with sheva % No symbol for khaf soffit with sheva
+
+\def\l{\char"05DC} % lamed
+\def\ld{\char"FB3C} % DAGESH
+\def\m{\char"05DE} % mem
+\def\md{\char"FB3E} % DAGESH
+\def\ms{\char"05DD} % SOFFIT
+\def\n{\char"05E0}
+
+\def\nd{\char"FB40} % DAGESH
+\def\ns{\char"05DF} % SOFFIT
+
+\def\f{\char"05E4} % fe
+\def\p{\char"FB44} % pe
+\def\fs{\char"05E3} % fe SOFIT
+% \fs\e gives fe SOFIT with sheva % No symbol for fe soffit with sheva
+
+% TSADE ABOVE
+
+\def\q{\char"05E7} % QOF conflict with \q = quad so I elimanted
+\def\qd{\char"FB47} % QOF with dageshdrop_hebrew.mac
+
+\def\r{\char"05E8} % it does not like .t
+% \def\rd{\char"FB48} % with DAGESH does not exist says weinberg
+% I found this, but not in any of my fonts
+%\def\pinwheelstar{\char"1F7C3}
+
+% SIN + SHIN ABOVE
+
+% VOWELS % (on basic list: unicode 0059
+%
+\def\e{\char"05B0} % SHEVA XX DID NOT ACCEPT \def\:
+\def\ee{\char"05B4} %hEEriq% CONSONANT+VOWEL COMBINATIONS
+\def\eh{\char"05B6}
+\def\ei{\char"05B5} % tzerEI
+\def\a{\char"05B7}
+\def\A{\char"05B8}
+\def\o{\char"05B9} % they not 05C2 (sin dot); 05B9 =eh?
+\def\O{\char"FB4B} % plene hOlom
+\def\u{\char"05BB}
+\def\U{\char"FB35} % plene identical with \ww (sometimes need)
+
+
+ % special characters
+% 2018.12.16 SOMETHING WRONG ALL \RBR MATCH WITH \LBR IN LINE ABOVE
+% BUT NOT FIRST FB31\RBR
+%
+\def\qere{\char"05AF}
+\def\maqaf{\char"05BE} % to split lines
+\def\sofpasuk{\char"05C3} % in case missing 9lev 19:1) or for me
+%
+% I fixed ok with \TH
+\def\vt{\kern -3pt\RL{\lower 2.5pt\hbox{\Th\rmseventeen\char"02DD}}} % \kern -0.1pt
+%\def\vt{\th\RL{\th\lower 2.5pt\hbox{\rmseventeen\char"02DD}\th}} %
+
+
+%\vt = verb type combining accent for % writing pe"nun etc
+ % "030B under spacing XX seems to close up
+% testing \bsl vt {\it = Verb Type} for \heb{\p\vt\ns}
+% This is 030B:\TH {\rmsixteen\char"030B},\TH {\rmfifteen\char"030B} combining
+% diacritics [seems to close up]
+% This is 02DD:\TH {\rmsixteen\char"02DD}, \TH {\rmsixteen\char"02DD} double accents
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_latin.mac b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_latin.mac
new file mode 100644
index 0000000000..f7cc105385
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/RIGHT-to-LEFT-TEXTS/unicode_latin.mac
@@ -0,0 +1,73 @@
+% [unicode_latin.mac]
+% there is now a [unicode_hebrew.mac]
+
+% What is the purpose of this as type French anyway? [2018.09.12]
+% maybe it was so that I could finish the CW book with the graphs that had codes
+%
+% 2018.10.31 this is very useful in replacing charabia in German where I had \u etc
+
+
+% NO! NOI! GREAT IN PRINCIPLE. BUT I FORGOT AND WASTED 30 MINUTES WITH \BSL
+% KEEP ONLY ALPHANUMERIC HERE
+% 2017.12.26 taken from [format.mac] (was not in [fonts.mac])
+% replace all the Cork with UNICODE
+%
+% ====) anything defined by unicode in [format_XETEX.mac]
+% has been moved here. that way can change and check more easily.
+% quotation marks and apostrophes are located there.
+
+%
+
+
+% g = grave; a = aigu; c = circumflex
+% THESE NEED SPACE AFTER! lc uc
+\def\ge{\char"00E8} % g = GRAVE columns 00E & 00C 00F & 00D
+\def\gE{\char"00C8}
+\def\ga{\char"00E0}%%%%%%%%%%% OBLIQUE %%%%%%%%%%
+\def\gA{\char"00C0}
+\def\go{\char"00F2}
+\def\gO{\char"00D2}
+\def\gu{\char"00F9}
+\def\gU{\char"00D9}
+%
+\def\ae{\char"00E9} % a =AIGUE only two letters with aigu
+\def\aE{\char"00C9}
+%
+\def\ce{\char"00EA} % c = CIRCUMFLEX
+\def\cE{\char"00CA}
+\def\ca{\char"00E2}
+\def\cA{\char"00C2}
+\def\cu{\char"00FB}
+\def\cU{\char"00DB}
+\def\ci{\char"00EE}
+\def\cI{\char"00CE}
+\def\co{\char"00F4}
+\def\cO{\char"00D4}
+%
+\def\ue{\char"00EB} % c = umlaut/trema
+\def\uE{\char"00CB}
+\def\ua{\char"00E4}
+\def\uA{\char"00C4}
+\def\uo{\char"00F6}
+\def\uO{\char"00D6}
+\def\uu{\char"00FC}
+\def\uU{\char"00DC}
+\def\ui{\char"00EF} % yes for Mo\ui se
+\def\uI{\char"00CF}
+
+\def\cc{\char"00E7}
+\def\cC{\char"00C7}
+
+\def\ajoine{\char"00E6} % I used \ae above for grave
+\def\AjoinE{\char"00C6}
+
+\def\ss{\char"00DF}
+
+
+
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/5sec.txt b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/5sec.txt
new file mode 100644
index 0000000000..53708a11e4
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/5sec.txt
@@ -0,0 +1,4 @@
+
+[5sec.txt]
+
+The pause is for 5 sec, Hit ^C to stop. \ No newline at end of file
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bak b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bak
new file mode 100644
index 0000000000..f3c18e4040
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bak
@@ -0,0 +1,29 @@
+
+# !/bin/bash
+# bak
+
+
+# "bak" removes all the *~ (backup) files from the current directory
+#
+# to remove all the *.log, *.dvi, *.aux files from the current
+# directory use the shell function "del"
+# see also "dvi_letter"
+
+# As a security measure the backup files are first listed
+# for the first 5 seconds
+# HIT CONTROL + C to abort
+
+cat /usr/local/bin/empty.txt
+
+ls *~
+
+cat /usr/local/bin/5sec.txt
+
+sleep 5
+
+rm -f *~
+rm -f *.edbkup # editra backups
+
+clear
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bell b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bell
new file mode 100644
index 0000000000..8453e0dd59
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/bell
@@ -0,0 +1,12 @@
+# bell
+# used in connection with ktimer
+
+
+# NOTHING WORKED with /usr/share/sounds to have repeats (also too short). So, I said to myself, why NOTHING
+# choose my own bell
+
+# careful PUT THE FORWARD SLASH / IN FRONT OF HOME
+
+#kaffeine /home/second/MUSIC+VIDEOS_ALL_SORTED/TAKE_FIVE/take_five_pakistani_jazz_sitar.ogg
+
+kaffeine http://people.math.carleton.ca/~rhfischl/take_five_isis_big_band.mp3
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/border b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/border
new file mode 100644
index 0000000000..93e50dc377
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/border
@@ -0,0 +1,41 @@
+
+#!/bin/bash
+# border
+
+# puts a border around ALL the png and jpg photos in the directory
+# saves the originals to a directory ORIGINALS/ and in the current directory
+# and adds "border_" to the new file
+
+# change the following values as desired
+# colour: #EEAA00 (brownish)
+# border: 10 pixels wide
+
+
+# first eliminate the old ORIGINALS/ because if repeat
+# one obtains nested ORIGINALS/!
+
+rm -fR ORIGINALS/
+
+# eliminate the extensions with capital letters
+# no loop for rename
+ rename .PNG .png *.PNG
+ rename .JPG .jpg *.JPG
+
+# new originals
+mkdir ORIGINALS/
+cp * ORIGINALS/
+
+
+# png
+for img in `ls *.png`
+do
+ convert -mattecolor "#EEAA00" -frame 10x10 $img border_$img
+done
+
+
+# jpg
+for img in `ls *.jpg`
+do
+ convert -mattecolor "#EEAA00" -frame 10x10 $img border_$img
+done
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/del b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/del
new file mode 100644
index 0000000000..649a17c244
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/del
@@ -0,0 +1,15 @@
+
+# !/bin/bash
+# del
+
+# "del" removes all the *.log, *.dvi, *.aux files from the current
+# directory
+# To remove---WHEN YOU ARE CERTAIN!!--- all the *~ (backup) files from
+# the current directory, use the shell function "bak"
+
+rm -f *.log
+rm -f *.dvi
+rm -f *.aux
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/empty.txt b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/empty.txt
new file mode 100644
index 0000000000..d828056e65
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/empty.txt
@@ -0,0 +1,7 @@
+
+.
+.
+ list of *~ files
+.
+.
+ \ No newline at end of file
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/photos2eps b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/photos2eps
new file mode 100644
index 0000000000..6210e7ac6f
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/photos2eps
@@ -0,0 +1,48 @@
+#!/bin/bash
+# [photos2eps]
+
+# converts all the *.png and *.jpg files in the directory to eps files
+# with the extension *.eps
+# copies originals to ORIGINALS/
+
+# first eliminate the old ORIGINALS/ because if repeat
+# one obtains nested ORIGINALS/!
+
+rm -fR ORIGINALS/
+
+# eliminate the extensions with capital letters
+# no loop for rename
+ rename .PNG .png *.PNG
+ rename .JPG .jpg *.JPG
+
+# new originals
+mkdir ORIGINALS/
+cp * ORIGINALS/
+
+# first png files
+for img in `ls *.png`
+do
+ convert $img $img.eps
+done
+
+# second jpg files
+for img in `ls *.jpg`
+do
+ convert $img $img.eps
+done
+
+# now eliminate the unwanted png & jpg
+ rename .png.eps .eps *.png.eps
+ rename .jpg.eps .eps * *.jpg.eps
+
+# remove all the .jpg, .png
+mv -f *.jpg ORIGINALS/
+mv -f *.png ORIGINALS/
+
+
+# as a check, we list the files
+ls
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/reduce500 b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/reduce500
new file mode 100644
index 0000000000..064cba5c7d
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/reduce500
@@ -0,0 +1,43 @@
+#!/bin/bash
+# reduce500
+
+# change the size as desired
+
+# uses convert from the ImageMagick suite to reduce the size
+# of all the *.png and *.png files to a sample size of
+# 500 pixels x 500 pixels.
+# add _500 to the name so that know reduced
+# keeps original format (jpg or png)
+# original appears in file list, but I also create and copy to ./ORIGINALS
+
+# eliminate the extensions with capital letters
+# no loop for rename
+rename .PNG .png *.PNG
+rename .JPG .jpg *.JPG
+
+# backup copy
+mkdir ./ORIGINALS/
+cp *.png ./ORIGINALS/
+cp *.jpg./ORIGINALS/
+
+
+# trick to add 500 first rename to *500.png ===) .png.500.png
+# note that the name of "img" still has ".png" in it, I eliminate the double "png" below
+for img in `ls *.png`
+do
+ convert -sample 500x500 $img $img.500.png
+done
+
+#same for .jpg
+for img in `ls *.jpg`
+do
+ convert -sample 500x500 $img $img.500.jpg
+done
+
+# now eliminate the unwanted .png500.png & jpg
+ rename .png.500.png _500.png *500.png
+ rename .jpg.500.jpg _500.jpg *500.jpg
+
+# as a check, we list the files, original appears too
+ls
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/rotate b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/rotate
new file mode 100644
index 0000000000..46265ede15
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/SHELL-FILES/rotate
@@ -0,0 +1,18 @@
+#!/bin/bash
+# rotate
+# rotates file $2 by $1 degrees
+# for negative angles needs "0" : -0.4
+# the resulting file has the statement $1degrees_ before the old file name
+# this is useful if one has a small rotation to make to "straighten" a photograph
+# one can quickly try a series of small rotations -0.4, -0.5 etc
+
+# example of usage:
+# rotate -0.4 panda.png ==> -0.4degrees_panda.png
+
+
+# keeps original, because name is changed
+#1 refers to the number of degrees to rotate.
+# only one file, viz. $2, is involved
+
+ convert -rotate $1 $2 $1degrees_$2
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-debbie.mac b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-debbie.mac
new file mode 100644
index 0000000000..fd352d1d0f
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-debbie.mac
@@ -0,0 +1,40 @@
+ % [christianne-debbie.mac]
+ % 2015.11 for key chain + box
+
+ % I only define the ones I need, debbie is written in CHIPEWYAN [p. 619m Writing Systems of the World]
+
+\font\creeA = [/home/morris/MY-FONTS/oskiwbold.ttf] at 15pt
+\font\creeAA = [/home/morris/MY-FONTS/oskiwbold.ttf] at 20pt
+\font\creeAAA = [/home/morris/MY-FONTS/oskiwbold.ttf] at 25pt
+\font\creeAAAA = [/home/morris/MY-FONTS/oskiwbold.ttf] at 30pt
+\font\creeAAAAA = [/home/morris/MY-FONTS/oskiwbold.ttf] at 35pt
+\font\creeAAAAAA = [/home/morris/MY-FONTS/oskiwbold.ttf] at 40pt
+\font\creeAAAAAAA = [/home/morris/MY-FONTS/oskiwbold.ttf] at 45pt
+
+\font\creeB = [/home/morris/MY-FONTS/oskiwbold.ttf] at 50pt
+\font\creeBB = [/home/morris/MY-FONTS/oskiwbold.ttf] at 55pt
+\font\creeBBB = [/home/morris/MY-FONTS/oskiwbold.ttf] at 60pt
+\font\creeBBBB = [/home/morris/MY-FONTS/oskiwbold.ttf] at 65pt
+\font\creeBBBBB = [/home/morris/MY-FONTS/oskiwbold.ttf] at 70pt
+\font\creeBBBBBB = [/home/morris/MY-FONTS/oskiwbold.ttf] at 75pt
+
+
+% for Christianne: Cree
+\def\ki{\char"146D}
+\def\sf{\char"1422} % final s
+\def\tse{\char"1489}
+%
+\def\a{\kern -1.0truept \char"140A}
+\def\nf{\char"1423} % final n
+%
+\def\ne{\char"14C0}
+
+% for Debbie Chipewan
+\def\de{\char"144C}
+\def\bo{\char"1433}
+\def\ra{\char"158D}
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.pdf
new file mode 100644
index 0000000000..1f79b61f87
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.tex
new file mode 100644
index 0000000000..da5ed9d1bb
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/CANADIAN-ABORIGINAL-SYLLABICS/christianne-key+debbie-box-larger.tex
@@ -0,0 +1,101 @@
+% [christianne-key+debbie-box.tex]
+% Christianne, one of the triplets next, door was going on class trip
+% to a Cree community in northern Alberta. She provided
+% me with a class list and I made up name tags with the names in
+% Cree syllabics.
+% in order to do so I created my own TeX definitions for the Unicode
+% syllabics symbols. For example:
+% \def\ki{\char"146D}
+% All these defintions were placed in the special mac file [ christianne-debbie.mac]
+% This mac file also contained the oskibold font at various nominal font sizes, e.g.
+% \font\creeBBBBBB = [/home/liliane/ROGER/MY-FONTS/oskiwbold.ttf] at 75pt
+
+% On the TeX form I added to the list of mac files:
+\input christianne-debbie.mac % special
+
+% I then made wooden key chains for her and her mother with their names,
+% both in Cree and Latin letters, burned into the wood. Since I was not sure
+% of the size I defined various font sizes and printed them out.
+
+% The following is the TeX file without the regular heading
+
+
+\input christianne-debbie.mac % special
+
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+%
+{\rm
+% #4
+\nin
+{\bfeighteen
+Christianne in Cree syllabics
+%
+\vskip 20truept\nin
+%
+% The Rdot put in > above
+kis\TH tse\TH an\TH ne
+%
+%
+\vskip 25truept\nin
+% 50pt
+{\creeB \ki\sf\TH \tse\TH \a\nf\TH \ne}
+%
+%
+\vskip 25truept\nin
+% 55pt
+{\creeBB \ki\sf\TH \tse\TH \a\nf\TH \ne}
+%
+\vskip 25truept\nin
+% 60pt
+{\creeBBB \ki\sf\TH \tse\TH \a\nf\TH \ne}
+%
+\vskip 25truept\nin
+% 65pt
+{\creeBBBB \ki\sf\TH \tse\TH \a\nf\TH \ne}
+%
+\vskip 25truept\nin
+% 75pt
+{\creeBBBBB \ki\sf\TH \tse\TH \a\nf\TH \ne}
+%
+\vskip 25truept\nin
+% 80pt
+{\creeBBBBBB \ki\sf\TH \tse\TH \a\nf\TH \ne}
+%
+\vfill\eject
+%
+\nin
+Deborah in Chipewyan (Athabaskan language) which is richer in consonants. Cree does not have "d",
+"b", "r".
+%
+\vskip 20truept\nin
+%
+% The Rdot put in > above
+de\TH bo\TH ra
+%
+\vskip 25truept\nin
+% 55pt
+{\creeB \de\TH \bo\TH \ra}
+%
+%
+\vskip 25truept\nin
+% 60pt
+{\creeBB \de\TH \bo\TH \ra }
+%
+\vskip 25truept\nin
+% 65pt
+{\creeBBB \de\TH \bo\TH \ra}
+%
+\vskip 25truept\nin
+% 70pt
+{\creeBBBB \de\TH \bo\TH \ra}
+%
+\vskip 25truept\nin
+% 75pt
+{\creeBBBBB \de\TH \bo\TH \ra}
+%
+\vskip 25truept\nin
+% 80pt
+{\creeBBBBBB \de\TH \bo\TH \ra}
+%
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.pdf
new file mode 100644
index 0000000000..baea1d06d9
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.tex
new file mode 100644
index 0000000000..1aeb814d5b
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/identification-system.tex
@@ -0,0 +1,194 @@
+% [identification_system.tex]
+
+% HEADING MATERIAL HAS BEEN REMOVED
+
+
+{\rm % rm, bf ... = 12.5pt (\it =13.0pt) in [fonts.mac]
+%
+{\verysmall .}
+%
+\vskip -20pt\nin
+%
+\centerline{\bftwenty Identification System}%
+%
+\mni
+%
+As explained in the introduction this is an {\it ascending\/} genealogy. In order to precisely identify each
+person and to clearly indicate their relationships with descendants and ancestors, the following method is
+used:
+\mni
+ Each person is assigned a unique identification number consisting of 1s and 2s, where the digit 1
+indicates a female and the digit 2 a male. The number of digits in the identification number depends on
+how many generations back they are from
+Eliane Herz, who is identified by the number 1. Her mother,
+Coralie Weill is 11, and Coralie Weill's father is 112.
+%
+\mni
+In addition to giving an identification number to individuals we want to arrange them in a definite order.
+The
+idea is analogous to the system used in dictionaries as illustrated in the following example with \lq
+before\rq\ being indicated by the symbol\TH
+{\bfsixteen <}\TH .
+\sni
+{\leftskip =45pt
+\nin
+{\it aa\/}\gl rdvark {\Th \bf <\Th} {\it abac\/}\gl a {\Th \bf <\Th} {\it abac\/}\gl k {\Th \bf <\Th}
+{\it abac\/}\gl us
+\par}
+%
+\mni
+%
+We use the same general idea for identification numbers. Consider the following couple:
+\sni
+{\leftskip =45pt %
+%
+{\tt 111\|21}\en {\bf Sophie Lang}
+\sni
+{\tt 111\|22}\en {\bf David \wr}
+ \par}
+ %
+ \mni
+Being a couple, their identification numbers are identical except for the last place and because the wife has
+a 1 in the last place she is listed before her husband who has a 2 in the last place.
+\mni
+Given the identification number \({\tt 112\|21}\) of Sophie Lang we immediately know that:
+\sni
+\item{} The male child \(Gottschau \wr\) of Sophie Lang has identification number {\tt 112\|2},
+\item{} The parents of Sophie Lang have identification numbers {\tt 112\|211} and {\tt 112\|212} \(Dina
+Naphtaly and Baruch Lang respectively\).
+%
+\mni
+%
+Similarly consider the following three men:
+\sni
+{\leftskip =45pt %
+%
+{\tt 111\|22}\en {\bf David \wr}
+\sni
+{\tt 112\|22}\en {\bf Jacques Weil }
+\sni
+{\tt 111\|212}\en {\bf Baruch Lang}
+ \par}
+ %
+ \mni
+%
+ David \wr\ precedes Jacques Weil because he has a 1 in the third place and Jacques Weil has a 2.
+ \mni
+ Baruch Lang is after Jacques Weil even though he has a 1 in the first three places, because his
+identification number has one more digit and this in turn means that he is one generation earlier than
+Jacques Weil.
+\mni
+In each of the seven groups of ancestors of \cw\
+the group is divided into generations and within a generation the lists of people follow the order just
+described. To illustrate this consider the ancestors of Gottschau \wr.
+%
+\vfill\eject
+%
+\nin
+%
+His parents are listed as follows:
+\sni
+{\leftskip = 2.0truecm
+{\tt 111\|21}\en {\bf Sophie Lang}
+\sni
+{\tt 111\|22}\en {\bf David \wr}
+\par}
+%
+\sni
+Next we have the grandparents of Gottschau \wr\ as follows:
+\sni
+{\leftskip = 2.0truecm
+\hskip 2.1cm{\bf The Parents of Sophie Lang}
+\sni
+{\tt 111\|211}\en {\bf Dina Napthtaly}
+\sni
+{\tt 111\|212}\en {\bf Baruch Lang}
+\mni
+\hskip 2.1cm{\bf The Parents of David \wr}
+\sni
+{\tt 111\|221}\en {\bf Fromet David}
+\sni
+{\tt 111\|222}\en {\bf Schmulen Solomon}
+\par}
+%
+\mni
+In the examples given so far there was only one identification number, but
+because the two grand\-mothers of Coralie \we\ were sisters, their parents and all preceding generations
+will have {\it two\/} numbers. Thus, since Marie \kl\ was the mother of both Caroline \ml\ \({\tt 111\|1}\)
+and Pauline \ml\ \({\tt 112\|1}\) she will have the two numbers obtained by adding a 1 to the numbers of
+her
+daughters and we find the same situation with Salomon \ml, the husband of Marie \kl.
+\sni
+{\leftskip =45pt
+{\tt 111\|11\fsl 112\|11}\en {\bf Marie \kl}
+\sni
+{\tt 111\|12\fsl 112\gl\|12}\en {\bf Salomon \ml}
+\par}
+\mni
+Further, since the Mandel and \wr\ lines have common ancestors, these common ancestors will have {\it
+three\/} numbers.
+\mni
+Another consequence of both grand\-mothers being sisters is that, instead of {\it eight\/}
+great-grand\-parents, Coralie Weill had only {\it six\/} great-grand\-parents, twelve
+great-great-grand\-parents\dots . The number of possible ancestors is reduced even further when we arrive at
+the ancestors with three numbers.
+\mni
+The length of the identification number also shows the degree of ancestry with respect to \cw. Thus her
+parents are identified by three digits and her grandparents by four. Next come the great-grandparents
+with five digits and great-great-grandparents with six. From this we see that the number of \lq greats\rq\ is
+given
+by the number of digits minus four and conversely to find the number of digits in a designation we simply add
+four to the number of greats. The longest designation numbers belong to the three, six
+times
+great-grandparents of \cw\ who have ten digits. The oldest of these three would have been born ca.\th 1650.
+\mni
+\centerline{\bf Summary}
+\mni
+\item{1.} A female ancestor is indicated by a 1, a male ancestor is indicated by a 2.
+\sni
+\item{2.} Couples are listed in pairs and their identification numbers only differ in the last number,
+namely a 1 or a 2.
+\sni
+\item{3.} The identification number of a child is obtained by {\it taking off\/} the last digit.
+\sni
+\item{4.} The identification numbers of the parents of a person are obtained by {\it adding on\/} a 1 and a 2.
+\sni
+\item{5.} The ancestors of any person are discussed one generation at a time. Within any generation people
+are listed according to the order described above.
+\sni
+\item{6.} Marie \kl\ and Salomon \ml\ each have two identification numbers. Their ancestors will also have
+two identification numbers with some of the very early ancestors of Salomon \ml\
+ having three numbers. People with multiple numbers are listed according to their {\it first\/}
+identification number.
+\sni
+\item{7.} \cw\ had only six {\it distinct\/} great-grandparents, twelve {\it distinct\/}
+great-great-grandparents\dots . When we arrive at the ancestors with three identification numbers there will
+be a further reduction in the number of actual ancestors.
+\sni
+\item{8.}The length of the identification number indicates the degree of ancestry with respect to \cw:
+\sni
+{\leftskip = 31.6pt
+\pni \cw\ \({\tt 11}\) has an identification number of length 2.
+\pni Her parents \({\tt 111} and {\tt 112}\) have an identification number of length 3
+\pni Her grandparents have an identification number of length 4.
+\pni Her great-grandparents have an identification number of length 5.
+\pni Her two times great-grandparents have an identification number of length 6.
+\pni Her three times great-grandparents have an identification number
+of length 7.
+\pni Her four times great-grandparents have an identification number of length 8.
+\pni Her five times great-grandparents have an identification number of length 9.
+\pni Her six times great-grandparents have an identification number of length 10.
+\par}
+%
+%
+\par % seem to need \(sometimes\)
+%
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+%
+\vfill\eject
+%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.pdf
new file mode 100644
index 0000000000..627d67dde7
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.tex
new file mode 100644
index 0000000000..66f62aa8e0
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/introduction-meme.tex
@@ -0,0 +1,338 @@
+% [introduction_meme.tex]
+
+% NOTICE THE USE OF PSTRICKS TO IMPORT IMAGES near
+% lines 100 and 140
+% \centerline{\epsfxsize = 5.94 truein\epsfbox{meme_09_single-line-bottom.eps}}
+
+% \centerline{\epsfxsize = 5.3 truein\epsfbox{mandel_weiller.eps}}
+%
+% [The first was drawn using PINTA, and second using GRAPHVIZ].
+
+% Notice also the use of short cuts, e.g . \cw\ and \mar\ for names of people and towns,
+% which are defined in [ancestors.mac].
+%
+% Various spacing short cuts, e.g. \mni, \nin, \th, \lq and \rq (quotation marks), which are defined in [format_XETEX.mac]
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+\input my_fonts.mac % libertine etc
+\input format_XETEX.mac
+\unicode_latin.mac
+\input macros.mac
+\input ancestors.mac
+
+\input pstricks % need for centring
+\input epsf % need for importing eps
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein
+\pdfpagewidth= 8.5truein
+
+\vsize = 8.50 in
+{\hsize = 5.94 in
+
+\voffset = 0.5 truecm %1.0truecm
+\hoffset = 0.70truecm
+
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+% =======> 3 CHANGES TO MAKE <=========
+
+ \nopagenumbers
+
+ \pageno = 1 % 3 CHANGES TO MAKE
+
+ % this footer puts a page number in bold at the bottom of each page, EXCEPT FIRST
+\pageno = 1 % can change if needed
+ % I do not want page number on first
+ \footline = { % THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \ifnum \pageno = 1 % do nothing <== keep with false #
+ \else
+ {\centerline{\bf \folio}} % centerline closes here for page #
+ \fi % this matches \ifnum
+ }
+ %
+ % NO DATES HERE, ONLY IN TITLE
+\headline = {% THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \centerline{ % CAN NOT PUT \CENTERLINE AFTER ELSE, FOULS UP!
+ \ifnum \pageno = 1 % do nothing <== keep with false #
+ \else
+ % {\ttthirteen +++\|**}\quad
+ {\bfthirteen Introduction}
+ \fi % THIS MATCHES \IFNUM
+ } %THIS MATCHS CENTERLINE
+ } % THIS MATCHES { WITH \FOOTLINE
+
+
+%%%%%%%%%%%%%%%%%%%% END FOOTERS AND HEADERS % %%%%%%%%%%%%%%%%%%%%
+
+% TOUS LES FORMES SONT APRES \Biy
+
+% %%%%%%%%%%%%%% [MALE.tex]: START OF ACTUAL FORM %%%%%%%%%%%%%%%
+ {\rm % 12.5pt
+%
+{\verysmall .}
+%
+\vskip -20pt\nin
+%
+ \centerline{\bftwenty Introduction}
+\mni
+The ancestors of \cw\ have been divided into seven groups as indicated in the following diagram:
+%
+\vskip 12pt\nin
+%
+ \centerline{\epsfxsize = 5.94 truein\epsfbox{meme_09_single-line-bottom.eps}}
+%
+\vskip 6pt\nin
+%
+The first thing to notice is that the grouping of people is divided into two main groups, \lq \dau\rq\
+and
+\lq\mar\rq. The three people listed on the left were all born in \dau, as were some of their ancestors and
+descendants. On the right only Alexandre \wl\ was born in \mar, but both Madeleine Bloch and Am\ae lie \le\
+married men from there and their children were all born in \mar. Ancestors of the people whose name
+designates a group are traced as far back as possible in the discussion of the group, unless some of these
+earlier ancestors have their own group.
+%
+\mni
+%
+The second thing to notice is that the diagram is not symmetrical from a generational point of view. At the
+beginning I started to group the ancestors by parents, grandparents etc., but I realized that this would
+obscure matters. The main reason for this is the fact that the parents of \cw\ were cousins, with the two
+grandmothers being the children of Marie \kl\ and Solomon \ml. Since children of a couple are
+always listed with the wife, the two grandmothers of \cw, as well as her father and paternal grandfather
+are
+discussed in the bottom grouping, \lq \cw\rq. Am\ae lie \le\ was the mother of Coralie Weill's paternal
+grandfather and
+both she and her husband Jacques Weil are discussed in the grouping \lq Am\ae lie \le\rq. Madeleine Bloch and
+Alexandre Weil, the parents of
+Jacques Weil, are discussed in their respective groups.
+On the left Gottschau \wr, who married a daughter of Marie \kl\ and Solomon \ml, has his own group as do
+these latter two people.
+%
+\mni
+%
+From a strictly genealogical viewpoint the major discovery was the fact that the two \ml\ families and the
+Weillers who lived in the early nineteenth century in \dau\ had a common ancestral pair in J\uu del G\uo
+tsch and
+Solomon \ml. They were both born in the early seventeen hundreds with Solomon \ml\ passing away in 1810
+at the ripe old age of ninety-six! This is all discussed in detail in the chapters dealing with their
+great-grandsons Solomon \ml\ and Gottschau \wr. The following chart indicates some of the relationships and
+this is followed by an abbreviated generational list with J\uu del G\uo tsch and Solomon \ml\ representing
+the
+first generation.
+%
+\vskip 12pt\nin
+%
+ \centerline{\epsfxsize = 5.3 truein\epsfbox{mandel_weiller.eps}}
+%\vskip 4 truept
+% TITLE NOT NEEDED, i EXPLAIN ABOVE
+ %\centerline{\bf The \ml\ and \wr\ Ancestors of Coralie \wl}
+%
+%
+\vfill\eject
+%
+% this is ABBREVIATED I took out old, itlaicized, names
+% separate different groups of the same generation by \lineb
+\phantom{katz}
+\vskip -20pt % want line between Solomon \ml & gottschau on p.3
+\nin
+\centerline{\bf Generation -2 }
+\sni
+%
+ \kern -1.4pt {\bffourteen Moyse-Samuel}, {second half of the seventeenth century}.
+ \itemitem{}Father of Naftaly {\rm\<<}Hirtzel{\rm \>>}.
+%
+\bni
+%
+\centerline{\bf Generation -1 }
+\sni
+ \kern -1.4pt{\bffourteen G\uo tsch}, {end of the seventeenth century}.
+ \itemitem{}Father of J\uu del G\uo tsch.
+%
+\vskip1.5pt\nin
+%
+\lineb
+%
+\vskip5pt\nin
+%
+ \kern -1.4pt{\bffourteen J\uu del}, {end of the seventeenth century}.
+ \itemitem{}Mother of Solomon \ml.
+\sni
+ \kern -1.4pt{\bffourteen {Naftaly {\rm\<<}Hirtzel{\rm \>>}}}, {end of the seventeenth century}.
+ \itemitem{} Father of Solomon \ml.
+%
+\bni
+%
+\centerline{\bf Generation 1}
+\sni
+ \kern -1.4pt{\bffourteen J\uu del G\uo tsch}, beginning of the eighteenth century.
+ \itemitem{} Marriage with Solomon \ml\ ca.\th 1740?
+ \itemitem{}Mother of Jacques \ml\ and Schmulen Solomon.
+%
+\sni
+%
+ \kern -1.4pt{\bffourteen Solomon \ml}, ca.\ 1714, \dau\gl?\tiret1810.03.13 \dau.
+
+\bni
+%
+\centerline{\bf Generation 2}
+\sni
+ \kern -1.4pt{\bffourteen Jacques \ml}, ca.\ 1741 \dau\gl? \tiret 1813.02.16, \dau.
+\itemitem{} Marriage with Marie-Anne Solomon:\th 1768.08.23, Wittersheim.
+\itemitem{} Father of Daniel \ml.
+%
+\vskip1.5pt\nin
+%
+\lineb
+%
+\vskip5pt\nin
+%
+\kern -1.4pt{\bffourteen Schmulen Solomon}, ca.\ 1744, \dau\gl? \tiret 1806.05.21, \dau.
+\itemitem{} Marriage with Fromet David:\th 1774.08.16, Mommenheim.
+\itemitem{} Father of David \wr.
+%
+\bni
+%
+\centerline{\bf Generation 3}
+\sni
+ \kern -1.4pt{\bffourteen Daniel \ml}, ca.\ 1770, \dau\tiret 1855.09.20, \dau.
+ \itemitem{} Marriage with Caroline Apfel, ca.\th 1798.
+\itemitem{} Father of Solomon \ml.
+%
+\vskip1.5pt\nin
+%
+\lineb
+%
+\vskip5pt\nin
+%
+\kern -1.4pt{\bffourteen David \wr}, ca.\ 1783, \dau\tiret 1857.03.09, \dau.
+\itemitem{} Marriage with Sophie Lang:\th 1807.03.24, Traenheim.
+\itemitem{} Father of Gottschau \wr.
+%
+\mni
+%
+\centerline{\bf Generation 4}
+\sni
+ \kern -1.4pt{\bffourteen Solomon \ml}, 1804.04.15 [25
+Germinal XII], \dau\tiret 1865.11.08, \dau.
+\itemitem{} Marriage with Marie Kling:\th 1835.07.07, \dau.
+\itemitem{} Father of Caroline \ml\ and of Pauline \ml.
+%
+\vskip1.5pt\nin
+%
+\lineb % want this on page 3
+%
+\vskip5pt\nin
+%
+\nin
+%
+\kern -1.4pt {\bffourteen Gottschau \wr}, 1830.12.27, \dau\tiret 1905.04.19, Pfaf\-fen\-hof\-fen.
+\itemitem{}Husband of Caroline \ml\ \(Generation 5\) and father of Pauline \wr.
+%
+\bni
+%
+\centerline{\bf Generation 5}
+\sni
+ \kern -1.4pt{\bffourteen Caroline \ml}, 1838.10.22, \dau\tiret 1908.11.27, \pfa.
+\itemitem{}Marriage with Gottschau \wr\ \(Generation 4\):\th 1861.12.11, \dau.
+\itemitem{}Mother of Pauline \wr.
+%
+\vskip1.5pt\nin
+%
+\lineb
+%
+\vskip5pt\nin
+%
+\kern -1.4pt{\bffourteen Pauline \ml}, 1849.09.17, \dau\tiret 1933.04.13, \mar.
+\itemitem{}Marriage with Nathan \we:\th 1872.06.21.
+\itemitem{}Mother of Lazare \we.
+%
+\bni
+%
+\centerline{\bf Generation 6}
+\sni
+ \kern -1.4pt{\bffourteen Pauline \wr}, 1878.04.17, \pfa\tiret 1951.07.24, Paris.
+\itemitem{} Marriage with Lazare \we:1909.04.14.
+ \itemitem{} Mother of Coralie \we.
+%
+\mni
+%
+ \kern -1.4pt{\bffourteen Lazare \we}, 1880.11.25, \mar\tiret 1968.01.10, Paris.
+\itemitem{} Father of Coralie \we.
+ %
+\bni
+%
+\centerline{\bf Generation 7}
+\sni
+ \kern -1.4pt{\bffourteen Coralie \we}, 1910.03.21, \mar\tiret 1995.08.07, New York.
+\itemitem{} Marriage with Albert Herz:\th 1936.02.03, \mar.
+%
+\vskip1.5pt\nin
+%
+\lineb
+%
+\vskip5pt\nin
+%
+The book starts off with an explanation of the system used throughout the book to precisely identify
+ancestors. This is followed by a list of the symbols, initials and most common references used.
+%
+\mni
+%
+Next comes a list of all the known or possible ancestors of \cw. This list includes three six times
+great-grandparents of Coralie \wl, people who
+were probably born around the middle of the sixteen-hundreds, perhaps during the devastating thirty-years war
+\(1618\tiret 1648\).
+%
+\mni
+%
+After the list are the seven chapters corresponding to the seven people listed in the chart at the beginning
+of
+this introduction. Each chapter starts with several charts showing the people discussed in the chapter.
+%
+\mni
+%
+Of special interest is the chapter dealing with the ancestors of Solomon \ml, which
+starts off with a discussion of all the resources and problems involved in doing research for that chapter.
+The end of the chapter on Madeleine Bloch deals with a purported link to several well-known families in
+Alsace, Germany, Austria and Switzerland. Because, in my opinion, the link is far from certain these latter
+people are {\it not\/} included in the list of ancestors.
+%
+\mni
+%
+As the title of the book indicates, our primary interest concerns the ancestors of \cw, i.e.\ in the
+ascending tree with \cw\ at the base. Because of this, the other children\tiret aside from the child who is
+also an ancestor\tiret are usually of secondary interest. If the names of other children are known, e.g.\
+from the 1808 change of name lists or from the pre-1792 marriage contracts or from the ten-year compilations
+of the civil acts after 1792, etc., then these are noted, but no special effort was undertaken to find all
+the children. Similarly if we came across a marriage act for another child this was noted and occasionally we
+ noted further children. Pierre Katz has done extensive research on the Weills of \mar\ and I have used his
+results for the children who were not direct ancestors of \cw.
+%
+%
+\par % seem to need (sometimes)
+%
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+%
+\vfill\eject
+%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.pdf
new file mode 100644
index 0000000000..681031fd07
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.tex
new file mode 100644
index 0000000000..695601b6af
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/presentation-symbols.tex
@@ -0,0 +1,182 @@
+% [presentation-symbols.tex]
+% The heading material has been removed for clarity.
+
+% notice the use of \llap to put the definition term (e.g. "dates") off to the left.
+% notice, around line 40) the use of the macro \ancestors#1#2#3 from [macros.mac]
+% notice the use of \[ -- \] and \(--\) from [format_XETEX.mac] to leave a little space
+% between the [ ] and the enclosed text.
+% notice the use of \sni (smallskip + noindent), \mni etc for spacing between certain portions
+% of the text
+
+
+ {\rm % 12.5pt
+%
+%
+\phantom{SOF}
+%
+\vskip -20pt\nin
+%
+ \centerline{\bfsixteen Presentation and Symbols}
+%
+\mni
+%
+{\leftskip = 70pt
+%
+\llap{\hbox to \leftskip{terminology\hfill}}
+If we consider the person called Solomon \ml, then:
+\sni
+The expression \lq given name\rq\ refers to Solomon. An equivalent expression is \lq personal name\rq.
+\sni
+The expression \lq family name\rq\ refers to \ml.
+\sni
+\item{}Note that a person can have several given names and because of the 1808 name changes they might also
+have a \lq former name\rq\ or perhaps even several former names.
+\mni
+The expression \lq name\rq\ refers to the combination, Solomon \ml.
+\mni
+\llap{\hbox to \leftskip{presentation\hfill}}
+\kern -3pt Each ancestor appears at least once in a \lq presentation\rq\ form. This is illustrated by
+the main entry for
+Solomon \ml\ (see below for the symbols and abbreviations used):
+%
+ \mni
+%
+\ancestor{\bffourteen Solomon \ml\star\former{Solomon Hirtzel}} {111\|12\fsl
+112\|12}{ 1804.04.15 \[25 Germinal XII\], \dau\tiret 1865.11.08, \dau\ \[AN, 1808,\th AM,\th AD,\th S\]}
+%
+\mni
+%
+ {\it Solomon Hirtzel\/} is the former, in this case the pre-1808, name of Solomon \ml.
+The names are followed by his identification number, birth and death dates\fsl places and a list of the
+documents that
+are available.
+%
+\sni
+Note that women are always referred to by their pre-marriage names. The spelling of names has been
+ standardized in the text e.g.\ Mantel\Th\EAA\kern-6pt Mandel; L\ae vi\Th\EAA\kern-6ptL\ae vy;
+Salmann\Th\EAA\kern-6pt
+Solomon\gl, etc.\gl. For an AM taken from \[Fraen-mar\] I have kept the original spelling.
+%
+\mni
+%
+% NO SPACE AFTER \HFILL}}
+\llap{\hbox to \leftskip{dates\hfill}}Dates are given in the format:
+{year{\bfsixteen.}month{\bfsixteen.}day},
+e.g.\ {1811.03.19} for March 19, 1811.
+\sni
+\item{} Note also that numbers less than 10 are written with a 0 before
+the number, i.e.\ the above date is {\it not\/} written as {\tt 1811.3.19}\gl. [This format provides a means
+of listing the files in a directory of the DVD in the correct chronological order].
+% explanation too long . I put the rest after \bye
+%
+\sni
+%
+Often it is not clear, or not indicated, if the date on a document is the actual date of an event (e.g.\ AD)
+or the date when the event was reported. Thus dates indicated may be off by a few days.
+%
+\sni
+%
+Starting on September 22, 1792 [\th 01 vend\ae miaire of year I\th] until January 01, 1806 [\th 11
+niv\co se of year
+XIV\th]
+the French Republican calendar was in effect.\HTML\ If a document was written in the period covered by the
+French
+Republican
+calendar then the date corresponding to the usual calendar is listed first, followed by the Republican date
+in square brackets. For conversions and more information:
+%
+\item{}{\tteleven www.poissons52.fr/histoire/revolution1789/\kern -3pt\web}\break
+{\tteleven calendrier\unl v.php}
+%
+\vfill\eject
+%
+\nin
+%
+\llap{\hbox to \leftskip{\star\hfill}}There is a special section devoted to this person.
+%
+\mni
+%
+\llap{\hbox to \leftskip{ca.\hfill}}Circa, used when an educated guess can be made concerning
+a date. E.g.\ the age of a deceased person might appear on the death certificate, without the actual year of
+birth being given. The estimated date of birth is obtained by subtraction, but this might be off by one or
+more years.
+%
+\mni
+% handbook, p. 497 , before and after e.g.
+\llap{\hbox to \leftskip{b. \hfill}}Before the date, e.g.\ b.\gl 1808 is used when the person is not listed
+in
+the change of name registers of 1808 (\gl [1808]\th, [Katz-1808]\gl) and there is reason to believe that they
+were no longer alive. This information should be used with caution, because the person may have changed
+domicile.
+%
+\mni
+% handbook, p. 497 , before and after e.g.
+\llap{\hbox to \leftskip{a. \hfill}}After the date, e.g.\ a.\gl 1784 is used when the person is not listed in
+the census of 1784 (\gl [1784]\gl) and there is reason to believe that they had not yet been born. This
+information should be used with caution, because of the great variation in names between 1784 and 1808, etc.
+%
+\mni
+%
+% handbook, p. 497 , before and after e.g.
+\llap{\hbox to \leftskip{*\hfill}}No information, used, e.g., when a first or last name
+or a date is missing.
+%
+\mni
+%
+\llap{\hbox to \leftskip{ ?,\Th ??,\Th ???\hfill}}These indicate respectively, \lq not absolutely
+certain\rq, \lq educated guess\rq, \lq wild guess\rq. These are not employed on the charts or on the list of
+all the ancestors.
+%
+\mni
+%
+% o.k. with 1 arrow here, but if put at end it prints almost the entire cmsy10 table!
+%
+\llap{\hbox to \leftskip{ !,\Th !!,\Th !!!\hfill}}These indicate respectively,
+\lq does not seem right\rq, \lq hard to believe\rq, \lq truly unbelievable\rq. These reflect such
+things as disparate ages of children, etc.\gl.
+%
+%
+% skip I do not think that I use for descendants
+%
+% with the arrows it separated the (previously longer) sentence with a large gap.
+% SO LEAVE THIS \VSKIP!
+%
+%\llap{\hbox to \leftskip{\SEA\Th\NA\kern -4pt\EA\hfill}}
+%\llap{\hbox to \leftskip{\EA\Th\EAA\hfill}}Used in lists to indicate descendants.
+%\raise 1truept\hbox{\kern -3pt Arrows point to another location
+%on the page.}
+%
+\mni
+%
+\llap{\hbox to \leftskip{\bften DVD\hfill}}The AN, AM, AD that are mentioned in the text
+appear on the accompanying DVD. The symbol\ DVD\ is used with other documents, images etc.\ to
+indicate that they too appear on the DVD.
+\mni
+%
+\llap{\hbox to \leftskip{\bften HTML\hfill}}Used to indicate that a topic can be accessed on the DVD from
+the
+HTML page:\Th
+% I changed to lc. to match web sites
+{\ttten symbols\unl sources\unl references\unl etc.html}\gl.
+%
+\mni
+%
+\llap{\hbox to \leftskip{\web\hfill}}Used with long web addresses to indicate that the
+address is continued on the next line.
+\mni
+%
+\llap{\hbox to \leftskip{\square\hfill}}Information, e.g.\ from a web page, which I was unable to verify via
+documents, texts, etc.\gl. %
+%
+\pni
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+%
+\vfill\eject % do not want extra page
+%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.pdf
new file mode 100644
index 0000000000..cff9ae3fa0
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.tex
new file mode 100644
index 0000000000..7c08363b96
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/GENEALOGICAL-TEXTS/source.tex
@@ -0,0 +1,393 @@
+% [sources.tex]
+% switch to XETEX
+% 2017.12.29 I fixed offset + topskip + footers etc
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+\input my_fonts.mac % libertine etc
+\input format_XETEX.mac
+\input unicode_defns_[XETEX].mac
+\input macros.mac
+\input ancestors.mac
+
+\input pstricks % need for centring
+\input epsf % need for importing eps
+
+%%%%%%%%%%%%%%%% END INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt % p. 156
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein
+\pdfpagewidth= 8.5truein
+
+\vsize = 8.50 in
+{\hsize = 5.94 in
+
+\voffset = 0.5 truecm %1.0truecm
+\hoffset = 0.70truecm
+
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+% =======> 3 CHANGES TO MAKE <=========
+
+ \nopagenumbers
+
+ \pageno = 6 % 3 CHANGES TO MAKE
+
+ % this footer puts a page number in bold at the bottom of each page, EXCEPT FIRST
+ \footline =
+ {\ifnum \pageno = 6% do nothing <== keep with false #
+ \else
+ {\centerline{\bf \folio}} % centerline closes here for page #
+ \fi} % this matches \ifnum
+ %
+ %
+% this header puts the title on each page except "1"
+% SINCE JUST \else do not put \else{ }; it does not work!!
+\headline =
+ {\centerline
+ { \ifnum \pageno = 6 % do nothing <== keep with false #
+ \else {\bfthirteen Sources}
+ \fi} % this matches \ifnum
+ } % this matches \centerline
+
+
+%%%%%%%%%%%%%%%%%%%% END FOOTERS AND HEADERS % %%%%%%%%%%%%%%%%%%%%
+
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+
+
+{\rm % rm, bf ... = 12.5pt (\it =13.0pt) in [fonts.mac]
+%
+{\verysmall .}
+%
+\vskip -20pt\nin
+%
+\centerline{\bftwenty Sources}
+%
+\mni
+%
+ \centerline{\bf Photographs and Signatures}
+ %
+\mni
+%
+{\leftskip = 78pt
+%
+\llap{\hbox to 1.0\leftskip{[P]\hfill}}There is a photograph of the person on the DVD.
+
+%
+\mni
+%
+\llap{\hbox to 1.0\leftskip{[S]\hfill}}Some of these appear in the texts, others are on the DVD.
+\par} % end 78pt NO SPACES BETWEEN ALLOWED!!!
+%
+\bni%
+%
+ \centerline{\bf Archival Sources}
+ %
+\mni
+%
+{\leftskip = 78pt
+%
+\mni
+%
+\llap{\hbox to \leftskip{\[ABR\]\hfill}}Archives du Bas-Rhin:\Th {\tteleven etat-civil.bas-rhin.fr/adeloch}\gl
+.
+\item{} See the end of this section for the documents from the ABR that were consulted for this study.
+%
+\mni
+%
+\llap{\hbox to 1.0\leftskip{\[TD\]\hfill}}The ten year summaries of births, marriages and deaths created in
+all
+French municipalities. Normally the first TD covers the period from 1793 to the year X \(1802\), but
+sometimes\tiret as is the case with \dau\tiret the TD is missing:\Th French
+\({\it Table d\ae cennale\/}\). % checked in multi
+ %
+\mni
+%
+\llap{\hbox to 1.0\leftskip{\[AM\]\hfill}}Marriage certificate:\Th French \({\it Acte de mariage\/}\).
+%
+\mni
+%
+% % 1 r et 1 g!
+\llap{\hbox to 1.0\leftskip{\[AD\]\hfill}}Death certificate\fsl newspaper\fsl other source:\Th French
+\({\it Acte de d\ae c\ge s\/}\).
+%
+\mni
+%
+\llap{\hbox to 1.0\leftskip{\[1808\]\hfill}}Document showing the adoption of a civil name in 1808:\Th French
+({\it Chan\-ge\-ment de nom\/}); see also \[Katz-1808].
+%
+\item{}Napoleon required all the Jews in Alsace to take a civil name. These documents provide a means of
+obtaining the former names of ancestors. In addition these documents often provide us with the signatures of
+ancestors.
+%
+\par} % end 78pt NO SPACES BETWEEN ALLOWED!!!
+ %
+ %
+\bni
+%
+ \centerline{\bf Printed Sources}
+%
+\mni
+%
+N..B.\ These are listed in approximately the chronological order of the contents.
+\mni
+%
+{\leftskip = 78pt
+%
+%
+\llap{\hbox to 1.0\leftskip{\[Fraen--mar\]}}Fraenckel, A., 1997. {\it M\ae moire juive en
+Alsace\fsl Contrats de marriage au
+XVIII\th$^{\hbox{\itten \ge me}}$ si\ge cle\/}. Strasbourg:\th \char201ditions du Cedrat.
+% Univ Pennsylvania, 2010.}
+%
+\sni
+%
+\llap{\hbox to 1.0\leftskip{{ }\hfill}}In 1701 Louis XIV ordered the creation of notarized Jewish
+marriage contracts \[see the discussion of a possible reason for this on \[Fraen--mar,\th p.\th xiii,\th
+bottom\].
+The contracts in question are not the {\it Ketoubas\/} issued by the rabbi at the moment of the
+actual wedding ceremony, but are rather pre-nuptial agreements.
+%(see the articles by Fraenckel and Warschawski).
+Fraenckel examined over 5000 of these contracts and in this book he
+gives, for each contract, all the names mentioned and the dowries involved.
+\sni
+ As Fraenkel, \[p.\th xiv\], points out, there are relatively few
+contracts from the beginning of the 1700s;
+only three for the period 1701\tiret 1720 and fifty-one for the period 1721\tiret 1730. Even after 1730
+there were most likely couples who did not have a contract, or perhaps the contract has been lost. This
+explains why I was not able to find marriage contracts for all the ancestors. However, even when I could not
+find a contract for the parents, I was sometimes able to determine one or both names by
+statements of the form, \lq\gl X, daughter of Y\gl\rq. In some cases the grandparents could be
+identified by statements of the type: \lq X, daughter of Y, son of Z\gl\rq.
+\sni
+Despite the lacuna in the AM, % yes Gage
+Fraenkel's incredible work has allowed us
+to push even further back than the information available in \[1808\] and \[1784\].
+\sni
+%
+In 1791 Jews were made citizens and Fraenckel \[p.\th xiii\] gives that year as marking the
+end of
+these acts.
+However, one of the AM dates from 1792.09.01 \(\[118,\th j\]\). This was just before the beginning of year
+I of the Revolutionary Calendar on 1792.09.22, but civil documents did not start until year II.
+I suspect that this 1792 document was created because of the uncertainty as
+regards the rules in effect.
+%
+\sni
+% Gage, p 776 notary, notaries
+Fraenkel's book is organized first by towns and then by notaries. Within each section the AM follow a
+chronological order. That is why \[Fraen-index\] is a necessity for doing research.
+The acts
+ usually give both the civil and Jewish dates, but sometimes the two sets of dates do not agree.
+Perhaps a
+rabbi wrote a Jewish date and then the notary used the date on which he registered the act. If only a Jewish
+date is given I converted it using the following web site:
+\sni
+\itemitem{}{\ttten www.hebcal.com\fsl converter}
+\sni
+It is not always clear if a \lq name\rq\ is a given name, a family name, a second given name or even an
+alternative given name.\HTML\ Fraenckel puts such unclear names in
+double carets \<<\en\>>. Here is how Alexandre Weil is described on his 1786 AM
+\(\[Fraenckel-mar,\th 117h\]\)\gl:
+\sni
+{\leftskip = 100pt
+ \rightskip = 55pt
+ {\bf Alexandre} \<<{\bf Zyskind}\>>\ fils de {\bf Naftaly} \<<{\bf Hirzel}\>>\ fils de
+feu {\bf Yechaya}, \mar.
+\par}
+\sni
+I follow this same format when giving the details of an AM.
+% I moved older material to after \bYe
+%
+\mni
+%
+ \llap{\hbox to 1.0\leftskip{[Fraen--index]}}Leeson, R., Leeson, D. 1999. {\it Index
+de M\ae moire juive en Alsace\fsl Contrats de marriage au XVIII\th$^{\hbox{\itten \ge me}}$
+si\ge cle par A.\ A.\ Fraenckel}. Paris:\Th Cercle de G\ae n\ae alogie Juive.
+% Univ Pennsylvania 2010
+%
+\sni
+%
+\llap{\hbox to 1.0\leftskip{{ }\hfill}}The book is divided into six main indexes and this facilitates
+ finding
+people in Fraenckel's book.
+\par} % end 70pt NO SPACES BETWEEN ALLOWED!!!
+%
+% CAN NOT SPLIT 1784 ON TWO PAGES SO i SWITCHED
+%
+%\vfill\eject
+%
+% START AGAIN ON THE NEXT PAGE
+\nin
+{\leftskip = 78pt
+%
+\mni
+%tt
+\llap{\hbox to 1.0\leftskip{\[1784\]\hfill}}{\it D\ae nombrement g\ae n\ae ral des
+juifs, qui sont
+tol\ae r\ae s en la province d'Al\-sace, en
+ex\ae cution des lettres-patentes de Sa Majest\ae , en forme de r\ge glement, du 10 juillet
+1784\/}. Reprint:\Th Strasbourg, W. Fischer, 1975.
+\item{}According to the summary table at the end of the book the census counted 3910 families with a total
+of 11,162 individuals.
+\sni
+\item{} The content of the census is also
+available on-line:
+ %
+ \sni
+ %
+% %% \spaceskip = 1.2pt
+\itemitem{}{\ttten ngj.vjf.cnrs.fr/BdeD/1784/ngjconsult1784.php}
+%
+\vfill\eject
+%
+\nin
+\item{}See also:
+\item{}Leeson, Daniel. 1993. {\it Quatre tables alphab\ae tiques du D\ae nom\-bre\-ment
+g\ae n\ae ral des juifs d'Alsace, 1784\/}. Teaneck, New Jersey:\Th Avotaynu.
+%
+\mni
+%
+\llap{\hbox to 1.0\leftskip{\[Katz--1808\]\hfill}}{\it D\ae clarations de prise de nom
+patronymique des Juifs du Bas-Rhin en 1808\/}, 4 vols. Paris:\Th
+Cercle de G\ae n\ae alogie Juive, 1995.
+%
+\mni
+\llap{\hbox to 1.0\leftskip{\[Katz--W+W\]}}Geneaologies of the
+Weill families from Marmoutier and the Weiller families from Dauendorf,
+prepared by
+Pierre Katz of Marmoutier, 2000, second version 2004.
+\par} % end 70pt NO SPACES BETWEEN ALLOWED!!!
+%
+% END OF \LLAP
+%
+\mni
+\centerline{\bf Other Books and References}
+\mni
+Some of the sections of the book have references which are specific to that section. Other material of
+interest is listed in the \lq bibliography\rq\gl\HTML\gl.
+\vskip12pt\nin
+%
+\lineAA
+%
+\vskip12pt\nin
+\centerline{\bffourteen Sources Consulted at the ABR}
+\mni
+One of the requirements in the agreement for the use of documents from the ABR is an identification of the
+documents. The identification system involves many digits and letters\tiret see the
+examples below\tiret
+and given the large number of documents involved, both in this book and on the accompanying DVD, the use of
+this
+format for each and every document would result in a huge and incomprehensible set of
+data. Thus in the interest of satisfying the requirement, and at the same time providing a clearer picture
+of
+what was consulted, I will present here a
+step
+by step proceedure for {\it precisely identifying\/} the source of each and every document used:
+\mni
+Consider the first document that appears in the section on \gw, which has the title:
+\sni
+\item{} 1861.12.11, AM:\Th Signatures of Caroline \ml\ \&\ Gottschau \wr.
+\sni
+Right above this we read, concerning this couple:
+\sni
+\item{}{\tt Marriage}:\Th 1861.12.11, \dau\ \[AM\].
+\sni
+From this we learn that we are dealing with an AM that took place in \dau\ on 1861.12.11. We thus have
+all the information that we need to retrieve and identify the document, viz.\ the town, the type of document
+and the date
+of the document. The next step is to consult the following web page:
+\sni
+\itemitem{}{\ttten http://archives.bas-rhin.fr/registres-paroissiaux-et-}\web
+\vskip -3pt\nin
+\itemitem{}{\ttten {docu\-ments-d-etat-civil\fsl}} % keep together
+\mni
+\item{1.} In the box that appears we type \lq \dau\rq\ and click on {\it rechercher\/}.
+\sni
+\item{2.} At the bottom of the screen there are three choices of which only the second and third are of
+interest
+to us:
+\itemitem{} The {\it Tables d\ae cennales} are used to locate documents. Images in this book that are taken
+from a TD are identified as such by \[TD\].
+\sni
+\itemitem{} In our particular example it is a document that interests us and so we click on {\it Registres
+d'\ae tat civil\/},
+\sni
+\item{3.} A set of virtual books appears and we use the slider to go to the virtual book with
+{\it M\gl{\rm [}ariages{\rm ]} 1861\/} on the binding.
+\sni
+\item{4.} We click on the book and the agreement page opens and then we click on {\it accepter\/}.
+\itemitem{}One only has to
+do this once for a session, no matter how many towns and documents are consulted.
+\sni
+\item{5.} The screen now goes to the AM for 1861 and as a check we read:
+\itemitem{}\lq Dauendorf\Th -\Th Etat
+civil\Th -\Th Registre de mariages 1861\Th -\Th Original en mairie\rq\th
+\item{}written at the top of the page.
+\sni
+\item{6.}If, while still on the first page, we now look at the address bar of the browser we will see the
+identification of this page:
+\itemitem{}
+{\ttten http://archives.bas-rhin.fr/detail-document/ETAT-CIVIL-}\web
+\vskip -3pt
+\itemitem{}{\ttten C87-P1-R39188\#visio/page:ETAT-CIVIL-C87-P1-R39188-268240}
+\sni
+\item{7.} The desired AM is found on page 4 and {\tt 268240} is now replaced by {\tt 268243}. This is the
+desired identification number for the document that we were looking for.
+\sni
+This completes the proceedure and provides the precise identification of the page on which
+the document is found.
+%
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+\vfill\eject
+%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+
+
+A major difficulty in using the book is the question of \lq names\rq. To illustrate, my \lq full name\rq\ is
+Roger Morris Herz-Fischler. My \lq given names\rq\ (also called \lq personal names\rq) are Roger and Morris
+while \lq family name\rq\ (or \lq surname\rq\gl) is Herz-Fischler (created in 1983 by combining the family
+names of Eliane Herz and Roger Fischler. However,
+ % and Fraenckel uses two devices:
+% following GAGE pg 498 given name == personal name; surname == last name. I use "family name"
+%
+when we turn our attention to Jews living in eighteenth century Alsace
+For example, in his marriage contract of 1746, \[p.\th 109\], ancestor
+{\tt 111\|222\|2} is
+listed as Naftaly \<<Hirz\>>. As explained below \lq Naftaly\rq\ and \lq Hirz\rq\ could be considered as
+being essentially the same, the first being the Hebrew name and the second the Judeo-Alsatian equivalent.
+This ancestor seems \(according to [Katz--Weill\]\) to have been called Hertzel Scheyen. So perhaps
+\lq Hetzel\rq\
+ \(now a given name\) came from \<<Hirz\>>.
+\sni
+\itemitem{}Dates: Most of the time Fraenkel gives both a full civil date and a Hebrew date, but sometimes
+only a civil date is given (see e.g.\ the AM from Obernai starting on page 151) and sometimes only the year
+and the Hebrew date are given (e.g \[50h\] where Fraenkel has 1747, 6 Kislev 5508). Thus I suppose that
+Fraenkel has simply transcribed what was written. If we now look at \[80g\] Fraenkel has 1747.07.20, 8 Tamouz
+5507, whereas if we use an on-line calendar program \({\ttten www.hebcal.com\fsl converter}\) the civil
+date is given as 1747.06.14. The Gregorian calendar was already in use in Alsace. but the difference between
+the two civil dates is greater than the ten or eleven days difference between the julians and Gregorian
+calendars in the mid-1700s. I can not explain the difference and have just copied what Fraenkel gives. For a
+partial date such as 1747, 6 Kislev 5508, I have used the above converter
+ and written 1747\[.11.08\], 6 Kislev 5508.
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.pdf
new file mode 100644
index 0000000000..a8c6cd7737
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.tex
new file mode 100644
index 0000000000..6370f498d4
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--cover.tex
@@ -0,0 +1,234 @@
+% [cover_OCTAVE.tex] << [PAGE_FORM_2013.09.20.tex]
+% it sees a { or } someplace above IMPUT PSTRICKS! YET , NOTHING, i DO
+% NOT SEE ANYTHING IN THE MAC FILES
+% i PUT A { IN AT THE END AND IT STOPPED COMPLAINING
+
+
+
+% , 2014.01.21 [just correction of size of \rm, \it]
+% this has PSTRICKS commands at the end (I took out PDFTEX)
+% I have unchecked ff.
+% \input pstricks % need for centring
+% \input epsf % need for importing eps
+%
+% \hsize and \vsize changed here from Z. 2013.11.19
+% \hoffset and \voffset changed in [fonts.mac] from Z. 2013.11.19
+%
+% \ttnine added in at start to give name 2013.10.17
+%
+% I changed [GRAPHVIZ_PAGE_FORM.tex] (from HP) and added in forms
+% N.B rm, bf ... = 12.5pt, it = 13.0pt in [fonts.mac]
+% This page form contains:
+% 1. \input to the macro files
+%
+% 2. sample commands for headers and numbered footers
+% 3. dimensions which can be changed as desired.
+% a. \vsize = 21.6truecm; \hsize =15.1 truecm: gives 3.2cm margins all around
+% b. \phantom, \vskip to push down/up (13pt/-13pt)
+% c. \topglue 0pt to leave more space at the top
+% 4. the default fonts \rm, etc are set to 12pt (\it to 12.5pt) in [fonts.mac]; these can be
+% changed there
+% 5. a date stamp; put a % in front if not desired
+
+% 6. \input pstricks is commented out on 2005 (no pstricks)
+% the pstricks commands are after \bye
+% \input for using pstricks
+% a. sample commands for importing dot generated eps files
+% b. sample commands for importing eps files generated from "picture" files (png,jpg, etc)
+
+% 7. % the PDFTEX commands are after \bye
+
+
+%%%%%%%%%%%%%%%%%%%% INPUT OF *.MAC FILES %%%%%%%%%%%%%%%%%%%
+% CONTENTS OF THE FOUR *.MAC FILES
+% [ancestors.mac] abbreviations for people and places
+% [format.mac] shortcuts for horizontal and vertical spacings (\th,\mni), special symbols (\club)
+% [fonts.mac] fonts
+% [macros.mac] boxes, time stamp, fractions
+
+\input fonts.mac
+\input format.mac
+\input macros.mac
+
+% it sees a missing { or } someplace
+%%%%%%%%%%%%%%%%%%%% INPUT OF PSTRICKS (put % in front if not available)
+
+%%%%%%%%%%%%%%%% comment out on 2005 and for PDFTEX
+\input pstricks % need for centring
+\input epsf % need for importing eps%
+\vskip 1.5truecm % was 2.0
+%
+ \topglue 0pt % p. 156
+ \topskip -10truept % p. 141 % this works for my famille
+% following gives the date and time for preliminary versions
+
+%\printdate
+
+% DIMENSIONS FROM ZEISING FOR PDF
+\vsize = 8.14 truein % = 20.7 cm = 588 pt
+ % FOR 8.5 X 11
+ %\vsize = 21.6 truecm = 8.50 in
+ %{\hsize = 15.1 truecm = 5.94 in
+
+%%%%%%%%%%%%%%%%%%%%%%%% PAGE NUMBER %%%%%%%%%%%%%%%
+%
+\nopagenumbers
+%
+% %%%%%%%%%%%%%%%%%%%% END PAGE NUMBER. % %%%%%%%%%%%%%%%%%%%%
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+
+{\rm % rm, bf ... = 12.5pt (\it =13.0pt) in [fonts.mac]
+%
+\phantom{katz}
+%
+\vskip 3.5truecm %
+{\hugetimesbold % ptmb8t scaled 2400
+ \centerline{An Introduction to Octave}
+}
+%
+\vskip 0.75truecm % was 2.0
+%
+{\bigtimesbold % = ptmb8t scaled 2000
+\centerline{for High School and University Students}
+}% end \timesboldC
+%
+\vskip 1.5truecm % was 2.0
+%
+{\medtimesbold % = ptmb8t scaled 2000
+\centerline{Roger Herz-Fischler}
+}% end \timesboldC
+ %
+ %
+\vskip 7.0truecm % was 2.0
+%
+%
+{\meddemibold % = cmssdc10 scaled 2100
+ \centerline{Mzinhigan Publishing}
+}
+%
+\vskip 3 truept
+ \centerline{\epsfxsize = 5.0 truecm\epsfbox{mzinhigan3.eps}}
+%
+\vskip 12pt\nin
+%
+% %%%%%%%%%%%%%%
+\vfill\eject
+%%
+%
+\phantom{CIP}
+%
+\vskip 3truecm
+%
+\noindent%
+{\bf An Introduction to Octave for High School and University Students}
+\sni
+Copyright $\copyright$ Roger Herz-Fischler 2014
+%
+\vskip 12pt
+\noindent%
+% %
+ Permission is given to redistribute and modify this work on a
+ strictly non-commercial basis. Educational institutions and student
+ organizations may distribute the whole text or parts of the text
+ on a cost plus basis.
+%
+\vskip 12pt
+\noindent%
+Published 2014 by
+\smallskip%
+\noindent%
+Mzinhigan Publishing
+\smallskip%
+\noindent%
+340 Second Avenue, Ottawa, Ontario, Canada, K1S 2J2
+\smallskip%
+\noindent%
+% ca march 18.07.04 11:06
+e-mail: {\tt mzinhigan@herz-fischler.ca}
+\sni
+web site:\hskip 2.5pt {\tt http:\hglue 1.0pt/\hglue 1.0pt/\hglue 1.0pt web.ncf.ca\hglue 1.0pt/\hglue 1.0pt en493}
+\bigskip%
+\noindent%
+ ``Mzinhigan''
+is the word for ``book'' in the Odawa (Ottawa)
+dialect of Ojibwa. The logo is ``Mzinhigan'' written in the
+related Algonquin language of Cree---as spoken on the west coast
+of James Bay---using Cree syllabics.
+%
+\vskip 18pt
+\noindent%
+{\bf Library and Archives Canada Cataloguing in Publication
+%
+\vskip 6pt\nin
+%
+ISBN 978-0-9693002-9-8
+} % end \bf
+%
+\vskip 6pt\nin
+Due to drastic cutbacks at Library and Archives Canada, the classification
+information was not available at the time of printing.
+%
+\vskip 2.0 truecm
+\nin
+%
+ The following appears at the startup of Octave:
+%
+\mni
+%
+GNU Octave, version 3.6.4\pni
+Copyright $\copyright$ 2013 John W. Eaton and others.\pni
+``This is free software; see the source code for copying conditions.
+There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty'.\th''\pni
+%
+\sni
+Additional information about Octave is available
+at {\tt http://www.octave.org}
+\vskip 1.0 truecm
+\nin
+%
+Matlab is a trademark of The Mathworks, Inc.
+%
+
+{ % i PUT THIS IN AND IT STOPPED COMPLAINING
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+\vfill\eject
+%%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+
+
+
+% %%%%%%%%%%%%%%%%%%%%% FORMS % %%%%%%%%%%%%%%%%%%%%%
+
+% %%%%%%%%%%%%%%%%%%%%% PSTRICKS COMMAND % %%%%%%%%%%%%%%%%%%%%%
+% ==> TAKE OFF THE COMMENT SYMBOL (%) WITH THE PSTRICKS INPUT
+% \hsize = 4.95truein \bf = 12.5pt
+%
+\vskip 12pt
+ % this is the WIDTH of the imported graph,
+ \centerline{\epsfxsize = 4.5 truein\epsfbox{+++.eps}}
+\vskip 4 truept
+ \centerline{\bf ++++++ }
+%
+\vskip 12pt
+%
+ % this is the WIDTH of the imported graph,
+ \centerline{\epsfxsize = 4.5 truein\epsfbox{+++.eps}}
+\vskip 4 truept
+ \centerline{\bf ++++++ }
+%
+\vskip 12pt
+%
+% %%%%%%%%%%%%%%%%%%%%% PDFTEX COMMAND % %%%%%%%%%%%%%%%%%%%%%
+%
+% I took out
+
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.pdf
new file mode 100644
index 0000000000..2e2315fc55
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.tex
new file mode 100644
index 0000000000..099f9ecd2d
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE--table-contents.tex
@@ -0,0 +1,190 @@
+% [TABLE_CONTENTS_OCTAVE.tex]
+
+%%%%%%%%%%%%%%%%%%%% INPUT OF *.MAC FILES %%%%%%%%%%%%%%%%%%%
+% CONTENTS OF THE THREE *.MAC FILES
+% [format.mac] shortcuts for horizontal and vertical spacings (\th,\mni), special symbols (\club)
+% [fonts.mac] fonts%
+% [macros.mac] boxes, time stamp, fractions
+
+\input fonts.mac
+\input format.mac
+\input macros.mac
+
+\input pstricks % need for centring
+\input epsf % need for importing eps5.94 in
+
+ \topglue 0pt % p. 156
+ \topskip -10truept % p. 141 % this works for my famille
+
+\nopagenumbers
+%
+\vsize = 8.50 in
+{\hsize = 5.94 in
+ % FOR 8.5 X 11
+ %\vsize = 21.6 truecm = 8.50 in
+ %{\hsize = 15.1 truecm = 5.94 in
+\voffset = 1.0truecm % linux
+\hoffset = 0.70truecm % linux
+
+\topskip = 20 pt
+\baselineskip = 14pt % default = 12pt
+%%%%%%%%%%%%%%%%%%%%%%%% SOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\rm
+%
+%%Type .
+%\phantom{header}
+
+\centerline{ \bfsixteen Table of Contents} % title of section
+%
+\vskip 12pt
+%
+\item{}A \raise3pt\hbox{\star}, here and in the text, indicates a special topic. As indicated
+by the double star, section 18 involves a more complicated situation.
+%
+\vskip 12pt
+%
+\item{}Section 01:\phantom{A}\q A sample Octave session
+%
+%
+\vskip 12truept\nin
+%
+\item{}Section 02:\phantom{A}\q Common functions
+%
+\vskip 12truept\nin
+%
+\item{}Section 03:\phantom{A}\q Defining your own functions
+%
+\vskip 12truept\nin
+%
+\item{}Section 04:\phantom{A}\q Vectors -- basic concepts
+%
+\vskip 12truept\nin
+%
+\item{}Section 05:\phantom{A}\q Functions of vectors; data analysis;
+statistics, part 1
+%
+\vskip 12truept\nin
+%
+\item{}Section 06:\phantom{A}\q Vectors of indices; products of elements
+%
+\vskip 12truept\nin
+%
+\item{}Section 06A:\q Pick a number, part
+1\th\raise3pt\hbox{\star}
+%
+\vskip 12truept\nin
+%
+\item{}Section 07:\phantom{A}\q Graphing
+%
+\vskip 12truept\nin
+%
+%
+\item{}Section 08:\phantom{A}\q Finding the roots of a polynomial and the
+zeros of a function
+%
+\vskip 12truept\nin
+%
+\item{}Section 09:\phantom{A}\q Working with vector logic
+%
+\vskip 12truept\nin
+%
+%
+\item{}Section 10:\phantom{A}\q Matrices; statistics, part 2
+%
+\vskip 12truept\nin
+%
+%
+\item{}Section 11:\phantom{A}\q Simultaneous equations
+%
+\vskip 12truept\nin
+%
+%
+\item{}Section 12:\phantom{A}\q Programs; for-loops
+%
+\vskip 12truept\nin
+%
+\item{}Section 13:\phantom{A}\q More on for-loops
+%
+%
+\vskip 12truept\nin
+%
+\item{}Section 14:\phantom{A}\q Conditional statements; input from the keyboard
+%
+\vskip 12truept\nin
+%
+\item{}Section 15:\phantom{A}\q While-loops; alphanumeric texts
+%
+\vskip 12truept\nin
+%
+\item{}Section 15A:\q Pick a number, part
+2\th\raise3pt\hbox{\star}
+%
+\vskip 12truept\nin
+%
+\item{}Section 16:\phantom{A}\q Binomial coefficients and
+probabilities\th\raise3pt\hbox{\star}
+%
+\vskip 12truept\nin
+%
+\item{}Section 17:\phantom{A}\q Tossing coins on a
+computer, part 1\th\raise3pt\hbox{\star}
+%
+\vskip 12truept\nin
+%
+%
+\item{}Section 18:\phantom{A}\q Tossing coins on a
+computer, part 2\th\raise3pt\hbox{\star}\raise3pt\hbox{\star}
+%
+\vskip 12truept\nin
+%
+%
+\item{}Section 19:\phantom{A}\q Statistics, part 3;
+bar graphs
+%
+\vfill\eject
+%
+\phantom{bar graphs}
+\vskip 3.0truecm
+\centerline{\bf Typographical notes}
+\mni
+This book was set in pure \TeX.
+\mni
+The main part of the text is set in ``ptmr8t at 12.5pt'' (Times with the 256 character Cork
+encoding). Bold and italics were ``ptmb8t at 12.5pt'' and ``ptmri8t at 12.5pt''
+ respectively.
+ \mni
+ Programs and Octave output are set in ``cmtt10 at 12.5pt'' (Computer Modern typewriter,
+i.e.\ equally spaced, type).
+\mni
+Graphs were saved in *.eps (\gl``encapsulated postscript\gl'') format and imported using
+\TeX\ and PSTricks commands of the form: % yes PSTricks
+\mni
+ % this is the WIDTH of the imported graph,
+ \centerline{
+ %
+ \bsl centerline\lbr\gl\bsl epsfxsize\th = \th 11.0 truecm\bsl
+epsfbox\lbr birthday\_\gl connected.eps\rbr\rbr\rbr
+ %
+ }% end centerline
+% %
+\bni
+%
+The diagram in section 17 was drawn using the \TeX\ and PSTricks commands:
+\sni
+{\leftskip = 1.0truecm
+\bsl hskip 2.7truecm\sni
+\bsl psline[linewidth\th =\th 5pt](0,\th 0)(4,\th 0)\sni
+\bsl psline[linewidth\th =\th 2pt](4,\th 0)(10,\th 0)
+\par}
+%
+\mni
+Special spacing and font macros were written by the author and imported into the \TeX\ files.
+\mni
+%
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+\vfill\eject
+%%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.pdf
new file mode 100644
index 0000000000..e4ba9d1409
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.tex
new file mode 100644
index 0000000000..62a4a8da21
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-02--common-functions.tex
@@ -0,0 +1,201 @@
+% [INTRO_OCTAVE_02.tex] <[FORM_INTRO_OCTAVE.tex] 2014.06.29
+% This IS the modified form from <ma famille>
+% The sections heading are those of 52 [sect-01.tex]
+
+
+
+%%%%%%%%%%%%%%%%%%%% INPUT OF *.MAC FILES %%%%%%%%%%%%%%%%%%%
+% CONTENTS OF THE THREE *.MAC FILES
+% [format.mac] shortcuts for horizontal and vertical spacings (\th,\mni), special symbols (\club)
+% [fonts.mac] fonts%
+% [macros.mac] boxes, time stamp, fractions
+
+\input fonts.mac
+\input format.mac
+\input macros.mac
+
+\input pstricks % need for centring
+\input epsf % need for importing eps5.94 in
+
+ \topglue 0pt % p. 156
+ \topskip -10truept % p. 141 % this works for my famille
+
+\nopagenumbers
+ \pageno = 5 %
+\headline = {\centerline
+ {\running \ifnum \pageno > 5 Section 02: Common functions
+ \fi}
+ } % end headline
+% the foot line appears on the first page of the section
+ \footline = {\centerline
+ {\ssi \folio }
+ } % end footer
+%
+\vsize = 8.50 in
+{\hsize = 5.94 in
+ % FOR 8.5 X 11
+ %\vsize = 21.6 truecm = 8.50 in
+ %{\hsize = 15.1 truecm = 5.94 in \pni
+\voffset = 1.0truecm % linux
+\hoffset = 0.70truecm % linux
+
+\topskip = 20 pt
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% SOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\rm
+%
+%%Type .
+%\phantom{header}
+
+\centerline{\bfsixteen Section 02: Common functions} % title of section
+%
+\vskip 12pt
+%
+\centerline{\bf Trigonometric functions}
+\mni
+{\bf sin({\tt a})}, {\bf cos({\tt a})}, {\bf tan({\tt a})}.\q [{\tt a} is
+measured in radians, multiply by ${180}\over{\pi}$ for degrees]
+%
+\bni
+%
+\centerline{\bf Logarithmic functions}
+\mni
+%\pni
+The ``natural logarithm'', usually written ln({\tt a}): {\bf log({\tt
+a})}
+\pni
+The logarithm to the base 10: {\bf log10({\tt a})}
+%
+\bni
+%
+ \centerline{\bf pi, e, complex numbers}
+%
+ \sni
+%
+ {\bf pi}
+%
+ \sni
+%
+{\bf e}: the base of the ``natural logarithm''
+%
+\sni
+%
+{\bf i}: $\sqrt{-1}$
+%
+% FORM FOR OUTPUT
+\mni
+%
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE SPACE
+octave:1> {\bf pi}
+\qq\q ans = 3.1416
+\%
+\%\qq e, the base of the ``natural logarithm''
+octave:1>{\bf e}
+\qq\q ans = 2.7183
+\%
+\%\qq always use {\bf (\en )}, even when not strictly necessary
+octave:2> (e){\bf \^{}}(2)
+\qq\q ans = 7.3891
+\%
+\%\qq square root of a negative number
+octave:3> {\bf sqrt(}-5{\bf)}
+\qq\q ans = 0.00000 + 2.23607i
+\%
+\%\qq cube of a complex number
+octave:5> (2 -5i){\bf\^{}}(3)
+\qq\q ans = -142 + 65i
+} % end \tt % for programs
+%
+\bni
+\centerline{\bf Displaying the answer}
+\mni
+Octave stores values to a very high degree of accuracy. If you
+want to see the answer to
+15 places, use {\bf format long}.
+%
+\mni
+%
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE usually writtenSPACE
+octave:3> format long
+octave:4> pi
+\qq\q ans = 3.14159265358979
+%
+} % end \tt % for programs
+\mni
+To show your answer in ``scientific'' (``floating point'') notation use:\pni
+{\bf format short e}\pni
+\qq or\pni
+{\bf format long e}
+\sni
+To show the answer to 2 decimal places, use:\pni
+{\bf format bank} [money in dollars and cents is shown to 2 decimal places]
+%
+\mni
+%
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE SPACE
+octave:6> format short e
+octave:7> 1/7
+\qq\q ans = 1.4286e-01
+\%
+octave:8> format long e
+octave:9> 1/7
+\qq\q ans = 1.42857142857143e-01
+\%
+octave:10> format bank
+octave:11> 1/7
+\qq\q ans = 0.14
+%
+} % end \tt % for programs
+\bni
+\centerline{\bf Absolute value, rounding the answer etc.}
+\mni
+ absolute value: {\bf abs}\gl({\tt a})\pni
+ round to the nearest integer: {\bf round}\gl({\tt a})\pni
+ round downwards: {\bf floor}\gl({\tt a})\q [=\th ``greatest integer function'']\pni
+ round upwards: {\bf ceil}\gl({\tt a})\pni
+ round towards 0 : {\bf fix}({\tt a})\pni
+% sign function: {\bf sign}({\tt a}). This takes on the values
+% 1,0,-1 %depending on whether {\tt a}> 0,
+% {\tt a}=0, {\tt a} < 0\th.\pni
+\sni
+The following function is not built-in;
+we will create it in the next section.
+\pni
+ \bibl decimal part: {\bf decimal}( )
+%
+\bni
+Octave has many more built-in functions, and we will see some of these when we talk about vectors
+and matrices.
+\bni
+%
+\centerline{\bf Try these}
+%
+\sni
+\item{1.} Find $\log_{10}\Bigl({10\,}^{271.6}\Bigr)$.
+\sni
+\item{2.} Compute ${10\,}^{0.5}$. Compare the answer with the Octave square root
+command:
+{\bf sqrt}(10).
+\sni
+\item{3.} Evaluate the numbers 2.71 and -2.71, first using the
+definitions of {\bf abs}, {\bf round}, {\bf floor},
+ {\bf ceil}, {\bf fix} and {\bf sign} and then by using Octave.
+%
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+\vfill\eject
+%%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.pdf b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.pdf
new file mode 100644
index 0000000000..4832a5e775
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.tex b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.tex
new file mode 100644
index 0000000000..0e8cf4d12a
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/TEXT-SAMPLES/OCTAVE--computer-program/INTRO-OCTAVE-07--graphing.tex
@@ -0,0 +1,278 @@
+% [INTRO_OCTAVE_07.tex]
+% Graphing
+
+%%%%%%%%%%%%%%%%%%%% INPUT OF *.MAC FILES %%%%%%%%%%%%%%%%%%%
+% CONTENTS OF THE THREE *.MAC FILES
+% [format.mac] shortcuts for horizontal and vertical spacings (\th,\mni),
+% [fonts.mac] fonts%
+% [macros.mac] boxes, time stamp, fractions
+
+\input fonts.mac
+\input format.mac
+\input macros.mac
+
+\input pstricks % need for centring
+\input epsf % need for importing eps5.94 in
+
+ \topglue 0pt % p. 156
+ \topskip -10truept % p. 141 % this works for my famille
+
+\nopagenumbers
+ \pageno = 17 %
+\headline = {\centerline
+ {\running \ifnum \pageno > 17 Section 07: Graphing
+ \fi}
+ } % end headline
+% the foot line appears on the first page of the section
+ \footline = {\centerline
+ {\ssi \folio }
+ } % end footer
+%
+\vsize = 8.50 in
+{\hsize = 5.94 in
+ % FOR 8.5 X 11
+ %\vsize = 21.6 truecm = 8.50 in
+ %{\hsize = 15.1 truecm = 5.94 in
+\voffset = 1.0truecm % linux
+\hoffset = 0.70truecm % linux
+
+\topskip = 20 pt
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%%%%%%%%% SOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\rm
+%
+%%Type .
+%\phantom{header}
+
+\centerline{ \bfsixteen Section 07: Graphing} % title of section
+%
+\vskip 12pt\nin
+%
+%
+% %%%%%%%%%%%%%
+Octave uses Gnuplot to do the graphing. One could learn how to use Gnuplot
+directly, but it is better to learn Octave and let it do the work.
+\mni
+The following example, in which we plot y = sin(x) and y = cos(x) on the
+interval [0\gl,\gl $\pi$]\gl, shows all the basic steps involved in plotting,
+labelling, and printing. There are many options, e.g.\ using dashed lines,
+label fonts and sizes,
+but one should first learn the basics. You should start with one function, then
+add a second function, then labels etc. You can play with line widths etc.\ to
+suit your taste.
+\mni
+%
+ % this is the WIDTH of the imported graph,
+ \centerline{\epsfxsize = 5.5 truein\epsfbox{graph1_fontweight-bold_fontsize-40.eps}}
+% % this is revised with 'fontweight-fontsize
+\bni
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE SPACE
+\%\qq first clear all preceeding graphs
+octave:1> {\bf clf} \% = ``clear function''
+\%
+\%\qq tell Octave the range of values of interest
+\%\qq the sine and cosine go from -1 to 1, but the graph
+\%\qq will be nicer if we go slightly below and above
+\%
+\%\qq draw the {\it Octave axes\/}, which show the values
+octave:2> {\bf axis(}[0 pi -1.2 1.2]{\bf)}
+\%
+\%\qq keep the Octave axes and all succeeding plots
+octave:3> {\bf hold}
+\%
+\vfill\eject
+\%\qq Draw the {\it real\/} x-axis from (0,0) to (0,pi)
+\%\qq a\th=\th [0 pi] gives the x coordinates of the x-axis
+\%\qq b\th=\th [0 0] gives the y coordinates of the x-axis
+\%
+octave:4> a = [0 pi]; \% {\it NOT\/} {\rm [0\th{\bf:}\th .001\th{\bf:}\th pi]}
+octave:5> b = [0 0];
+%
+\%\hskip 4.0truecm{\it FIRST}{\bf ,} {\it SECOND}
+\%\qq {\it ALWAYS\/}: {\bf plot(}\th {\it x-values\/}{\bf ,} {\it y-values}{\bf )}
+\%\qq increase the line thickness, by writing {\bf 'linewidth', 3}
+% yes points; see the final drawing, looks thick on screen
+octave:6> {\bf plot(}a,\th b\th ,\th 'linewidth',\th 3{\bf)}
+\%
+\%\qq now we are ready to plot the two graphs
+\%\qq give the x-values for the plot; use increments of .005
+octave:6> x = [0\th :\th {\bf .005}\th :\th pi];\qq \% could use .001
+\%
+\%\qq first graph y = sin(x); use y1 for the name of the vector
+octave:7> y1 = sin(x);
+\%
+\%\qq {\it we plot the y-values ({\tt y1}) against the x-values ({\tt x})}
+\%\qq {\it from now on graphs are thicker using {\bf 'linewidth', 5}}
+octave:8> {\bf plot(}x,\th y1,\th 'linewidth',\th 5{\bf)}
+\%
+\sni
+\% the same font descriptions were used)
+\%\qq second graph y = cos(x); use y2 for the name of the vector
+octave:9> y2 = cos(x);
+octave:10> {\bf plot(}x,\th y2,\th 'linewidth',\th 5{\bf )}
+\%
+\%\qq now add a title
+\%\qq the text is enclosed in apostrophes, {\it not\/} quotation marks
+\%\qq {\it from now on we use:\/} {\bf 'fontweight',\th "bold", 'fontsize',\th 20}
+% [20 points, 1cm $\approx$ 28 pts]
+octave:11> {\bf title('}sin(x)\th and\th cos(x){\bf '},\th'fontweight',\th "bold",
+\qq\q 'fontsize',\th 20{\bf )}\qq \% if the line is too long, push return
+\%
+\%\qq labels for the x and y axes, note ``xlabel'', not ``x-label''
+octave:12> {\bf xlabel('}domain = [0\th ,\th pi]{\bf')}
+octave:13> {\bf ylabel('}range = [-1\th ,\th 1]{\bf ')}
+\%
+\%\qq include a text to indicate the point of intersection
+\%\qq the text is placed at (.9\th ,\th .7) [obtained by trial and error]
+octave:14> {\bf text(}.9\th ,\th .7, 'sin(pi/4) = cos(pi/4){\bf ')}
+\%
+\%\qq save the graph in three formats:
+\%\qq 1.\en {\it png\/}:\th image, better than jpg
+\%\qq 2.\en {\it pdf\/}:\th for immediate printing
+\%\qq 3.\en {\it eps\/}:\th encapsulated postscript;\th for importing into a Latex file
+%
+\vfill\eject
+%
+\nin
+\%\qq specify the full name of the output file
+octave:15> {\bf print -dpng} graph1.png
+octave:16> {\bf print -dpdf} graph1.pdf
+octave:17> {\bf print -deps} graph1.eps
+%
+\%\qq check that the graphs are there using {\bf ls}\th =\th ``list''
+octave:18> ls *.png
+\qq\q {\it graph1.png\/}\qq \% yes, its there!
+} % end \tt % for programs
+%
+\mni
+%
+Above we plotted a continuous function, but the same holds for discrete data.
+The one difference is that to indicate that we just want to plot the points
+using a pentagon ("p") of large size 12 we add {\bf "p", "markersize",12} to the plot command.
+% Octave accepts 'p', markersize
+[Other options are
+"o"\en,\en "+"\en,\en "x"\en,\en "*", "h" (hexagon), "s" (square),\vbox to
+11.5truept {}"\gl{\bfsixteen \^{}}\gl" (triangle).]
+\sni
+To illustrate this we use the
+birthday probabilities from section 06A:
+\mni
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE SPACE
+octave:19> indices = [10\th:\th10\th:\th 60];
+octave:20> birthday\_\gl prob\th=\th [0.117\th 0.411\th 0.706\th 0.891\th 0.970\th 0.994];
+octave:21> plot(indices, birthday\_\gl prob,"p","markersize",12)
+} % end \tt % for programs
+%
+\mni
+% revised 2014.08.20
+% the data and commands are all in
+% [birthday_data_for_plotting.txt]
+ % this is the WIDTH of the imported graph,
+ \centerline{\epsfxsize =
+4.5 truein\epsfbox{
+birthday_not_connected_with_axes_linewidth-15_markersize-12_[unknown]-fontweight-bold_fontsize-40.eps
+ }}
+% trying to make bigger
+\mni
+%
+If in addition to placing the pentagons at the data points we wanted to
+connect them by a thin dashed line, all we would have to do is {\bf hold} the
+graph and then do a new plot which does not have the {\bf "p"} and {\bf ,"markersize",12} commands.
+We can make the line alternate between a dash and a dot by using the
+command {\bf 'linestyle, '-.'}. [Other options are '-\gl-'\en,\en ':'\en,\en '-'
+(solid).] Lines and curves can also be coloured.
+%
+\mni
+%
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE SPACE
+octave:22> {\bf hold}
+octave:23> plot(indices\th,\th birthday\_\gl prob\th,\th {\bf ''linestyle"\th,\th'-.'})
+}
+%
+\mni
+%
+ % this is the WIDTH of the imported graph,
+ \centerline{\epsfxsize =
+4.5 truein\epsfbox{
+birthday_connected_with_axes_linewidth-15_markersize-12_[unknown]-fontweight-bold_fontsize-40.eps
+ }}
+ %
+\mni
+%
+\bni
+\centerline{\bf Try these}
+%
+\mni
+\item{1.} Plot the graphs of $y =x^2,\en y=\sqrt{x},\en y =x$ on the same axes.
+Let
+$x$ vary between -0.5 and 2.5.
+\sni
+\item{}Print the line $y = x$ with dash marks using the command:
+\pni
+\item{}Plot(x,y, {\bf 'linestyle', '-\gl-'}) [note the apostrophes and the comma
+between the last two commands.]
+\sni
+\item{}Print the other two curves with a thicker line
+using the command:
+\pni
+\item{}
+plot(x, y, {\bf 'linewidth', 8}) [note the apostrophes and the
+comma between
+the last two commands.]
+\sni
+\item{}
+Put the labels ``x-axis'', ``y-axis''. The two functions are inverse functions
+of one another and are symmetric about the line $y = x$. Give the title
+``Inverse functions'' to the graph. Label the points of intersection of the two
+graphs.
+\mni
+\item{2.} Consider an isosceles triangle with angles A, B, A (in degrees) and sides a, b, a.
+\sni
+\item{i.} Create a function that determines the ratio ${b\over a}$ as a function of B.
+[suggestion: use the law of sines; you have to convert from degrees to radians.]
+\sni
+\item{ii.} Plot the ratio ${b\over a}$ as a function of B, as B varies from 1$^{\hbox{\rmten
+o}}$ to \vtop to 6pt{}179$^{\hbox{\rmten o}}$\gl. Check the answers at 1$^{\hbox{\rmten o}}$
+and 179$^{\hbox{\rmten o}}$ by
+making a sketch. Why were 0$^{\hbox{\rmten o}}$ and 180$^{\hbox{\rmten o}}$ not included?
+\sni
+\item{iii.} Above we used regular pentagons to mark the points. Use (i) to find the ratio of the
+diagonal of a regular pentagon to its side. [answer: see {\tt G} in section 08.]
+%
+% %%%%%%%%%%%%%%%%%%%%% KEEP THIS ENDING!!! % %%%%%%%%%%%%%%%%%%%%%
+\vfill\eject
+%%
+ } % ends \rm
+ \par} % ends \hsize
+ \bye
+
+\mni
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE SPACE
+} % end \tt % for programs
+\mni
+
+\mni
+{\tt % for programs
+\obeylines
+\parindent = 0pt
+\parskip = -1.0 pt %was-2.5pt THIS LEAVES MORE SPACE
+} % end \tt % for programs
+\mni
+
+
+
+
+
diff --git a/macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.pdf b/macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.pdf
new file mode 100644
index 0000000000..3b574734f2
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.pdf
Binary files differ
diff --git a/macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.tex b/macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.tex
new file mode 100644
index 0000000000..170054fa40
--- /dev/null
+++ b/macros/xetex/plain/do-it-yourself-tex/do-it-yourself-tex.tex
@@ -0,0 +1,314 @@
+% [do_it_yourself_tex.tex]
+% version of 2019.03.17
+
+%%%%%%%%%%%%%%%% XETEX INPUTS %%%%%%%%%%%%%
+% See [FORM_PLAIN.tex ] and the top of each macro file for
+% a discussion of the following
+
+\input format_XETEX.mac
+\input unicode_latin.mac
+\input macros.mac
+\input ancestors.mac
+\input additional.mac
+\input petr_olsak.mac
+\input my_fonts.mac
+\input pstricks
+\input epsf
+\input color
+%%%%%%%%%%%%%%%% END XETEX INPUTS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%% VARIOUS COMMANDS %%%%%%%%%%%%%
+
+\topglue 0pt
+\topskip 18pt
+
+\overfullrule=0pt
+\tracingoutput = 0 % file - minimum information ( =1 for full)
+\tracingonline = 0 % screen - minimum information ( =1 for full
+
+%%%%%%%%%%%%%%%% END VARIOUS COMMANDS %%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%% DIMENSIONS %%%%%%%%%%%%%
+\pdfpageheight=11truein % !!
+\pdfpagewidth= 8.5truein %!!
+
+\vsize = 8.50 in %!!
+{\hsize = 5.94 in %!!
+
+\voffset = 0.5 truecm %!!
+\hoffset = 0.70truecm %!!
+
+\baselineskip = 14pt % default = 12pt
+
+%%%%%%%%%%%%%%%%% END DIMENSIONS %%%%%%%%%%%%%
+
+%%%%%%%%%%% FOOTER & HEADER %%%%%%%%%%%%%%%%%
+
+% =======> 3 CHANGES TO MAKE <=========
+
+ \nopagenumbers
+
+ % in final versions
+ \pageno = 1 % 3 CHANGES TO MAKE
+
+ % this footer puts a page number in bold at the bottom of each page, EXCEPT FIRST
+ \footline = { % THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \ifnum \pageno = 1 % do nothing <== keep with false #
+ \else
+ {\centreline{\bf \folio}} % centerline closes here for page #
+ \fi % this matches \ifnum
+ }
+ %
+ % NO DATES HERE, ONLY IN TITLE
+\headline = {% THE FOOTLINE MATERIAL IS IN ENCLOSED IN {}
+ \centreline{ % CAN NOT PUT \centreline AFTER ELSE, FOULS UP!
+ \ifnum \pageno = 1 % do nothing <== keep with false #
+ \else
+ {\bfthirteen Do It Yourself Tex}
+ \fi % THIS MATCHES \IFNUM
+ } %THIS MATCHS CENTERLINE
+ } % THIS MATCHES { WITH \FOOTLINE
+
+%%%%%%%%%%%%%%%%%%%% END FOOTER AND HEADER %%%%%%%%%%%%%%%%%%%%%
+%
+% %%%%%%%%%%%%%%%%%%%% TEXT STARTS % %%%%%%%%%%%%%%%%%%%%
+%
+ {\rm % !! 12.5pt I like a larger font, defined in [my_fonts.mac]
+%
+%
+{\verysmall . } % !! 0.1pt used to move text up via \vskip -20pt\nin !!
+%
+\vskip -20pt\nin % \nin = \noindent, see [format_XETEX.mac]
+%
+\centreline{\bftwenty Do It Yourself Tex} % \bftwenty is defined in [my_fonts.mac]
+\mni
+\centreline{\rmfifteen March 17, 2019} % \centreline is defined in [format_XETEX.mac]
+\mni % \mni = \medskip\noindent
+\centreline{\rmfifteen Roger Herz-Fischler}
+\mni % unicode designation of ~
+\centreline{\ttten http://people.math.carleton.ca/\char"007E rhfischl/}
+%
+\vskip 15pt\nin
+
+{\baselineskip = 11pt
+\rmeleven
+%
+\centreline{C'est assez qu'ont ait vu par là qu'il ne faut point}
+\pni
+\hbox to 4.8truecm{} Agir chacun de même sort.
+\pni
+\hskip 5.6truecm{} \tiret La Fontaine \gl\fnotemark{1}
+%
+\par} % end of quote
+%
+\fnotetext{{\it Fables\/}, \lq L'Ane chargé d'éponges et l'ane chargé de sel\rq}
+%
+%
+\vskip 20pt\nin
+%
+%
+\centreline{\bffourteen Abstract}
+\mni
+This package consists of a collection of annotated and {\it easily modified\/} forms and macro files, together with concrete examples which are intended to illustrate how {\it plain\/} Xe\TeX\ can be employed to typeset even quite complicated
+documents. Various files illustrate how to directly use fonts of a specified type and size, how to find Unicode glyphs
+and how to call them for use, how to import images, use colour etc.\gl . Unicode tables of fonts and special glyphs \(arrows, geometric shapes \dots\) are included and an {\tt HTML} page provides direct links to font sources and further Unicode information.
+\mni
+A special section deals with right to left texts and the setting up of a unicode definition file which permits
+the input of a pointed \(i.e. with the inclusion of vowel symbols\) text from a Latin keyboard.
+\vskip 15pt\nin
+\centreline{\bffourteen Contents}
+\mni
+\item{1.} Raison d'\ce tre
+\mni
+\item{2.} Fonts and Unicode
+\sni
+\itemitem{} Sources for Fonts and Unicode \({\tt HTML}\)
+\mni
+\item{3.} Forms and macro files
+\sni
+\itemitem{} Images, colour and marginal notes
+\mni
+\item{4.} Text Samples
+\sni
+\itemitem{} Octave \(programming\) manual
+\sni
+\itemitem{} Genealogical texts
+\sni
+\itemitem{} Canadian aboriginal syllabics
+\sni
+\itemitem{}\[N.B.
+Further examples are available at the above web site\]
+\mni
+\item{5.} Right to Left Texts
+\mni
+\itemitem{} Texts in Hebrew, Arabic and ancient semitic scripts
+%
+\vfill\eject % avoid splitting "shell"
+%
+\item{6.} Shell files
+\sni
+\itemitem{} These include {\tt photos2eps}, {\tt reduce}, {\tt bak} and {\tt del} to
+quickly perform certain batch operations.
+%
+\vskip 18pt\nin
+%
+\centreline{\bffourteen Raison d'\ce tre}
+\mni
+I started off using plain \TeX\ in the 1980s and over the years I developed forms, shortcuts,
+font and font size definitions for use in my research books, teaching manuals, genealogical books etc.
+\mni
+In particular I would vary the font and the font sizes from text to text and even within a text. As an
+example, the present section headings are set in 14 point Libertine Roman Bold which is called by the command
+\bsl bffourteen. This
+is defined in the macro file \[my\unl fonts.mac\] as:
+\sni
+\centreline{ \bsl font\bsl bffourteen = \[\dots \fsl MY-FONTS\fsl LinLibertineRB.otf\] at 14.0 pt}
+\sni
+This definition leads to the unique directory MY-FONTS where I keep my fonts and also states the desired point size.
+As the need for a new font or font size arose, a simple copy and paste and a few changes sufficed to create the
+new definition.
+\mni
+The last paragraph illustrates some of the shortcuts that appear in the macro file \[format\unl XETEX.mac\]. Notice
+that where it reads \lq \[my\unl fonts.mac\]\rq\
+there is a little space \(in fact \bsl gl\) between the [\TH \] and \lq my\unl fonts.mac\rq\ and also
+before and after the underscore. Instead
+of writing the spacing commands I defined \bsl[, \bsl ] and \bsl unl. Further I defined \bsl bsl so that I could quickly
+typeset the commands themselves.
+\mni
+At one point, I told myself that I should learn La\TeX, but I became frustrated by the commands needed to change fonts and font sizes as well as spacings etc. It is obvious that there are some wonderful La\TeX\ packages; however even for importing images \(see Section 3\) I found that I could do it myself by writing simple shortcuts that I could quickly modify during trials and for different
+purposes.
+\mni
+It was only last year that I came across Petr Olšák's {\it OPmac\tiret macros for plain\TeX\/} and from it I learned how
+to create notes in the margin and a better way of creating tables. His manual inspired me to make my small contribution to
+the world of plain \TeX\ in the hope that it would prove useful.
+\mni
+My pedagogical philosophy \(see e.g.\ the {\tt Octave} manual in the {\it Text Samples\/} di\-rec\-to\-ry\) has always been to aim for
+clarity by avoiding
+the most general form of a command and by providing real examples. To this effect I have often made the commands visible in the
+PDF output\tiret see \[images\unl colour\unl marginal-notes.pdf\]\tiret and by annotating other commands in the \TeX\ file.
+%
+%\vskip 15pt\nin
+\vfill\eject
+\nin
+\centreline{\bffourteen Fonts and Unicode}
+\mni
+ Xe\TeX\ was created by Jonathan Kew in the 1990s with the idea of using Unicode based fonts. Thus, in order to facilate
+ the use of Xe\TeX, and to avoid a great deal of searching by users,
+ the directory {\tt FONTS+UNICODE} contains an {\tt HTML} page entitled {\it Sources\_for\ Fonts and Unicode.html\/}\th
+ which has direct links to various sites dealing with Unicode and sources of fonts. In addition there are two sub-directories; one
+ with tables for a selection of fonts and the other some Unicode tables \(e.g. arrows\) which I generated.
+ \mni
+ Xe\TeX, which works without the necessity of further manipulation of classical Tex documents,
+in turn has a further advantage as stated in connection with the CTAN package \lq xetex\rq:\Th \lq Xe\TeX’s im­me­di­ate out­put is an
+ex­tended vari­ant of DVI for­mat, which is or­di­nar­ily pro­cessed by a tightly bound pro­ces­sor (called xd­vipdfmx),
+that pro­duces PDF\rq, i.e. if you type: xetex file\unl 01.tex, you obtain: file\unl 01.pdf.
+ \mni
+Because of these advantages it is assumed in the following discussions that plain Xe\TeX\ is being used.
+ %
+\vskip 15pt\nin
+\centreline{\bffourteen Forms and Macro Files}
+\mni
+\[N.B. Because I work with so many \TeX\ files, often at the same time, I did not want to use the extension \lq tex\rq\ for what
+I refer to as macro files. I decided to use the extension \lq mac\rq. This, of course, can be changed to suit
+the user's taste.\]
+\mni
+This directory contains the following macro files; additional information is given at the top of each file.
+\mni
+%
+\item{} \[format\unl XETEX.mac\]. This contains a collection of shortcuts for spacings, special symbols, etc.\
+that I created over the years, e.g instead of repeatedly typing \bsl medskip\bsl noindent, I only have to type \bsl mni.
+\mni
+\item{} \[unicode\unl latin.mac\]. These provide for the entry of
+ French and German accented letters without switching keyboards;
+ e.g.\ typing \bsl ge will produce the \lq e-grave\rq\ letter \ge\gl. The same can be done
+ for other languages as the file \[unicode\unl hebrew.mac\]
+\mni
+\item{} \[macros.mac\]. These are macros with a specified text, e.g.
+\itemitem{} Typing
+\bsl infobox\lbr This is an information box\rbr\ produces:
+%
+\infobox{This is an information box}
+%
+\vskip -8pt\nin
+%
+\item{} \[ancestors.mac\]. This is included to suggest how one can save a great deal of
+ typing by using
+ abbreviations for repeated items.
+ \mni
+\item{} \[additional.mac\]. This contains \bsl printdate and \bsl raggedleft \(for right to left texts\).
+\mni
+\item{} \[petr\unl olsak.mac\]. This is a {\it verbatim\/} copy of
+Petr Olšák's {\it OPmac\tiret macros for plain\TeX\/}\tiret used here with his permission\tiret
+which was renamed to clearly indicate
+the author. The directory also contains a copy of his manual, again with the title changed.
+\mni
+%
+\item{} \[my\unl fonts.mac\]. This contains all the font definitions, e.g.\ \bsl bftwenty
+\mni
+In addition the directory contains the following forms and texts.
+\mni
+\item{}\[FORM\unl PLAIN.tex\]. This is an easily modifiable \lq good to go\rq\ form with all the inputs and dimensions
+present and in addition contains a sub-form for headers and numbering.
+\mni
+\item{} \[letter\unl form.tex\]. This letter form has a provision for automatically adding\tiret via PSTRICKS\tiret
+your signature.
+\mni
+\item{}\[images-colour-marginal-notes.tex\]. This illustrates how to use PSTRICKS to import and rotate images,
+ how to add marginal notes,
+ using \[petr\unl olsak.mac\], and colour using \bsl color.
+\mni
+\item{}\[two-columns.tex]. There is also a multi-column command in \[petr\unl olsak.mac\].
+\mni
+\item{} \[calling\unl glyphs.tex\]. This explains how to find glyphs and how to call them for use.
+\mni
+\item{} \[font\unl size.tex\] . This explains how do find the actual point values associated with a font at a given
+nominal value
+\mni
+A sub-directory contains the forms and macro files for right to left languages.
+\vskip 15pt\nin
+\centreline{\bffourteen Text Samples}
+\mni
+This directory contains illustrative excerpts, with both the \TeX\ and the corresponding PDF files, in three
+very different areas: a programming manual; a genealogical book and names written in Canadian aboriginal syllabics.
+%
+%\vfill\eject
+\vskip 15pt\nin
+%
+\centreline{\bffourteen Right to Left Texts}
+\mni
+A special, again with a ready to use form and the macro files
+in this directory, illustrates the use of the bi-directional command \bsl bidi.
+\mni
+This section contains the following illustrative texts:
+\mni
+\itemitem{} A Biblical text with both coded and imported Hebrew and the use of marginal notes to indicate the verse numbers and
+also to signal a special feature in the text. In addition it illustrates how one
+switches from a right to left text to a left to right text.
+\sni
+\itemitem{} A discussion of a fragment from the {\it Dead Sea Scrolls\/}. This file includes two imported
+images and the same text set\tiret via the importation of the Biblical text from a web source\tiret
+in four different fonts: \lq square\rq\ letters \(i.e.\ the present day forms\), two different ancient
+semitic letters and Samaritan \(still in use\).
+\sni
+\itemitem{} A sample Arabic text with an imported portion of the {\it Quran\/} and the use
+of \[petr\unl olsak.mac\] to create a table.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ % KEEP THIS ENDING!!! had when needed headers
+\vfill\eject
+%%
+ } % ends roman
+ \par} % ends \hsize
+ \bye
+
+%%%%%%%%%%%%%%% FORMS %%%%%%%%%%%%%%%%
+%
+% PSTRICKS FORM
+ \centreline{\epsfxsize = 6.5truein\epsfbox{*.eps}}
+\vskip 4 truept
+ \centreline{}
+%
+\vskip 0.7cm\nin
+%
+
+
diff --git a/macros/xetex/plain/font-change-xetex/README.txt b/macros/xetex/plain/font-change-xetex/README.txt
new file mode 100644
index 0000000000..ef11ce8dae
--- /dev/null
+++ b/macros/xetex/plain/font-change-xetex/README.txt
@@ -0,0 +1,24 @@
+This is version 2016.1 of the package "font-change-xetex".
+The package consists of macros that can be used to typeset XeTeX documents
+using any OpenType or TrueType font installed on the computer system.
+The macros allow the user to change the text mode fonts and some math mode fonts.
+For any declared font family, various font style, weight, and size variants like
+bold, italics, small caps, etc. are available through standard and custom TeX control statements.
+Using the optional argument of the macros, the available XeTeX font features and OpenType tags can be accessed.
+Other features of the package include activating and deactivating hanging punctuation, and support for special Unicode characters.
+For more information, please refer to the documentation (font-change-xetex.pdf).
+
+***User's comments and suggestions are welcomed.***
+
+=========== Licence / License ===========
+
+
+This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License
+on April 07, 2016. You are free to Share (to copy, distribute and transmit the work)
+and to Remix (to adapt the work) provided you follow the Attribution and Share Alike
+guidelines of the licence. For the full licence text, please visit: http://creativecommons.org/licenses/by-sa/4.0/.
+
+
+
+Amit Raj Dhawan amitrajdhawan@gmail.com
+ (Author)
diff --git a/macros/xetex/plain/font-change-xetex/doc/font-change-xetex.pdf b/macros/xetex/plain/font-change-xetex/doc/font-change-xetex.pdf
new file mode 100644
index 0000000000..cdd27703d6
--- /dev/null
+++ b/macros/xetex/plain/font-change-xetex/doc/font-change-xetex.pdf
Binary files differ
diff --git a/macros/xetex/plain/font-change-xetex/doc/font-change-xetex.tex b/macros/xetex/plain/font-change-xetex/doc/font-change-xetex.tex
new file mode 100644
index 0000000000..e09fc2611c
--- /dev/null
+++ b/macros/xetex/plain/font-change-xetex/doc/font-change-xetex.tex
@@ -0,0 +1,1119 @@
+% The author of this work is Amit Raj Dhawan.
+% This work is licensed under the
+% Creative Commons Attribution-ShareAlike 4.0 International License
+% on April 07, 2016. For details visit:
+% http://creativecommons.org/licenses/by-sa/4.0/.
+%
+%%%%%%%%% Fonts %%%%%%%%%%
+\font\webomints=WebOMintsGd at40pt
+\font\titlefont=artemisiarg8a at36pt
+
+%%%%%%%%%% Packages %%%%%%%%%%
+%%% Eplain
+\input eplain % Add Eplain before AmSTeX
+\beginpackages
+\usepackage{url}
+\usepackage{color}
+\usepackage{graphicx}
+\endpackages
+\enablehyperlinks[dvipdfm] % Enables hyperlinks using Eplain
+%\hlopts{colormodel=named,color=Black} % Produces links in black color
+%% Color
+\definecolor{brown}{rgb}{.7,.2,.2}%
+\definecolor{grey}{rgb}{0.5,0.5,0.5}%
+
+
+%%% AmSTeX
+\input amstex
+\UseAMSsymbols
+
+\catcode`@=12
+
+
+
+
+%%%%%%%%%% Page characteristics %%%%%%%%%%
+\magnification=1120
+\parindent=20pt
+\parfillskip=\parindent plus1fil
+\everypar{\looseness=-1}
+\headline{} \footline{}
+\vsize=25truecm
+\hoffset-2mm
+\voffset-3mm
+\settabs 20 \columns
+\exhyphenpenalty10000
+\hyphenpenalty200
+
+
+
+%%%%%%%%%% Definitions %%%%%%%%%%
+\def\bs{\bigskip}%
+\def\ms{\medskip}%
+\def\sk{\smallskip}%
+\def\cl{\centerline}%
+\def\ii{\noindent}%
+\def\pic#1#2#3{\bigskip\cl{\epsfxsize#1\epsfbox{#2.eps}}\par\cl{\eightrm #3}}%
+\def\amstex{{\amstexfont A\kern-.1667em\lower.5ex\hbox{M}\kern-.125em S}-\capstex}%
+\def\xetex{X\lower0.5ex\hbox{\kern-0.11em\reflectbox{E}}\kern-0.165em\TeX}%
+\def\latex{L\setbox0=\hbox{\sc A}\kern-0.5766\wd0\raise0.41ex\hbox{\sc A}\setbox1=\hbox{T}\kern-.177\wd1\TeX}%
+\def\xelatex{X\lower0.5ex\hbox{\kern-0.11em\reflectbox{E}}\kern-0.13em\latex}%
+\def\capstex{{\caps t\kern-.122em\lower.38ex\hbox{e}\kern-.11em x}}%
+\def\capslatex{{\caps l\setbox0=\hbox{\sevencaps a}\kern-0.5888\wd0{\raise0.33ex\hbox{\sevencaps a}}\setbox1=\hbox{t}\kern-.2\wd1\capstex}}%
+\def\capsxetex{{\caps x\lower0.38ex\hbox{\kern-0.1em\reflectbox{e}}\kern-0.13em\capstex}}%
+\def\capsxelatex{{\caps x\lower0.38ex\hbox{\kern-0.1em\reflectbox{e}}\kern-0.122em\capslatex}}%
+\def\footnote#1{\numberedfootnote{\hskip-7mm\hbox to 20cm{\vtop{\hangindent\parindent\hangafter1\eightrm\fontss #1}}}}%
+\def\quote#1{\sk\leftskip10mm{\sl\noindent #1}\sk \leftskip0mm\rightskip0mm}%
+\def\emdash{\hbox{\kern0.15em---\kern0.15em}\relax}%
+\def\endash{\hbox{\kern0.15em--\kern0.15em}\relax}%
+\def\code#1{{\color{brown}\tt #1}}%
+\def\bsl{\char'134}%
+\def\inbox#1{\hbox{\vbox{\hrule\hbox{\strut\vrule\hbox{\kern0.3em #1\kern0.3em}\strut\vrule}\hrule}}}%
+\def\coderesult#1{\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm \vbox{\vskip0.5\baselineskip \parindent=0pt{#1}\vskip0.5\baselineskip}\vrule}}\hrule}}%
+
+
+
+
+\hyphenpenalty200%
+\exhyphenpenalty0%
+\hfuzz=3pt%
+
+%%%%%%%%%% Chapter, Section %%%%%%%%%%
+\newcount\sectionno\sectionno=0 % For sections
+\newcount\subsectionno\subsectionno=0 % For subsections
+\newcount\subsubsectionno\subsubsectionno=0 % For subsubsections
+\definecolor{sectioncolor}{rgb}{0.22,0.38,0.62}
+
+
+\def\section#1#2{%
+\subsectionno=0%
+\subsubsectionno=0%
+\global\advance\sectionno by 1
+{\special{pdf: outline 1 << /Title (#2)/F 0 /Dest [@thispage /FitH @ypos ] >> }}
+\bigskip\bigskip\medskip\goodbreak
+\noindent{\textcolor{sectioncolor}{\sanssixteenbf\fontss \the\sectionno\ \; #1}}
+{\definexref{#2}{\number\sectionno\ #2}{}}
+{\writetocentry{section}{\refs{#2}}}
+\nopagebreak\medskip\nopagebreak\noindent}
+
+\def\subsection#1{%
+\global\advance\subsectionno by 1
+{\special{pdf: outline 2 << /Title (#1)/F 0 /Dest [@thispage /FitH @ypos ] >> }}
+\bigskip\medskip\goodbreak
+{\definexref{#1}{\number\sectionno.\number\subsectionno\ #1}{}}
+{\writetocentry{subsection}{\kern5mm\refs{#1}}}
+{\noindent{\textcolor{sectioncolor}{\sansfourteenbf\fontss\the\sectionno.\the\subsectionno\ \; #1}}}
+\nopagebreak\medskip\nopagebreak\noindent}
+
+\def\subsubsection#1{%
+\global\advance\subsubsectionno by 1
+{\special{pdf: outline 2 << /Title (#1)/F 0 /Dest [@thispage /FitH @ypos ] >> }}
+\bigskip\medskip\goodbreak
+{{\definexref{#1}{\number\sectionno.\number\subsectionno.\number\subsubsectionno\ #1}{}}
+{\writetocentry{subsubsection}{\kern5mm\refs{#1}}}
+\noindent{\textcolor{sectioncolor}{\sanstwelvebf\fontss\the\sectionno.\the\subsectionno.\the\subsubsectionno\ \; #1}}}
+\nopagebreak\medskip\nopagebreak\noindent}
+
+
+\input font_kp
+
+%\input multiple-z-font-change-xetex
+\input font-change-xetex
+\def\fontss{\parindent=2em%
+\baselineskip=2.9ex%
+\spaceskip=0.30001em plus0.13em minus0.13em}%
+
+\mysanzfont{Calibri}{11}{}
+\myzfont{Warnock Pro}{10}{}
+\fontss \hangpun \frenchspacing
+\font\tt="Consolas" at 8.7pt%
+\font\eighttt="Consolas" at 7pt%
+%\mymathfont{Warnock Pro}{10}
+
+
+
+
+
+
+%%%%%%%%%% Cover %%%%%%%%%%
+{\special{pdf: outline 1 << /Title (Cover)/F 0 /Dest [@thispage /FitH @ypos ] >> }}
+{\centerline{{\color{brown}\webomints\char'160}\hskip8mm\titlefont\color{sectioncolor} font-change-xetex\hskip8mm{\color{brown}\webomints\char'161}}\bs
+\centerline{{\color{brown}\webomints\char'125\char'126}}
+\bs
+\centerline{Version \ 2016.1}
+\bs\bs
+{\color{sectioncolor}\fourteenbf\fontss\centerline{Macros to use OpenType and TrueType fonts}\kern3mm
+\centerline{with \XeTeX}}
+
+\vskip2cm
+\centerline{\color{brown}\webomints \char'063}
+\vskip2cm
+\centerline{\twelvebf\fontss Amit Raj Dhawan}\sk
+\centerline{\href{mailto:amitrajdhawan@gmail.com}{\sansrm amitrajdhawan\@gmail.com}}\sk
+\centerline{\rm April 07, 2016}
+
+\vskip7cm
+
+% Licence
+\hrule\kern1pt\hrule\sk
+\ii{\includegraphics[scale=0.5]{creative_commons_sa-il_4.pdf}}
+\vskip-7mm
+\vbox{\leftskip2.5cm\parindent=0pt\eightrm\fontss\ii This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. You are free to {\eightitbf Share\/} (to copy, distribute and transmit the work) and to {\eightitbf Remix\/} (to adapt the work) provided you follow the {\eightitbf Attribution\/} and {\eightitbf Share Alike\/} guidelines of the licence. For the full licence text, please visit:
+\href{http://creativecommons.org/licenses/by-sa/4.0/}{\eightrm http://creativecommons.org/licenses/by-sa/4.0/}.}\leftskip0cm
+\sk\hrule\kern1pt\hrule
+
+\BlackBoxes
+
+
+\newpage
+
+\cl{\sanstwentycapsbf\fontss {\color{sectioncolor}Table of Contents}}\bs\ms
+{\special{pdf: outline 1 << /Title (Contents)/Dest [@thispage /FitH @ypos ] >> }}%
+
+\readtocfile
+
+\pageno=-1
+\footline{\cl{\folio}}
+
+
+\newpage
+\pageno=1
+\headline{\textcolor{grey}{\capsxetex\ macro {\tt font-change-xetex}} \hfill\folio}
+\footline{}
+
+\section{Introduction}{Introduction}\capsxetex\ is a typesetting system based on \capstex~\cite{xetex_package} that supports Unicode~\cite{unicode_webpage} and modern fonts like True~Type fonts~({\caps ttf}), Open Type fonts~({\caps otf}), and Apple Advanced Typography ({\caps aat}) fonts~\cite{phinney_2001_ttf_otf}. The possibility of using almost any kind of font format---either installed as a system font or just placed any \capstex\ working-directory---has significantly improved the utility of \capstex. Moreover, the incorporation of Unicode encoding in \capstex\ documents is a progressive step as non-Latin scripts can now easily exploit the power of \capstex. Variants of \capstex\ like \capsxetex, \capsxelatex, and Lua\capstex\ have made this~feasible.
+
+
+
+This document will describe the features of the package \code{font-change-xetex}. The package provides a simple way to use system-installed TrueType or OpenType fonts with \capsxetex. The package \code{fontspec}~\cite{fontspec_package}, which works with \capsxelatex\ and Lua\capstex, is a very good tool for using TrueType and OpenType fonts, but to my knowledge, a similar package has not been proposed for \capsxetex. Following the ``plain \capstex'' way of working, the macro package \code{font-change-xetex} allows users to employ {\it external} fonts with~\capsxetex. The macro has been designed to change the text fonts in \capsxetex\ documents but one definition of the macro can be used to change some math mode fonts. The text fonts called by \code{font-change-xetex} can be used with the math fonts declared by another package called \code{font-change}~\cite{font-change_package} to obtain harmonious text and math font~combinations.
+
+I have been using \code{font-change-xetex} to typeset documents in English and Hindi from the year 2008, and from 2010, the macro has remained almost unchanged. The macro has worked with all the versions of \capsxetex\ so far, and it works with most font families installed on a computer system. Rarely, due to some font file issues, these fonts might not work properly but this is not a problem of the macro as~such.
+
+The macro \code{font-change-xetex} has been tested with the {\tt xdvipdfmx} driver. Please pay attention to driver-related~issues.
+
+
+\section{Using font-change-xetex}{Using font-change-xetex}The package \code{font-change-xetex} can be downloaded from \href{http://www.ctan.org}{\caps ctan} and it will be included in the future versions of MiK\TeX\ and \TeX Live. If \code{font-change-xetex} is installed in the \capstex\ installation on your system, then it can be invoked~by:
+\ms
+\code{\bsl input font-change-xetex}
+\ms
+\ii If the package is not installed in the \capstex\ directory, the package file {\tt font-change-xetex.tex} can be saved on the computer system, say in {\tt C:/}, and can be invoked by typing the following in the {\tt .tex} source~file:
+\ms
+\code{\bsl input C:/font-change-xetex.tex}
+\bs
+Once the package has been invoked, the commands included in it can be used. The following sections will discuss the font-changing commands of \code{font-change-xetex}.
+
+
+\section{Text font selection}{Text font selection}The main font~(font family) of a \capsxetex\ document can be changed by using the following definition:
+\ms
+\ii\inbox{\code{\bsl myzfont\{\textcolor{blue}{\sl font name}\}\{\textcolor{blue}{\sl font size in points}\}\{\textcolor{blue}{\sl optional font features}\}}}
+\sk
+\ii where \textcolor{blue}{\sl font name} is the name of the installed font~family (e.g., Warnock Pro, Minion Pro, Linux Libertine, etc.) or an individual font file (e.g., WarnockPro-Regular, WarnockPro-Semibold, etc.), \textcolor{blue}{\sl font size in points} is the size of the font in points stated as a positive integer without {\tt pt} at the end~(e.g., 9, 10, 31, etc.), and \textcolor{blue}{\sl optional font features} are declared to use or suppress advanced font features like ligatures, proportional figures, etc.~(some of them will be discussed in the following section).
+
+
+The definition \code{\bsl myzfont} can be declared anywhere in the document. It is recommended to declare it only once somewhere at the beginning of the \capstex\ document---this implements a regular change of fonts without exhausting \capstex's memory.\footnote{\ \; The definition \textcolor{brown}{\eighttt \bsl myfont} provides a way to use multiple font families within the same document but only at the declared size. Though all font style and weight variants like {\eightbf boldface}, {\eightit italics}, {\eightsl slanted}, {\eightitbf italic boldface}, {\eightslbf slanted boldface}, {\eightcaps Caps}, {\eightcapsbf Caps in Bold}, {\eightcapssl Slanted Caps}, and {\eightcapsslbf Slanted Caps in Boldface} will be available. Still, if someone wants to use \textcolor{brown}{\eighttt \bsl myzfont} multiple times in a document, please send me an email. I have not included the variant of \textcolor{brown}{\eighttt font-change-xetex} that allows multiple declarations of \textcolor{brown}{\eighttt \bsl myzfont} and \textcolor{brown}{\eighttt \bsl mysanzfont} because the present variant works better with hanging punctuation.} Once a font~family is declared, the font~weight and style commands like {\bf boldface}~(\code{\bsl bf}), {\it italics}~(\code{\bsl it}), {\sl slanted}~(\code{\bsl sl}), {\itbf italic boldface}~(\code{\bsl itbf}), {\slbf slanted boldface}~(\code{\bsl slbf}), {\caps Caps}~({\code{\bsl caps}), {\capsbf Caps in Bold}~(\code{\bsl capsbf}), {\capssl Slanted Caps}~(\code{\bsl capssl}), and {\capsslbf Slanted Caps in Boldface}~(\code{\bsl capsslbf}) automatically use the corresponding fonts. If the declared font~family does~not have all features, then the features of the preceding font are used. \footnote{\ \; This works even with custom definitions like \textcolor{brown}{\eighttt \bsl itbf}, \textcolor{brown}{\eighttt \bsl caps}, etc. if a macro from \textcolor{brown}{\eighttt font-change} is declared before \textcolor{brown}{\eighttt font-change-xetex}.}
+
+With respect to the base font size declared in \code{pt}, for each font weight and style, the definition \code{\bsl myzfont} includes several pre-defined relative font~sizes of 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, and 20\,pt. That is, if we declare a base font size of 10\,pt by \code{\bsl myzfont\{Minion Pro\}\{10\}\{\}}, we will obtain the sizes of 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, and 20\,pts, and if we declare a base font size of 20\,pt by \code{\bsl myzfont\{Minion Pro\}\{20\}\{\}}, we get pre-defined sizes of 10, 12, 14, 16, 18, 20, 22, 24, 28, 32, and 40\,pts.
+
+\code{font-change-xetex} also provides the choice of a sans~serif font through the~definition:
+\ms
+\ii\inbox{\code{\bsl mysanzfont\{\textcolor{blue}{\sl font name}\}\{\textcolor{blue}{\sl font size in points}\}\{\textcolor{blue}{\sl optional font features}\}}}
+\sk
+\ii This definition provides the same font styles, weights, and sizes as \code{\bsl myzfont}. The font~commands are also the same but each command has a prefix \code{sans} like \code{\bsl sansrm}, \code{\bsl sansit}, \code{\bsl sanstwelvebf}, etc. The next section will mention all the included~commands.
+
+To change the font locally, \code{font-change-xetex} provides the following~macro:
+\ms
+\ii\inbox{\code{\bsl myfont\{\textcolor{blue}{\sl font name}\}\{\textcolor{blue}{\sl font size in points}\}\{\textcolor{blue}{\sl optional font features}\}}}
+\sk
+\ii The above command invokes the declared font (or font~family) at the mentioned size with the same font styles and weights as provided by \code{\bsl myzfont}. This command does not provide size variants, thereby easing the burden on \capstex's font~memory.
+
+
+
+
+
+
+\subsection{Examples of use}The following definition selects Warnock Pro as the main document font~family at 10\,pt. The \capstex\ code is given in \code{brown} on the left and the corresponding results are given on the~right.
+
+\ms
+\ii{\code{\bsl myzfont\{Warnock Pro\}\{10\}\{\}}
+\baselineskip21pt
+\+\code{\bsl rm \ This is regular} &&&&&&&&&& \rm This is regular\cr
+\+\code{\bsl bf \ This is bold} &&&&&&&&&& \bf This is bold\cr
+\+\code{\bsl it \ This is italic} &&&&&&&&&& \it This is italic\cr
+\+\code{\bsl sl \ This is slanted} &&&&&&&&&& \sl This is slanted\cr
+\+\code{\bsl itbf \ This is italic bold} &&&&&&&&&& \itbf This is italic bold\cr
+\+\code{\bsl slbf \ This is slanted bold} &&&&&&&&&& \slbf This is slanted bold\cr
+\+\code{\bsl caps \ This is Caps} &&&&&&&&&& \caps This is Caps\cr
+\+\code{\bsl capsbf \ This is Bold Caps} &&&&&&&&&& \capsbf This is Bold Caps\cr
+\+\code{\bsl capssl \ This is Slanted Caps} &&&&&&&&&& \capssl This is Slanted Caps\cr
+\+\code{\bsl capsslbf \ This is Slanted Bold Caps} &&&&&&&&&& \capsslbf This is Slanted Bold Caps\cr
+
+\bs
+
+\+\code{\bsl fiverm \ This is 5\,pt} &&&&&&&&&& \fiverm This is 5\,pt\cr
+\+\code{\bsl sixbf \ This is 6\,pt} &&&&&&&&&& \sixbf This is 6\,pt\cr
+\+\code{\bsl sevenit \ This is 7\,pt} &&&&&&&&&& \sevenit This is 7\,pt\cr
+\+\code{\bsl eightsl \ This is 8\,pt} &&&&&&&&&& \eightsl This is 8\,pt\cr
+\+\code{\bsl nineitbf \ This is 9\,pt} &&&&&&&&&& \nineitbf This is 9\,pt\cr
+\+\code{\bsl slbf \ This is 10\,pt} &&&&&&&&&& \slbf This is 10\,pt\cr
+\+\code{\bsl caps \ This is 11\,pt} &&&&&&&&&& \elevencaps This is 11\,pt\cr
+\+\code{\bsl capsbf \ This is 12\,pt} &&&&&&&&&& \twelvecapsbf This is 12\,pt\cr
+\+\code{\bsl capssl \ This is 14\,pt} &&&&&&&&&& \fourteencapssl This is 14\,pt\cr
+\+\code{\bsl capsslbf \ This is 16\,pt} &&&&&&&&&& \sixteencapsslbf This is 16\,pt\cr\nopagebreak
+\+\code{\bsl eighteenrm \ This is 18\,pt} &&&&&&&&&& \eighteenrm This is 18\,pt\cr\nopagebreak
+\+\code{\bsl twentybf \ This is 20\,pt} &&&&&&&&&& \twentybf This is 20\,pt\cr
+}
+
+\bs\bs
+
+The following statement selects Calibri as the sans~serif font at 11\,pt. The \capstex\ code in \code{brown}, after compilation, gives the result displayed on its~right.
+\ms
+\ii{\code{\bsl mysanzfont\{Calibri\}\{11\}\{\}} %\mysanzfont{Aller}{11}{}
+\baselineskip19pt
+\+\code{\bsl sansrm \ This is regular} &&&&&&&&&& \sansrm This is regular\cr
+\+\code{\bsl sansbf \ This is bold} &&&&&&&&&& \sansbf This is bold\cr
+\+\code{\bsl sansit \ This is italic} &&&&&&&&&& \sansit This is italic\cr
+\+\code{\bsl sanssl \ This is slanted} &&&&&&&&&& \sanssl This is slanted\cr
+\+\code{\bsl sansitbf \ This is italic bold} &&&&&&&&&& \sansitbf This is italic bold\cr
+\+\code{\bsl sansslbf \ This is slanted bold} &&&&&&&&&& \sansslbf This is slanted bold\cr
+\+\code{\bsl sanscaps \ This is Caps} &&&&&&&&&& \sanscaps This is Caps\cr
+\+\code{\bsl sanscapsbf \ This is Bold Caps} &&&&&&&&&& \sanscapsbf This is Bold Caps\cr
+\+\code{\bsl sanscapssl \ This is Slanted Caps} &&&&&&&&&& \sanscapssl This is Slanted Caps\cr
+\+\code{\bsl sanscapsslbf \ This is Slanted Bold Caps} &&&&&&&&&& \sanscapsslbf This is Slanted Bold Caps\cr
+
+\bs\bs
+
+\+\code{\bsl sansfiverm \ This is 5.5\,pt} &&&&&&&&&& \sansfiverm This is 5.5\,pt\cr
+\+\code{\bsl sanssixbf \ This is 6.6\,pt} &&&&&&&&&& \sanssixbf This is 6.6\,pt\cr
+\+\code{\bsl sanssevenit \ This is 7.7\,pt} &&&&&&&&&& \sanssevenit This is 7.7\,pt\cr
+\+\code{\bsl sanseightsl \ This is 8.8\,pt} &&&&&&&&&& \sanseightsl This is 8.8\,pt\cr
+\+\code{\bsl sansnineitbf \ This is 9.9\,pt} &&&&&&&&&& \sansnineitbf This is 9.9\,pt\cr
+\+\code{\bsl sansslbf \ This is 11\,pt} &&&&&&&&&& \sansslbf This is 11\,pt\cr
+\+\code{\bsl sanscaps \ This is 12.1\,pt} &&&&&&&&&& \sanselevencaps This is 12.1\,pt\cr
+\+\code{\bsl sanscapsbf \ This is 13.2\,pt} &&&&&&&&&& \sanstwelvecapsbf This is 13.2\,pt\cr
+\+\code{\bsl sanscapssl \ This is 15.4\,pt} &&&&&&&&&& \sansfourteencapssl This is 15.4\,pt\cr
+\+\code{\bsl sanscapsslbf \ This is 17.6\,pt} &&&&&&&&&& \sanssixteencapsslbf This is 17.6\,pt\cr
+\+\code{\bsl sanseighteenrm \ This is 19.8\,pt} &&&&&&&&&& \sanseighteenrm This is 19.8\,pt\cr
+\+\code{\bsl sanstwentybf \ This is 22\,pt} &&&&&&&&&& \sanstwentybf This is 22\,pt\cr
+}
+
+\bs\bs
+
+\hrule\vbox{\noindent\vrule\NoBlackBoxes\vbox{\vskip2mm\leftskip7mm\rightskip7mm
+{\parindent0pt
+\verbatim
+\myzfont{Warnock Pro}{10}{+pnum:+lnum}
+\mysanzfont{Calibri}{11}{+pnum:+lnum}
+%
+\noindent{\sanstwelvecapsbf Text font change in action}
+\medskip
+\noindent The command {\tt \char'134 myzfont} changes the main text body font family to Warnock Pro at 10\,pt with the current font set to regular. This is {\bf bold} and this is {\sixteenitbf italic bold at 16\,pt}. {\sansrm The {\sanscaps sans serif} document font is set to Calibri at 11\,pt.} In both the cases we have invoked the {\it proportional figures}~(pnum) and {\it lining figures}~(lnum) features.
+
+We can change the font locally to {\myfont{Tangerine}{20}{} Tangerine font at 20\,pt} or {\myfont{Chaparral Pro}{11.4}{} Chaparral Pro at 11.4\,pt (this is {\bf Chaparral bold}).
+|endverbatim
+}
+}\vrule}\hrule\BlackBoxes}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\hrule\vbox{\noindent\vrule\NoBlackBoxes\vbox{\vskip2mm\leftskip7mm\rightskip7mm
+\noindent{\sanstwelvecapsbf Text font change in action}
+\medskip
+\noindent The command {\tt \char'134 myzfont} changes the main text body font family to Warnock Pro at 10\,pt with the current font set to regular. This is {\bf bold} and this is {\sixteenitbf italic bold at 16\,pt}. {\sansrm The {\sanscaps sans serif} document font is set to Calibri at 11\,pt.} In both the cases we have invoked the {\it proportional figures}~(pnum) and
+{\it lining figures}~(lnum) features.
+
+We can change the font locally to {\myfont{Tangerine}{20}{} Tangerine font at 20\,pt} or
+{\myfont{Chaparral Pro}{11.4}{} Chaparral Pro at 11.4\,pt (this is {\bf Chaparral bold}).}
+\medskip}\vrule}\hrule\BlackBoxes\bigskip\bigskip
+
+
+\section{Hanging punctuation}{Hanging punctuation}Utilizing the character protrusion capability of \capsxetex~(also possible with plain \capstex), the \code{\bsl hangpun} command of \code{font-change-xetex} provides a way to employ hanging punctuation, where the punctuation marks fall out of the text margin. From a typographic perspective, the use of hanging punctuation is debatable. In my opinion, it leads to more harmonious text justification and more elegant typesetting. The following text sample includes the same text with and without hanging~punctuation.
+
+
+
+\bs\ms
+\ii\hbox{\vbox{\hrule\hbox{\vrule\hskip2mm\hbox{
+\vbox to 4.3cm{\hsize=6cm \eightrm\fontss \nohangpun
+\ms{\bf\hskip1mm Without hanging punctuation}\sk
+\ii Some people are for using hanging punctuation, and some against. In the end, it is a matter of personal choice. He said, ``I use hanging punctuation.'' ``But does it really lead to better text justification?'' asked~Joe.
+
+\indent One may argue that protruding punctuation marks draw unnecessary attention but this is questionable. You should try it to find it out yourself\,! Well, let's see\dots
+\vfill
+}{\color{green}\vrule} \hskip2mm\vrule}}
+\hrule}
+\hskip1.3cm
+\vbox{\hrule\hbox{\vrule\hskip2mm\hbox{
+\vbox to 4.3cm{\hsize=6cm \eightrm\fontss \hangpun
+\ms{\bf\hskip5mm With hanging punctuation}\sk
+\ii Some people are for using hanging punctuation, and some against. In the end, it is a matter of personal choice. He said, ``I use hanging punctuation.'' ``But does it really lead to better text justification?'' asked~Joe.
+
+\indent One may argue that protruding punctuation marks draw unnecessary attention but this is questionable. You should try it to find it out yourself\,! Well, let's see\dots
+\vfill
+}{\color{green}\vrule} \hskip2mm\vrule}}
+\hrule}\NoBlackBoxes}
+
+
+To activate hanging punctuation, the command \code{\bsl hangpun} has to be declared after declaring \code{\bsl myzfont} or \code{\bsl myfont}. It can be deactivated by \code{\bsl nohangpun}.
+
+
+\section{The OpenType layout}{The OpenType layout}Vector scalable fonts~(which includes most computer fonts) consist of glyph outlines and font layout tables. The glyph outlines of most Windows fonts are either TrueType or PostScript, and these font files are either in TrueType format~({\tt .ttf} extenstion) or OpenType format~({\tt .otf} extension). Generally, most modern PostScript outline fonts are in {\tt .otf} format. The font layout tables of all {\tt .otf} fonts~(e.g., Warnock Pro, Minion Pro, Linux Libertine~O, Calluna, etc.) and many {\tt .ttf} fonts~(e.g., Calibri, Georgia, Constantia, etc.) use the OpenType layout. This means that the OpenType font features included in these {\tt .otf} and {\tt .ttf} fonts can be accessed via OpenType layout tags~\cite{opentype_tag_registry}.
+
+An OpenType layout tag is an {\caps ascii} character string of 4~bytes that is used to identify the writing scripts, language systems, features and baselines of the font. Using \capsxetex's \code{\bsl font} command, the macros included in the package \code{font-change-xetex} can declare these tags by incorporating them as \textcolor{blue}{\sl optional font features}. A knowledge of some of these tags can be quite useful because different fonts have different default features, which the user may want to change. For example, the main font used in this document, Warnock Pro, invokes oldstyle figures~(745.12) by default but scientific texts demand lining figures~({\myfont{Warnock Pro}{10}{:+pnum:+lnum}745.12}). By using the tag {\tt lnum}, which overrides oldstyle figures with lining figures, we can make the desired switch. There are four categories of OpenType layout tags: Script, Language, Feature, and~Baseline.
+
+\subsection{Script tags}Script tags generally correspond to a Unicode script and allow the user to provide information about the writing script. This feature is of great value when using non-Latin writing scripts or typesetting a document using multiple scripts. The sample texts below have been written in Devanagari using the Adobe Devanagari font but in the former case, the Latin script tag~(non-default for this font) has been used. Due to this, the Devanagari ligatures are missing in the first text and the Hindi is syntactically~incorrect.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{
+\vbox{\vskip0.5\baselineskip
+{\myfont{Adobe Devanagari}{12}{:script=latn}
+\verbatim \myfont{Adobe Devanagari}{12}{:script=latn}|endverbatim
+
+विद्या अर्जन का प्रयास
+
+Some vowels are misplaced and the ligatures are missing.}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+
+\ms
+
+\vbox{\hrule\hbox{\vrule\hbox{
+\vbox{\vskip0.5\baselineskip
+{\myfont{Adobe Devanagari}{12}{:script=deva}
+\verbatim \myfont{Adobe Devanagari}{12}{:script=deva}|endverbatim
+
+विद्या अर्जन का प्रयास
+
+All vowels and ligatures are well placed.}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+
+\ms
+Generally, font files have a default writing script. For example, all the fonts used in this document, except the ones used to typeset Devanagari, use Latin~({\tt latn}) as the default script. A complete list of script tags can be found~\href{https://www.microsoft.com/typography/otspec/scripttags.htm}{here}.
+
+\subsection{Language tags}Language tags decide how text written in a given script is presented. For example, both English and French typesetting use the same writing script but the presentation of text is language dependent. A list of language tags is available \href{https://www.microsoft.com/typography/otspec/languagetags.htm}{here}.
+
+
+\subsection{Feature tags}Feature tags allow the user to choose between different glyph forms. For example, we can choose whether to use standard ligatures (like ffi) or not~(\hbox{f}\hbox{f}\hbox{i}). A table of feature tags is given \href{https://www.microsoft.com/typography/otspec/featurelist.htm}{here}, and their description on this \href{https://www.microsoft.com/typography/otspec/features_ae.htm}{page}.
+To use a font feature which has a tag called {\tt ftag} via \code{font-change-xetex}, we have to type \code{:+ftag} in the \textcolor{blue}{\sl optional font features}. Suppose that the same feature is a default feature of the font, then in order to deactivate this feature we have to type \code{:-ftag} in the \textcolor{blue}{\sl optional font features}. The following example clarifies this usage.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{
+\vbox{\vskip0.5\baselineskip \parindent=0pt\leftskip7mm\rightskip7mm
+{\hyphenpenalty10000
+\verbatim \myfont{Warnock Pro}{10}{}% Declares Warnock Pro font at 10pt with the default settings
+
+The font Warnock Pro considers {\bf Ţh Ťh ff fi fl ffi ffl fj ffj Th} as {\it standard ligatures} ({\tt liga}), and {\bf st ct sp} as {\it discretionary ligatures}~({\tt dlig}). The default settings of this font allow standard ligatures and suppress
+discretionary ligatures. We will deactivate standard ligatures and turn on discretionary ligatures with
+
+\myfont{Warnock Pro}{10}{:-liga:+dlig}
+% Standard Ligatures deactivated and Discretionary Ligatures activated
+
+Now the standard ligatures ({\bf Ţh Ťh ff fi fl ffi ffl fj ffj Th}) have been turned off and discretionary ligatures ({\bf st ct sp}) have been turned on.
+|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip
+{The font Warnock Pro considers {\bf Ţh Ťh ff fi fl ffi ffl fj ffj Th} as {\it standard ligatures}~({\tt liga}), and {\bf st ct sp} as {\it discretionary ligatures}~({\tt dlig}). The default settings of this font allow standard ligatures and suppress discretionary ligatures. We will deactivate standard ligatures and turn on discretionary ligatures with
+
+\myfont{Warnock Pro}{10}{:-liga:+dlig}
+% Standard ligatures deactivated and discretionary ligatures activated
+
+Now the standard ligatures ({\bf Ţh Ťh ff fi fl ffi ffl fj ffj Th}) have been turned off and discretionary ligatures ({\bf st ct sp}) have been turned on.
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+
+\bs
+
+The following example shows how the statements of the \code{font-change-xetex} can be used within a paragraph and how \code{\bsl myfont} is used to exploit some features of Bickham Script Pro~font.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\verbatim
+\myfont{Bickham Script Pro}{30}{}
+% Declares Bickham Script Pro font at 30pt with default features
+
+This final statement is Crucial.
+
+\myfont{Bickham Script Pro}{30}{:-calt:-clig}
+% Contextual Alternates and Contextual Ligatures deactivated
+
+This final statement is Crucial.
+
+{\myfont{Bickham Script Pro}{30}{:+swsh}
+% Swash glyphs activated
+
+This final statement is Crucial.
+
+% Alternate available fonts are accessed to locally change some glyphs
+{\myfont{Bickham Script Pro}{30}{+aalt}T}his
+{\myfont{Bickham Script Pro}{30}{+aalt=2}f}inal
+statemen{\myfont{Bickham Script Pro}{30}{+aalt=3}t} is Crucial.}
+|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{
+\myfont{Bickham Script Pro}{30}{}
+% Declares Bickham Script Pro font at 30pt with default features
+
+This final statement is Crucial.
+
+\myfont{Bickham Script Pro}{30}{:-calt:-clig}
+% Contextual Alternates and Contextual Ligatures deactivated
+
+This final statement is Crucial.
+
+{\myfont{Bickham Script Pro}{30}{:+swsh}
+% Swash glyphs activated
+
+This final statement is Crucial.
+
+% Alternate available fonts are accessed to locally change some glyphs
+{\myfont{Bickham Script Pro}{30}{+aalt}T}his {\myfont{Bickham Script Pro}{30}{+aalt=2}f}inal statemen{\myfont{Bickham Script Pro}{30}{+aalt=3}t} is Crucial.}
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+
+
+
+
+
+
+\subsection{Baseline tags}These convey information about the baseline and about writing modes like horizontal, vertical, and math. More details about these tags can be found \href{https://www.microsoft.com/typography/otspec/baselinetags.htm}{here}.
+
+
+
+\section{Other features}{Other features}This section will describe some font features provided by \capsxetex.
+
+\subsection{Font options}When an installed font is declared using \code{font-change-xetex}, its size and style variant are selected as well. However, if the user would like to force a particular variant of a font family, the following arguments can be~used:\ms
+
+\+/B && Selects the {\bf bold} variant of the declared font.\cr
+\+/I && Selects the {\it italic} variant of the declared font.\cr
+\+/BI && Selects the {\itbf bold italic} or {\itbf italic bold} variant of the declared font.\cr
+\+/IB && Same as /BI.\cr
+\+/S${}=x$ && Uses the font version corresponding to the optical size of $x$\,pt.\cr
+\+/AAT && only for Mac OS~X.\cr
+\+/ICU && only for Mac OS~X.\cr
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{
+\verbatim {\myfont{Warnock Pro/B}{10}{} sets Warnock Pro bold font as the regular font but it is better to say} \myfont{Warnock Pro}{10}{} and then type {\bf some in bold} and {\rm some in regular.}|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\coderesult{\fontss {\bf sets Warnock Pro bold font as the regular font but it is better to say} and then type {\bf some in bold} and some in regular.}
+
+
+
+\subsubsection{Optical sizes}If a font family includes optical sizes then they can be employed using the {\tt /S} option. Fonts with optical size variants produce finely adjusted typefaces according to type-size---this can improve text legibility and typesetting appeal. The default \capstex\ font---Donald Knuth's Computer Modern font---has eight optical sizes: 5, 6, 7, 8, 9, 10, 12, and 17\,pt. Because of these optical fonts, Computer Modern can typeset subscripts, sub-subscripts, superscripts, super-superscripts, and mathematics with elegance. The font used to typeset this document, Warnock Pro, offers four optical sizes: Caption, Regular, Subhead, and Display. Similar optical fonts are provided by other Adobe Pro fonts like Minion Pro, Chaparral Pro, Adobe Garamond Pro,~etc.
+
+When an installed font family is declared in \capsxetex, the optical sizes are chosen automatically. On my system~(Windows~7 with \capsxetex~version~0.99992), depending on the instructed font~size, the Adobe Pro optical font variant is chosen automatically~as:
+\ms
+\+{\it Caption} (<8.9\,pt) &&&&&& \font\try="WarnockPro-Regular/S=5" at 10pt \try This is at 10\,pt.\cr
+\+{\it Regular} (8.9\,pt, 12.9\,pt] &&&&&& \font\try="WarnockPro-Regular/S=10" at 10pt \try This is at 10\,pt.\cr
+\+{\it Subhead} (12.9\,pt, 22.9\,pt] &&&&&& \font\try="WarnockPro-Regular/S=13" at 10pt \try This is at 10\,pt.\cr
+\+{\it Display} (>22.9\,pt) &&&&&& \font\try="WarnockPro-Regular/S=23" at 10pt \try This is at 10\,pt.\cr
+\ms
+If a font family supports optical sizes, then the definitions \code{\bsl myzfont} and \code{\bsl mysanzfont} select the appropriate sizes automatically. Using \code{\bsl myfont}, we can force a particular optical font size~(see the following example) as well. If the declared font family does~not support optical sizes or if \capsxetex\ is not able to use them, then the usual font is used at the instructed~size.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\verbatim
+\twentyrm% Uses the 20 pt variant, that is, Subhead
+\noindent Triangles-un-zybfi
+
+\myfont{Warnock Pro/S=5}{20}{}% Forces the 5 pt variant, that is, Caption at 20 pt
+\noindent Triangles-un-zybfi|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{
+\noindent \twentyrm Triangles-un-zybfi
+
+\noindent \myfont{Warnock Pro/S=5}{20}{}
+Triangles-un-zybfi
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+
+
+
+
+
+
+
+
+
+\subsection{Color}In the \textcolor{blue}{\sl optional font features} of the definitions of \code{font-change-xetex}, the user can declare the font color using the argument:
+
+\cl{\code{color=RRGGBB}}
+\sk
+\ii where {\tt RR}, {\tt GG}, and {\tt BB} are the three respective pairs of \textcolor{red}{Red}, \textcolor{green}{Green}, and \textcolor{blue}{Blue} hexadecimal values. Many RGB colors and their corresponding hexadecimal values can be found \href{http://cloford.com/resources/colours/500col.htm}{here}.
+
+\bs
+
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{
+\verbatim \myfont{Warnock Pro}{10}{color=800080} This is somewhat purple.|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}
+\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\coderesult{\font\try="WarnockPro-Regular:color=800080" at 10pt \try This is somewhat purple.}
+
+
+
+\subsection{Letter-spacing}The letters of a declared font~(installed on the system) can be spaced using the \capsxetex's \code{letterspace} option. The following example illustrates~this.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{
+\verbatim \myfont{Warnock Pro}{10}{letterspace=10} The letters are too spaced.|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}
+\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\coderesult{\font\try="WarnockPro-Regular:letterspace=10" at 10pt \try The letters are too spaced.}
+
+
+
+
+\subsection{Inter-line and inter-word spacing}When a font is declared using \code{\bsl myzfont}, \code{\bsl mysanzfont}, or \code{\bsl myfont} at a given size, the inter-line and inter-word spacing is done automatically depending on size of the font. This is done through the definition \code{\bsl fontss}~(declared in the macro \code{font-change-xetex}), which~is:
+
+\ms
+{\color{brown}
+\verbatim \def\fontss{\parindent=2em%
+\baselineskip=2.8ex%
+\spaceskip=0.30001em plus0.11em minus0.11em}%
+|endverbatim}
+\ms
+
+If other---small or large---font sizes are used via definitions like \code{\bsl fourteenbf} or \code{\bsl sevenrm}, it is recommended to declare \code{\bsl fontss} immediately after declaring font-size commands. If one wants to change the parameters of the \code{\bsl fontss} definition, a new definition with the same name but different parameters can be declared anywhere in the document---this will effect the following text. Also, it is possible to declare the just parameters included in \code{\bsl fontss}~differently.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\verbatim
+\myzfont{Warnock Pro}{15}{} The type is large but the inter-line and inter-word space have been taken into account.
+\bigskip\bigskip
+\twentyrm This is 30\,pt; the inter-line and inter-word spacing is not good.
+\bigskip\bigskip
+\twentyrm\fontss This is 30\,pt; the inter-line and inter-word spacing is better.
+|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{
+{\font\try="WarnockPro-Regular" at 15pt \try \fontss
+The type is large but the inter-line and inter-word space have been taken into account.}
+\bigskip\bigskip
+\font\try="WarnockPro-Regular" at 30pt \try
+\indent This is 30\,pt; the inter-line and inter-word spacing is not good.
+\bigskip\bigskip
+\fontss
+This is 30\,pt; the inter-line and inter-word spacing is better.
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+
+
+
+\section{Special characters using Unicode}{Special characters using Unicode}The package \code{font-change-xetex} includes several commands to typeset special Unicode characters. If the active font has the required glyph, then the following commands produce the corresponding special characters. Note that there is a prefix {\tt u} before the character's common~name.
+
+\quadcolumns
+{\myfont{Cambria Math}{10}{}
+\settabs5\columns
+\+{\color{brown} \verbatim \uAlpha |endverbatim} &&&{Α}\cr
+\+{\color{brown} \verbatim \uBeta |endverbatim} &&&{Β}\cr
+\+{\color{brown} \verbatim \uGamma |endverbatim} &&&{Γ}\cr
+\+{\color{brown} \verbatim \uDelta |endverbatim} &&&{Δ}\cr
+\+{\color{brown} \verbatim \uEpsilon |endverbatim} &&&{Ε}\cr
+\+{\color{brown} \verbatim \uZeta |endverbatim} &&&{Ζ}\cr
+\+{\color{brown} \verbatim \uEta |endverbatim} &&&{Η}\cr
+\+{\color{brown} \verbatim \uTheta |endverbatim} &&&{Θ}\cr
+\+{\color{brown} \verbatim \uIota |endverbatim} &&&{Ι}\cr
+\+{\color{brown} \verbatim \uKappa |endverbatim} &&&{Κ}\cr
+\+{\color{brown} \verbatim \uLambda |endverbatim} &&&{Λ}\cr
+\+{\color{brown} \verbatim \uMu |endverbatim} &&&{Μ}\cr
+\+{\color{brown} \verbatim \uNu |endverbatim} &&&{Ν}\cr
+\+{\color{brown} \verbatim \uXi |endverbatim} &&&{Ξ}\cr
+\+{\color{brown} \verbatim \uOmicron |endverbatim} &&&{Ο}\cr
+\+{\color{brown} \verbatim \uPi |endverbatim} &&&{Π}\cr
+\+{\color{brown} \verbatim \uRho |endverbatim} &&&{Ρ}\cr
+\+{\color{brown} \verbatim \uSigma |endverbatim} &&&{Σ}\cr
+\+{\color{brown} \verbatim \uTau |endverbatim} &&&{Τ}\cr
+\+{\color{brown} \verbatim \uUpsilon |endverbatim} &&&{Υ}\cr
+\+{\color{brown} \verbatim \uPhi |endverbatim} &&&{Φ}\cr
+\+{\color{brown} \verbatim \uChi |endverbatim} &&&{Χ}\cr
+\+{\color{brown} \verbatim \uPsi |endverbatim} &&&{Ψ}\cr
+\+{\color{brown} \verbatim \uOmega |endverbatim} &&&{Ω}\cr
+\+{\color{brown} \verbatim \ualpha |endverbatim} &&&{α}\cr
+\+{\color{brown} \verbatim \ubeta |endverbatim} &&&{β}\cr
+\+{\color{brown} \verbatim \ugamma |endverbatim} &&&{γ}\cr
+\+{\color{brown} \verbatim \udelta |endverbatim} &&&{δ}\cr
+\+{\color{brown} \verbatim \uepsilon |endverbatim} &&&{ε}\cr
+\+{\color{brown} \verbatim \uzeta |endverbatim} &&&{ζ}\cr
+\+{\color{brown} \verbatim \ueta |endverbatim} &&&{η}\cr
+\+{\color{brown} \verbatim \utheta |endverbatim} &&&{θ}\cr
+\+{\color{brown} \verbatim \uiota |endverbatim} &&&{ι}\cr
+\+{\color{brown} \verbatim \ukappa |endverbatim} &&&{κ}\cr
+\+{\color{brown} \verbatim \ulambda |endverbatim} &&&{λ}\cr
+\+{\color{brown} \verbatim \umu |endverbatim} &&&{μ}\cr
+\+{\color{brown} \verbatim \unu |endverbatim} &&&{ν}\cr
+\+{\color{brown} \verbatim \uxi |endverbatim} &&&{ξ}\cr
+\+{\color{brown} \verbatim \uomicron |endverbatim} &&&{ο}\cr
+\+{\color{brown} \verbatim \upi |endverbatim} &&&{π}\cr
+\+{\color{brown} \verbatim \urho |endverbatim} &&&{ρ}\cr
+\+{\color{brown} \verbatim \usigmaf |endverbatim} &&&{ς}\cr
+\+{\color{brown} \verbatim \usigma |endverbatim} &&&{σ}\cr
+\+{\color{brown} \verbatim \utau |endverbatim} &&&{τ}\cr
+\+{\color{brown} \verbatim \uupsilon |endverbatim} &&&{υ}\cr
+\+{\color{brown} \verbatim \uphi |endverbatim} &&&{φ}\cr
+\+{\color{brown} \verbatim \uchi |endverbatim} &&&{χ}\cr
+\+{\color{brown} \verbatim \upsi |endverbatim} &&&{ψ}\cr
+\+{\color{brown} \verbatim \uomega |endverbatim} &&&{ω}\cr
+\+{\color{brown} \verbatim \uthetasym |endverbatim} &&&{ϑ}\cr
+\+{\color{brown} \verbatim \uupsih |endverbatim} &&&{ϒ}\cr
+\+{\color{brown} \verbatim \upiv |endverbatim} &&&{ϖ}\cr
+\+{\color{brown} \verbatim \ubull |endverbatim} &&&{•}\cr
+\+{\color{brown} \verbatim \uhellip |endverbatim} &&&{…}\cr
+\+{\color{brown} \verbatim \uprime |endverbatim} &&&{′}\cr
+\+{\color{brown} \verbatim \uPrime |endverbatim} &&&{″}\cr
+\+{\color{brown} \verbatim \uoline |endverbatim} &&&{‾}\cr
+\+{\color{brown} \verbatim \ufrasl |endverbatim} &&&{⁄}\cr
+\+{\color{brown} \verbatim \uweierp |endverbatim} &&&{℘}\cr
+\+{\color{brown} \verbatim \uimage |endverbatim} &&&{ℑ}\cr
+\+{\color{brown} \verbatim \ureal |endverbatim} &&&{ℜ}\cr
+\+{\color{brown} \verbatim \utrade |endverbatim} &&&{™}\cr
+\+{\color{brown} \verbatim \ualefsym |endverbatim} &&&{ℵ}\cr
+\+{\color{brown} \verbatim \ularr |endverbatim} &&&{←}\cr
+\+{\color{brown} \verbatim \uuarr |endverbatim} &&&{↑}\cr
+\+{\color{brown} \verbatim \urarr |endverbatim} &&&{→}\cr
+\+{\color{brown} \verbatim \udarr |endverbatim} &&&{↓}\cr
+\+{\color{brown} \verbatim \uharr |endverbatim} &&&{↔}\cr
+\+{\color{brown} \verbatim \ucrarr |endverbatim} &&&{↵}\cr
+\+{\color{brown} \verbatim \ulArr |endverbatim} &&&{⇐}\cr
+\+{\color{brown} \verbatim \uuArr |endverbatim} &&&{⇑}\cr
+\+{\color{brown} \verbatim \urArr |endverbatim} &&&{⇒}\cr
+\+{\color{brown} \verbatim \udArr |endverbatim} &&&{⇓}\cr
+\+{\color{brown} \verbatim \uhArr |endverbatim} &&&{⇔}\cr
+\+{\color{brown} \verbatim \uforall |endverbatim} &&&{∀}\cr
+\+{\color{brown} \verbatim \upart |endverbatim} &&&{∂}\cr
+\+{\color{brown} \verbatim \uexist |endverbatim} &&&{∃}\cr
+\+{\color{brown} \verbatim \uempty |endverbatim} &&&{∅}\cr
+\+{\color{brown} \verbatim \unabla |endverbatim} &&&{∇}\cr
+\+{\color{brown} \verbatim \uisin |endverbatim} &&&{∈}\cr
+\+{\color{brown} \verbatim \unotin |endverbatim} &&&{∉}\cr
+\+{\color{brown} \verbatim \uni |endverbatim} &&&{∋}\cr
+\+{\color{brown} \verbatim \uprod |endverbatim} &&&{∏}\cr
+\+{\color{brown} \verbatim \usum |endverbatim} &&&{∑}\cr
+\+{\color{brown} \verbatim \uminus |endverbatim} &&&{−}\cr
+\+{\color{brown} \verbatim \ulowast |endverbatim} &&&{∗}\cr
+\+{\color{brown} \verbatim \uradic |endverbatim} &&&{√}\cr
+\+{\color{brown} \verbatim \uprop |endverbatim} &&&{∝}\cr
+\+{\color{brown} \verbatim \uinfin |endverbatim} &&&{∞}\cr
+\+{\color{brown} \verbatim \uang |endverbatim} &&&{∠}\cr
+\+{\color{brown} \verbatim \uand |endverbatim} &&&{∧}\cr
+\+{\color{brown} \verbatim \uor |endverbatim} &&&{∨}\cr
+\+{\color{brown} \verbatim \ucap |endverbatim} &&&{∩}\cr
+\+{\color{brown} \verbatim \ucup |endverbatim} &&&{∪}\cr
+\+{\color{brown} \verbatim \uint |endverbatim} &&&{∫}\cr
+\+{\color{brown} \verbatim \uthere4 |endverbatim} &&&{∴}\cr
+\+{\color{brown} \verbatim \usim |endverbatim} &&&{∼}\cr
+\+{\color{brown} \verbatim \ucong |endverbatim} &&&{≅}\cr
+\+{\color{brown} \verbatim \uasymp |endverbatim} &&&{≈}\cr
+\+{\color{brown} \verbatim \une |endverbatim} &&&{≠}\cr
+\+{\color{brown} \verbatim \uequiv |endverbatim} &&&{≡}\cr
+\+{\color{brown} \verbatim \ule |endverbatim} &&&{≤}\cr
+\+{\color{brown} \verbatim \uge |endverbatim} &&&{≥}\cr
+\+{\color{brown} \verbatim \usub |endverbatim} &&&{⊂}\cr
+\+{\color{brown} \verbatim \usup |endverbatim} &&&{⊃}\cr
+\+{\color{brown} \verbatim \unsub |endverbatim} &&&{⊄}\cr
+\+{\color{brown} \verbatim \usube |endverbatim} &&&{⊆}\cr
+\+{\color{brown} \verbatim \usupe |endverbatim} &&&{⊇}\cr
+\+{\color{brown} \verbatim \uoplus |endverbatim} &&&{⊕}\cr
+\+{\color{brown} \verbatim \uotimes |endverbatim} &&&{⊗}\cr
+\+{\color{brown} \verbatim \uperp |endverbatim} &&&{⊥}\cr
+\+{\color{brown} \verbatim \usdot |endverbatim} &&&{⋅}\cr
+\+{\color{brown} \verbatim \ulceil |endverbatim} &&&{⌈}\cr
+\+{\color{brown} \verbatim \urceil |endverbatim} &&&{⌉}\cr
+\+{\color{brown} \verbatim \ulfloor |endverbatim} &&&{⌊}\cr
+\+{\color{brown} \verbatim \urfloor |endverbatim} &&&{⌋}\cr
+\+{\color{brown} \verbatim \ulang |endverbatim} &&&{⟨}\cr
+\+{\color{brown} \verbatim \urang |endverbatim} &&&{⟩}\cr
+\+{\color{brown} \verbatim \uloz |endverbatim} &&&{◊}\cr
+\+{\color{brown} \verbatim \uspades |endverbatim} &&&{♠}\cr
+\+{\color{brown} \verbatim \uclubs |endverbatim} &&&{♣}\cr
+\+{\color{brown} \verbatim \uhearts |endverbatim} &&&{♥}\cr
+\+{\color{brown} \verbatim \udiams |endverbatim} &&&{♦}\cr
+\+{\color{brown} \verbatim \ufnof |endverbatim} &&&{ƒ}\cr
+\+{\color{brown} \verbatim \uensp |endverbatim} &&&{ }\cr
+\+{\color{brown} \verbatim \uemsp |endverbatim} &&&{ }\cr
+\+{\color{brown} \verbatim \uthinsp |endverbatim} &&&{ }\cr
+\+{\color{brown} \verbatim \uzwnj |endverbatim} &&&{‌}\cr
+\+{\color{brown} \verbatim \uzwj |endverbatim} &&&{‍}\cr
+\+{\color{brown} \verbatim \ulrm |endverbatim} &&&{‎}\cr
+\+{\color{brown} \verbatim \urlm |endverbatim} &&&{‏}\cr
+\+{\color{brown} \verbatim \undash |endverbatim} &&&{–}\cr
+\+{\color{brown} \verbatim \umdash |endverbatim} &&&{—}\cr
+\+{\color{brown} \verbatim \ulsquo |endverbatim} &&&{‘}\cr
+\+{\color{brown} \verbatim \ursquo |endverbatim} &&&{’}\cr
+\+{\color{brown} \verbatim \usbquo |endverbatim} &&&{‚}\cr
+\+{\color{brown} \verbatim \uldquo |endverbatim} &&&{“}\cr
+\+{\color{brown} \verbatim \urdquo |endverbatim} &&&{”}\cr
+\+{\color{brown} \verbatim \ubdquo |endverbatim} &&&{„}\cr
+\+{\color{brown} \verbatim \udagger |endverbatim} &&&{†}\cr
+\+{\color{brown} \verbatim \uDagger |endverbatim} &&&{‡}\cr
+\+{\color{brown} \verbatim \upermil |endverbatim} &&&{‰}\cr
+\+{\color{brown} \verbatim \ulsaquo |endverbatim} &&&{‹}\cr
+\+{\color{brown} \verbatim \ursaquo |endverbatim} &&&{›}\cr
+\+{\color{brown} \verbatim \ueuro |endverbatim} &&&{€}\cr
+\+{\color{brown} \verbatim \ucirc |endverbatim} &&&{ˆ}\cr
+\+{\color{brown} \verbatim \utilde |endverbatim} &&&{˜}\cr
+\+{\color{brown} \verbatim \uOElig |endverbatim} &&&{Œ}\cr
+\+{\color{brown} \verbatim \uoelig |endverbatim} &&&{œ}\cr
+\+{\color{brown} \verbatim \uScaron |endverbatim} &&&{Š}\cr
+\+{\color{brown} \verbatim \uscaron |endverbatim} &&&{š}\cr
+\+{\color{brown} \verbatim \uYuml |endverbatim} &&&{Ÿ}\cr
+\+{\color{brown} \verbatim \uquot |endverbatim} &&&{"}\cr
+\+{\color{brown} \verbatim \uamp |endverbatim} &&&{\&}\cr
+\+{\color{brown} \verbatim \uapos |endverbatim} &&&{'}\cr
+\+{\color{brown} \verbatim \ult |endverbatim} &&&{<}\cr
+\+{\color{brown} \verbatim \ugt |endverbatim} &&&{>}\cr
+\+{\color{brown} \verbatim \unbsp |endverbatim} &&&{}\cr
+\+{\color{brown} \verbatim \uiexcl |endverbatim} &&&{¡}\cr
+\+{\color{brown} \verbatim \ucent |endverbatim} &&&{¢}\cr
+\+{\color{brown} \verbatim \upound |endverbatim} &&&{£}\cr
+\+{\color{brown} \verbatim \ucurren |endverbatim} &&&{¤}\cr
+\+{\color{brown} \verbatim \uyen |endverbatim} &&&{¥}\cr
+\+{\color{brown} \verbatim \ubrvbar |endverbatim} &&&{¦}\cr
+\+{\color{brown} \verbatim \usect |endverbatim} &&&{§}\cr
+\+{\color{brown} \verbatim \uuml |endverbatim} &&&{¨}\cr
+\+{\color{brown} \verbatim \ucopy |endverbatim} &&&{©}\cr
+\+{\color{brown} \verbatim \uordf |endverbatim} &&&{ª}\cr
+\+{\color{brown} \verbatim \ulaquo |endverbatim} &&&{«}\cr
+\+{\color{brown} \verbatim \unot |endverbatim} &&&{¬}\cr
+\+{\color{brown} \verbatim \ushy |endverbatim} &&&{­}\cr
+\+{\color{brown} \verbatim \ureg |endverbatim} &&&{®}\cr
+\+{\color{brown} \verbatim \umacr |endverbatim} &&&{¯}\cr
+\+{\color{brown} \verbatim \udeg |endverbatim} &&&{°}\cr
+\+{\color{brown} \verbatim \uplusmn |endverbatim} &&&{±}\cr
+\+{\color{brown} \verbatim \usup2 |endverbatim} &&&{²}\cr
+\+{\color{brown} \verbatim \usup3 |endverbatim} &&&{³}\cr
+\+{\color{brown} \verbatim \uacute |endverbatim} &&&{´}\cr
+\+{\color{brown} \verbatim \umicro |endverbatim} &&&{µ}\cr
+\+{\color{brown} \verbatim \upara |endverbatim} &&&{¶}\cr
+\+{\color{brown} \verbatim \umiddot |endverbatim} &&&{·}\cr
+\+{\color{brown} \verbatim \ucedil |endverbatim} &&&{¸}\cr
+\+{\color{brown} \verbatim \usup1 |endverbatim} &&&{¹}\cr
+\+{\color{brown} \verbatim \uordm |endverbatim} &&&{º}\cr
+\+{\color{brown} \verbatim \uraquo |endverbatim} &&&{»}\cr
+\+{\color{brown} \verbatim \ufrac14 |endverbatim} &&&{¼}\cr
+\+{\color{brown} \verbatim \ufrac12 |endverbatim} &&&{½}\cr
+\+{\color{brown} \verbatim \ufrac34 |endverbatim} &&&{¾}\cr
+\+{\color{brown} \verbatim \uiquest |endverbatim} &&&{¿}\cr
+\+{\color{brown} \verbatim \uAgrave |endverbatim} &&&{À}\cr
+\+{\color{brown} \verbatim \uAacute |endverbatim} &&&{Á}\cr
+\+{\color{brown} \verbatim \uAcirc |endverbatim} &&&{Â}\cr
+\+{\color{brown} \verbatim \uAtilde |endverbatim} &&&{Ã}\cr
+\+{\color{brown} \verbatim \uAuml |endverbatim} &&&{Ä}\cr
+\+{\color{brown} \verbatim \uAring |endverbatim} &&&{Å}\cr
+\+{\color{brown} \verbatim \uAElig |endverbatim} &&&{Æ}\cr
+\+{\color{brown} \verbatim \uCcedil |endverbatim} &&&{Ç}\cr
+\+{\color{brown} \verbatim \uEgrave |endverbatim} &&&{È}\cr
+\+{\color{brown} \verbatim \uEacute |endverbatim} &&&{É}\cr
+\+{\color{brown} \verbatim \uEcirc |endverbatim} &&&{Ê}\cr
+\+{\color{brown} \verbatim \uEuml |endverbatim} &&&{Ë}\cr
+\+{\color{brown} \verbatim \uIgrave |endverbatim} &&&{Ì}\cr
+\+{\color{brown} \verbatim \uIacute |endverbatim} &&&{Í}\cr
+\+{\color{brown} \verbatim \uIcirc |endverbatim} &&&{Î}\cr
+\+{\color{brown} \verbatim \uIuml |endverbatim} &&&{Ï}\cr
+\+{\color{brown} \verbatim \uETH |endverbatim} &&&{Ð}\cr
+\+{\color{brown} \verbatim \uNtilde |endverbatim} &&&{Ñ}\cr
+\+{\color{brown} \verbatim \uOgrave |endverbatim} &&&{Ò}\cr
+\+{\color{brown} \verbatim \uOacute |endverbatim} &&&{Ó}\cr
+\+{\color{brown} \verbatim \uOcirc |endverbatim} &&&{Ô}\cr
+\+{\color{brown} \verbatim \uOtilde |endverbatim} &&&{Õ}\cr
+\+{\color{brown} \verbatim \uOuml |endverbatim} &&&{Ö}\cr
+\+{\color{brown} \verbatim \utimes |endverbatim} &&&{×}\cr
+\+{\color{brown} \verbatim \uOslash |endverbatim} &&&{Ø}\cr
+\+{\color{brown} \verbatim \uUgrave |endverbatim} &&&{Ù}\cr
+\+{\color{brown} \verbatim \uUacute |endverbatim} &&&{Ú}\cr
+\+{\color{brown} \verbatim \uUcirc |endverbatim} &&&{Û}\cr
+\+{\color{brown} \verbatim \uUuml |endverbatim} &&&{Ü}\cr
+\+{\color{brown} \verbatim \uYacute |endverbatim} &&&{Ý}\cr
+\+{\color{brown} \verbatim \uTHORN |endverbatim} &&&{Þ}\cr
+\+{\color{brown} \verbatim \uszlig |endverbatim} &&&{ß}\cr
+\+{\color{brown} \verbatim \uagrave |endverbatim} &&&{à}\cr
+\+{\color{brown} \verbatim \uaacute |endverbatim} &&&{á}\cr
+\+{\color{brown} \verbatim \uacirc |endverbatim} &&&{â}\cr
+\+{\color{brown} \verbatim \uatilde |endverbatim} &&&{ã}\cr
+\+{\color{brown} \verbatim \uauml |endverbatim} &&&{ä}\cr
+\+{\color{brown} \verbatim \uaring |endverbatim} &&&{å}\cr
+\+{\color{brown} \verbatim \uaelig |endverbatim} &&&{æ}\cr
+\+{\color{brown} \verbatim \uccedil |endverbatim} &&&{ç}\cr
+\+{\color{brown} \verbatim \uegrave |endverbatim} &&&{è}\cr
+\+{\color{brown} \verbatim \ueacute |endverbatim} &&&{é}\cr
+\+{\color{brown} \verbatim \uecirc |endverbatim} &&&{ê}\cr
+\+{\color{brown} \verbatim \ueuml |endverbatim} &&&{ë}\cr
+\+{\color{brown} \verbatim \uigrave |endverbatim} &&&{ì}\cr
+\+{\color{brown} \verbatim \uiacute |endverbatim} &&&{í}\cr
+\+{\color{brown} \verbatim \uicirc |endverbatim} &&&{î}\cr
+\+{\color{brown} \verbatim \uiuml |endverbatim} &&&{ï}\cr
+\+{\color{brown} \verbatim \ueth |endverbatim} &&&{ð}\cr
+\+{\color{brown} \verbatim \untilde |endverbatim} &&&{ñ}\cr
+\+{\color{brown} \verbatim \uograve |endverbatim} &&&{ò}\cr
+\+{\color{brown} \verbatim \uoacute |endverbatim} &&&{ó}\cr
+\+{\color{brown} \verbatim \uocirc |endverbatim} &&&{ô}\cr
+\+{\color{brown} \verbatim \uotilde |endverbatim} &&&{õ}\cr
+\+{\color{brown} \verbatim \uouml |endverbatim} &&&{ö}\cr
+\+{\color{brown} \verbatim \udivide |endverbatim} &&&{÷}\cr
+\+{\color{brown} \verbatim \uoslash |endverbatim} &&&{ø}\cr
+\+{\color{brown} \verbatim \uugrave |endverbatim} &&&{ù}\cr
+\+{\color{brown} \verbatim \uuacute |endverbatim} &&&{ú}\cr
+\+{\color{brown} \verbatim \uucirc |endverbatim} &&&{û}\cr
+\+{\color{brown} \verbatim \uuuml |endverbatim} &&&{ü}\cr
+\+{\color{brown} \verbatim \uyacute |endverbatim} &&&{ý}\cr
+\+{\color{brown} \verbatim \uthorn |endverbatim} &&&{þ}\cr
+\+{\color{brown} \verbatim \uyuml |endverbatim} &&&{ÿ}\cr
+\+{\color{brown} \verbatim \uhbar |endverbatim} &&&{ħ}\cr
+}
+
+\singlecolumn
+
+
+\ii We used the font Cambria Math to typeset the special unicode characters above. Other fonts, such as the main font family used in this document can be used as well. Note that some fonts may~not include many Unicode characters.
+
+\bs
+
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\verbatim
+The life of \ualpha\ was made better after tilting and becoming {\it \ualpha}---the tilt was about 15\udeg. Even small {\sevenbf \uGamma} and elder {\fourteenbf \uGamma} want to be {\sevenitbf \uGamma} and {\fourteenitbf \uGamma}. But \umu\ prefers to stay upright when used in $2$\,\umu l.|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\coderesult{The life of \ualpha\ was made better after tilting and becoming {\it \ualpha}---the tilt was about 15\udeg. Even small {\sevenbf \uGamma} and elder {\fourteenbf \uGamma} want to be {\sevenitbf \uGamma} and {\fourteenitbf \uGamma}. But \umu\ prefers to stay upright when used in $2$\,\umu l.}
+
+
+
+
+
+
+
+
+
+\section{Changing some math fonts}{Changing some math fonts}This feature changes some math fonts and is currently under development. The changed math fonts belong to {\sl family $0$}; this means that regular numerals~({\myfont{Warnock Pro}{10}{:+pnum:+lnum}0--9}), regular letters~(a--z and A--Z), upright Greek capitals~(\uGamma, \uDelta, \uTheta, \uLambda, \uXi, \uPi, \uSigma, \uUpsilon, \uPhi, \uPsi, \uOmega), and hat~(\;$\hat{}$\;) are changed. As a consequence of this change, numbers in text mode~(e.g., {\tt 149.75}) and in math mode~(e.g., {\tt \$149.75\$}) will be typeset using the same font. The change can be implemented~by:
+\ms
+\ii\inbox{\code{\bsl mymathfont\{\textcolor{blue}{\sl font name}\}\{\textcolor{blue}{\sl font size in points}\}}}
+\sk
+\ii It is possible to use \code{\bsl mymathfont} multiple times in the same document. However, before reusing \code{\bsl mymathfont}, the font size has to be reset by using the macro \code{\bsl resetfontsize}, which is included in \code{font-change-xetex}.
+
+\bs
+\ii\textcolor{red}{\bf Warning 1}: The macro \code{\bsl mymathfont} should be declared after \code{\bsl myzfont} or \code{\bsl myfont}, and after \code{\bsl hangpun} or \hbox{\code{\bsl nohangpun}}. In other words, the selection of the main body font and the choice between using hanging punctuation or not has to be made before invoking~\code{\bsl mymathfont}. If the definition \code{\bsl mymathfont} is invoked and the text font is selected multiple times using \code{\bsl myfont}, then after each selection, the math font must be redeclared using \code{\bsl mymathfont}. Otherwise, the capital upright Greek letters in math mode will be~missing.
+
+
+\bs
+\mymathfont{Warnock Pro}{10}
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\verbatim
+\mysanzfont{Calibri}{11}{:+pnum:+lnum}% To use Calibri as the sans serif font
+\input font_kp% From the package font-change; math fonts compatible with Warnock Pro
+\myzfont{Warnock Pro}{10}{:+pnum:+lnum}% To use Warnock Pro as the main font
+\mymathfont{Warnock Pro}{10}% To typeset some math using Warnock Pro
+\centerline{\sanstwelvecapsbf Math Font Test}
+\bigskip
+This font is Warnock Pro. The year is 2016. Check the number 2016 below
+$$
+2016 \sin(x) + e^{xy} + \Gamma.
+$$
+In the above expression 2016, $\sin$, (, ), and \uGamma\ are in Warnock Pro, whereas e, x, and y are in Kp font.|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\coderesult{\centerline{\sanstwelvecapsbf Math Font Test}
+\myfont{Warnock Pro}{10}{:+pnum:+lnum}
+\resetfontsize\mymathfont{Warnock Pro}{10}%
+\bigskip
+This font is Warnock Pro. The year is 2016. Check the number 2016 below
+$$
+2016 \sin(x) + e^{xy} + \Gamma.
+$$
+In the above expression 2016, $\sin$, (, ), and \uGamma\ are in Warnock Pro, whereas e, x, and y are in Kp font.}
+
+
+
+
+
+
+\bs
+\ii\textcolor{red}{\bf Warning 2}: It may happen that the declared math font does not have Greek characters or there are some coding issues. As a result of this, the Greek letters will not be typeset! In the following example, we use the font Chaparral Pro for some maths but despite being a ``Pro'' font, it does~not have Greek letter support.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\verbatim
+\mysanzfont{Calibri}{11}{:+pnum:+lnum}% To use Calibri as the sans serif font
+\myzfont{Chaparral Pro}{11}{:+pnum:+lnum}% To use Chaparral Pro as the main font
+\mymathfont{Chaparral Pro}{11}% To typeset some math using Chaparral Pro
+\centerline{\sanstwelvecapsbf Failed Math Font Test}
+\bigskip
+This font is Chaparral Pro. Take a look at the following equation:
+$$
+\Psi(x) = 173x^2 + 22\cos(x) + \Gamma(x)
+$$
+In the above expression 173, 22, (, ), and $\cos$ are in Chaparral Pro, while x and = are in Kp font, but the Greek letters are missing.|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\font\try="Chaparral Pro:+pnum:+lnum" at 11pt \try
+\resetfontsize \mymathfont{Chaparral Pro}{11}% To typeset some math using Chaparral Pro
+\centerline{\sanstwelvecapsbf Failed Math Font Test}
+\bigskip
+This font is Chaparral Pro. Take a look at the following equation:
+$$
+\Psi(x) = 173x^2 + 22\cos(x) + \Gamma(x)
+$$
+In the above expression 173, 22, (, ), and $\cos$ are in Chaparral Pro, while x and = are in Kp font, but the Greek letters are missing.}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+
+
+
+
+
+\section{font-change-xetex with font-change}{font-change-xetex with font-change}The text font changing capabilities of \code{font-change-xetex} can be combined with the package \code{font-change}~\cite{dhawan_font-change-3} which can change both math and text fonts. A font-changing macro from \code{font-change} has to be declared before the definitions of \code{font-change-xetex} so that the math font is chosen from \code{font-change} and the text font is selected by \code{font-change-xetex}. The definition \code{\bsl mymathfont} can be used to change some math fonts as well. The following example shows~this.
+
+\bs
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{\verbatim
+\mysanzfont{Calibri}{11}{:+pnum:+lnum}% To use Calibri as the sans serif font
+\input font_kp% From the package font-change; math fonts compatible with Chaparral Pro
+\myzfont{Minion Pro}{10}{:+pnum:+lnum}% To use Minion Pro as the main font
+\mymathfont{Minion Pro}{10}% To use Minion Pro for some math
+\centerline{\sanstwelvecapsbf Text \& Math Font Test}
+\bigskip
+The text font is Minion Pro, most math is in Kp font, and some math is in Minion Pro. \TeX's Kp fonts go very well with many fonts like Warnock Pro, Adobe Garamond Pro, Minion Pro, etc. The text typed below shows how harmonious the mix of Minion Pro and Kp fonts is.
+$$
+\Psi(x) = 173x^2 + 22\cos(x) + \Gamma(x)
+$$
+|endverbatim
+}
+\vskip0.5\baselineskip}\vrule}}\hrule}
+\sk\cl{$\downarrow \downarrow \downarrow$}\sk
+\vbox{\hrule\hbox{\vrule\hbox{\leftskip7mm\rightskip7mm
+\vbox{\vskip0.5\baselineskip \parindent=0pt
+{
+%\mysanzfont{Calibri}{11}{:+pnum:+lnum}% To use Calibri as the sans serif font
+%\input font_kp% From the package font-change; math fonts compatible with Chaparral Pro
+\myfont{Minion Pro}{10}{:+pnum:+lnum}% To use Minion Pro as the main font
+\resetfontsize\mymathfont{Minion Pro}{10}% To use Minion Pro for some math
+\centerline{\sanstwelvecapsbf Text \& Math Font Test}
+\bigskip
+The text font is Minion Pro, most math is in Kp font, and some math is in Minion Pro. \TeX's Kp fonts go very well with many fonts like Warnock Pro, Adobe Garamond Pro, Minion Pro, etc. The text typed below shows how harmonious the mix of Minion Pro and Kp fonts is.
+$$
+\Psi(x) = 173x^2 + 22\cos(x) + \Gamma(x)
+$$}\vskip0.5\baselineskip}\vrule}}\hrule}
+
+\bs
+The following sample texts display some combinations of math fonts (\capstex\ fonts invoked using \code{font-change}) and text fonts ({\caps otf} or {\caps ttf} fonts invoked using \code{font-change-xetex}).
+
+\newpage \ \ms
+\ii\includegraphics[scale=0.87]{font_samples_1.pdf}
+
+\newpage \ \ms
+\ii\includegraphics[scale=0.87]{font_samples_2.pdf}
+
+\newpage \ \ms
+\ii\includegraphics[scale=0.87]{font_samples_3.pdf}
+
+\newpage \ \ms
+\ii\includegraphics[scale=0.87]{font_samples_4.pdf}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\newpage%
+{\special{pdf: outline 1 << /Title (Bibliography)/Dest [@thispage /FitH @ypos ] >> }}%
+\headline{}%
+\centerline{\textcolor{sectioncolor}{\sanssixteenbf Bibliography}}%
+{\definexref{Bibliography}{Bibliography}{}}%
+\writetocentry{section}{\refs{Bibliography}}%
+\bigskip\bigskip%
+
+
+
+\bibliographystyle{ieeetran}
+\bibliography{c:/bib}
+\footline{\cl{\folio}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\special{pdf: docinfo << /Author (Amit Raj Dhawan)
+/Title (Macros to use OpenType and TrueType fonts with XeTeX)
+/Creator(XeTeX: Based on TeX---The Genius of Knuth)
+/Subject(Using system-installed fonts with XeTeX)
+/Keywords(TeX, XeTeX, fonts, math font, text, maths font, font-change, font-change-xetex, OpenType, TrueType, hanging punctuation, Unicode characters, macro, macros)>>}
+
+\special{pdf: docview <</PageMode /UseOutlines>> }
+
+
+
+
+\bye
diff --git a/macros/xetex/plain/font-change-xetex/tex/macros/font-change-xetex.tex b/macros/xetex/plain/font-change-xetex/tex/macros/font-change-xetex.tex
new file mode 100644
index 0000000000..8c2a04a048
--- /dev/null
+++ b/macros/xetex/plain/font-change-xetex/tex/macros/font-change-xetex.tex
@@ -0,0 +1,1135 @@
+% The author of this work is Amit Raj Dhawan.
+% This work is licensed under the
+% Creative Commons Attribution-ShareAlike 4.0 International License
+% on April 07, 2016. For details visit:
+% http://creativecommons.org/licenses/by-sa/4.0/.
+%
+\def\myfont#1#2#3{% The font can take even non-integer values in #2
+\XeTeXuseglyphmetrics=1%
+\font\rm="#1:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\it="#1/I:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\bf="#1/B:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\sl="#1:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\caps="#1:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at#2pt% +c2sc could also be used but this is better
+\font\itbf="#1/IB:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\slbf="#1/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\capsbf="#1/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\capsit="#1/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\capsitbf="#1/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\capssl="#1:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\font\capsslbf="#1/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at#2pt%
+\rm\fontss}%
+%
+%
+% Introducing dimensions for font scaling
+\newdimen\twentypointfont \twentypointfont=2pt
+\newdimen\eighteenpointfont \eighteenpointfont=1.8pt
+\newdimen\sixteenpointfont \sixteenpointfont=1.6pt
+\newdimen\fourteenpointfont \fourteenpointfont=1.4pt
+\newdimen\twelvepointfont \twelvepointfont=1.2pt
+\newdimen\elevenpointfont \elevenpointfont=1.1pt
+\newdimen\tenpointfont \tenpointfont=1pt
+\newdimen\ninepointfont \ninepointfont=0.9pt
+\newdimen\eightpointfont \eightpointfont=0.8pt
+\newdimen\sevenpointfont \sevenpointfont=0.7pt
+\newdimen\sixpointfont \sixpointfont=0.6pt
+\newdimen\fivepointfont \fivepointfont=0.5pt
+%
+%
+\def\myzfont#1#2#3{% #2 takes only integer values
+\multiply\twentypointfont by #2%
+\multiply\eighteenpointfont by #2%
+\multiply\sixteenpointfont by #2%
+\multiply\fourteenpointfont by #2%
+\multiply\twelvepointfont by #2%
+\multiply\elevenpointfont by #2%
+\multiply\tenpointfont by #2%
+\multiply\ninepointfont by #2%
+\multiply\eightpointfont by #2%
+\multiply\sevenpointfont by #2%
+\multiply\sixpointfont by #2%
+\multiply\fivepointfont by #2%
+%
+\XeTeXuseglyphmetrics=1%
+%
+%
+\font\twentyrm="#1/S=20:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentyit="#1/I/S=20:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentybf="#1/S=20/B:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentysl="#1/S=20:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentycaps="#1/S=20:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont% +c2sc could also be used but this is better
+\font\twentyitbf="#1/S=20/IB:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentyslbf="#1/S=20/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentycapsbf="#1/S=20/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentycapsit="#1/S=20/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentycapsitbf="#1/S=20/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentycapssl="#1/S=20:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\twentycapsslbf="#1/S=20/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+%
+%
+\font\eighteenrm="#1/S=18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteenit="#1/S=18/I:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteenbf="#1/S=18/B:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteensl="#1/S=18:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteencaps="#1/S=18:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont% +c2sc could also be used but this is better
+\font\eighteenitbf="#1/S=18/IB:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteenslbf="#1/S=18/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteencapsbf="#1/S=18/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteencapsit="#1/S=18/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteencapsitbf="#1/S=18/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteencapssl="#1/S=18:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\eighteencapsslbf="#1/S=18/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+%
+%
+\font\sixteenrm="#1/S=16:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteenit="#1/S=16/I:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteenbf="#1/S=16/B:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteensl="#1/S=16:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteencaps="#1/S=16:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont% +c2sc could also be used but this is better
+\font\sixteenitbf="#1/S=16/IB:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteenslbf="#1/S=16/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteencapsbf="#1/S=16/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteencapsit="#1/S=16/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteencapsitbf="#1/S=16/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteencapssl="#1/S=16:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sixteencapsslbf="#1/S=16/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+%
+%
+\font\fourteenrm="#1/S=14:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteenit="#1/S=14/I:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteenbf="#1/S=14/B:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteensl="#1/S=14:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteencaps="#1/S=14:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont% +c2sc could also be used but this is better
+\font\fourteenitbf="#1/S=14/IB:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteenslbf="#1/S=14/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteencapsbf="#1/S=14/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteencapsit="#1/S=14/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteencapsitbf="#1/S=14/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteencapssl="#1/S=14:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\fourteencapsslbf="#1/S=14/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+%
+%
+\font\twelverm="#1/S=12:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelveit="#1/S=12/I:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvebf="#1/S=12/B:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvesl="#1/S=12:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvecaps="#1/S=12:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont% +c2sc could also be used but this is better
+\font\twelveitbf="#1/S=12/IB:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelveslbf="#1/S=12/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvecapsbf="#1/S=12/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvecapsit="#1/S=12/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvecapsitbf="#1/S=12/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvecapssl="#1/S=12:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\twelvecapsslbf="#1/S=12/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+%
+%
+\font\elevenrm="#1/S=11:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevenit="#1/S=11/I:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevenbf="#1/S=11/B:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevensl="#1/S=11:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevencaps="#1/S=11:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont% +c2sc could also be used but this is better
+\font\elevenitbf="#1/S=11/IB:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevenslbf="#1/S=11/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevencapsbf="#1/S=11/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevencapsit="#1/S=11/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevencapsitbf="#1/S=11/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevencapssl="#1/S=11:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\elevencapsslbf="#1/S=11/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+%
+%
+\font\rm="#1/S=10:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\it="#1/S=10/I:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\bf="#1/S=10/B:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sl="#1/S=10:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\caps="#1/S=10:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont% +c2sc could also be used but this is better
+\font\itbf="#1/S=10/IB:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\slbf="#1/S=10/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\capsbf="#1/S=10/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\capsit="#1/S=10/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\capsitbf="#1/S=10/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\capssl="#1/S=10:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\capsslbf="#1/S=10/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+%
+%
+\font\ninerm="#1/S=9:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\nineit="#1/S=9/I:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninebf="#1/S=9/B:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninesl="#1/S=9:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninecaps="#1/S=9:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont% +c2sc could also be used but this is better
+\font\nineitbf="#1/S=9/IB:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\nineslbf="#1/S=9/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninecapsbf="#1/S=9/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninecapsit="#1/S=9/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninecapsitbf="#1/S=9/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninecapssl="#1/S=9:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\ninecapsslbf="#1/S=9/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+%
+%
+\font\eightrm="#1/S=8:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightit="#1/S=8/I:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightbf="#1/S=8/B:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightsl="#1/S=8:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightcaps="#1/S=8:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont% +c2sc could also be used but this is better
+\font\eightitbf="#1/S=8/IB:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightslbf="#1/S=8/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightcapsbf="#1/S=8/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightcapsit="#1/S=8/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightcapsitbf="#1/S=8/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightcapssl="#1/S=8:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\eightcapsslbf="#1/S=8/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+%
+%
+\font\sevenrm="#1/S=7:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevenit="#1/S=7/I:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevenbf="#1/S=7/B:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevensl="#1/S=7:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevencaps="#1/S=7:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont% +c2sc could also be used but this is better
+\font\sevenitbf="#1/S=7/IB:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevenslbf="#1/S=7/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevencapsbf="#1/S=7/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevencapsit="#1/S=7/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevencapsitbf="#1/S=7/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevencapssl="#1/S=7:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sevencapsslbf="#1/S=7/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+%
+%
+\font\sixrm="#1/S=6:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixit="#1/S=6/I:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixbf="#1/S=6/B:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixsl="#1/S=6:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixcaps="#1/S=6:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont% +c2sc could also be used but this is better
+\font\sixitbf="#1/S=6/IB:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixslbf="#1/S=6/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixcapsbf="#1/S=6/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixcapsit="#1/S=6/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixcapsitbf="#1/S=6/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixcapssl="#1/S=6:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sixcapsslbf="#1/S=6/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+%
+%
+\font\fiverm="#1/S=5:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fiveit="#1/S=5/I:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivebf="#1/S=5/B:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivesl="#1/S=5:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivecaps="#1/S=5:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont% +c2sc could also be used but this is better
+\font\fiveitbf="#1/S=5/IB:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fiveslbf="#1/S=5/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivecapsbf="#1/S=5/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivecapsit="#1/S=5/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivecapsitbf="#1/S=5/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivecapssl="#1/S=5:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\fivecapsslbf="#1/S=5/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+%
+%
+\divide\twentypointfont by #2%
+\divide\eighteenpointfont by #2%
+\divide\sixteenpointfont by #2%
+\divide\fourteenpointfont by #2%
+\divide\twelvepointfont by #2%
+\divide\elevenpointfont by #2%
+\divide\tenpointfont by #2%
+\divide\ninepointfont by #2%
+\divide\eightpointfont by #2%
+\divide\sevenpointfont by #2%
+\divide\sixpointfont by #2%
+\divide\fivepointfont by #2%
+%
+\rm\fontss}%
+%
+%
+%
+%
+\def\mysanzfont#1#2#3{% #2 takes only integer values
+\multiply\twentypointfont by #2%
+\multiply\eighteenpointfont by #2%
+\multiply\sixteenpointfont by #2%
+\multiply\fourteenpointfont by #2%
+\multiply\twelvepointfont by #2%
+\multiply\elevenpointfont by #2%
+\multiply\tenpointfont by #2%
+\multiply\ninepointfont by #2%
+\multiply\eightpointfont by #2%
+\multiply\sevenpointfont by #2%
+\multiply\sixpointfont by #2%
+\multiply\fivepointfont by #2%
+%
+\XeTeXuseglyphmetrics=1%
+%
+%
+\font\sanstwentyrm="#1/S=20:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentyit="#1/S=20/I:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentybf="#1/S=20/B:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentysl="#1/S=20:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentycaps="#1/S=20:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont% +c2sc could also be used but this is better
+\font\sanstwentyitbf="#1/S=20/IB:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentyslbf="#1/S=20/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentycapsbf="#1/S=20/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentycapsit="#1/S=20/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentycapsitbf="#1/S=20/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentycapssl="#1/S=20:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+\font\sanstwentycapsslbf="#1/S=20/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twentypointfont%
+%
+%
+\font\sanseighteenrm="#1/S=18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteenit="#1/S=18/I:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteenbf="#1/S=18/B:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteensl="#1/S=18:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteencaps="#1/S=18:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont% +c2sc could also be used but this is better
+\font\sanseighteenitbf="#1/S=18/IB:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteenslbf="#1/S=18/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteencapsbf="#1/S=18/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteencapsit="#1/S=18/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteencapsitbf="#1/S=18/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteencapssl="#1/S=18:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+\font\sanseighteencapsslbf="#1/S=18/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eighteenpointfont%
+%
+%
+\font\sanssixteenrm="#1/S=16:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteenit="#1/S=16/I:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteenbf="#1/S=16/B:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteensl="#1/S=16:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteencaps="#1/S=16:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont% +c2sc could also be used but this is better
+\font\sanssixteenitbf="#1/S=16/IB:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteenslbf="#1/S=16/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteencapsbf="#1/S=16/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteencapsit="#1/S=16/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteencapsitbf="#1/S=16/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteencapssl="#1/S=16:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+\font\sanssixteencapsslbf="#1/S=16/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixteenpointfont%
+%
+%
+\font\sansfourteenrm="#1/S=14:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteenit="#1/S=14/I:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteenbf="#1/S=14/B:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteensl="#1/S=14:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteencaps="#1/S=14:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont% +c2sc could also be used but this is better
+\font\sansfourteenitbf="#1/S=14/IB:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteenslbf="#1/S=14/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteencapsbf="#1/S=14/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteencapsit="#1/S=14/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteencapsitbf="#1/S=14/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteencapssl="#1/S=14:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+\font\sansfourteencapsslbf="#1/S=14/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fourteenpointfont%
+%
+%
+\font\sanstwelverm="#1/S=12:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelveit="#1/S=12/I:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvebf="#1/S=12/B:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvesl="#1/S=12:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvecaps="#1/S=12:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont% +c2sc could also be used but this is better
+\font\sanstwelveitbf="#1/S=12/IB:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelveslbf="#1/S=12/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvecapsbf="#1/S=12/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvecapsit="#1/S=12/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvecapsitbf="#1/S=12/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvecapssl="#1/S=12:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+\font\sanstwelvecapsslbf="#1/S=12/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\twelvepointfont%
+%
+%
+\font\sanselevenrm="#1/S=11:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevenit="#1/S=11/I:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevenbf="#1/S=11/B:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevensl="#1/S=11:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevencaps="#1/S=11:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont% +c2sc could also be used but this is better
+\font\sanselevenitbf="#1/S=11/IB:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevenslbf="#1/S=11/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevencapsbf="#1/S=11/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevencapsit="#1/S=11/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevencapsitbf="#1/S=11/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevencapssl="#1/S=11:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+\font\sanselevencapsslbf="#1/S=11/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\elevenpointfont%
+%
+%
+\font\sansrm="#1/S=10:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sansit="#1/S=10/I:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sansbf="#1/S=10/B:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sanssl="#1/S=10:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sanscaps="#1/S=10:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont% +c2sc could also be used but this is better
+\font\sansitbf="#1/S=10/IB:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sansslbf="#1/S=10/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sanscapsbf="#1/S=10/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sanscapsit="#1/S=10/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sanscapsitbf="#1/S=10/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sanscapssl="#1/S=10:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+\font\sanscapsslbf="#1/S=10/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\tenpointfont%
+%
+%
+\font\sansninerm="#1/S=9:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansnineit="#1/S=9/I:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninebf="#1/S=9/B:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninesl="#1/S=9:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninecaps="#1/S=9:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont% +c2sc could also be used but this is better
+\font\sansnineitbf="#1/S=9/IB:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansnineslbf="#1/S=9/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninecapsbf="#1/S=9/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninecapsit="#1/S=9/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninecapsitbf="#1/S=9/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninecapssl="#1/S=9:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+\font\sansninecapsslbf="#1/S=9/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\ninepointfont%
+%
+%
+\font\sanseightrm="#1/S=8:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightit="#1/S=8/I:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightbf="#1/S=8/B:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightsl="#1/S=8:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightcaps="#1/S=8:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont% +c2sc could also be used but this is better
+\font\sanseightitbf="#1/S=8/IB:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightslbf="#1/S=8/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightcapsbf="#1/S=8/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightcapsit="#1/S=8/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightcapsitbf="#1/S=8/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightcapssl="#1/S=8:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+\font\sanseightcapsslbf="#1/S=8/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\eightpointfont%
+%
+%
+\font\sanssevenrm="#1/S=7:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevenit="#1/S=7/I:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevenbf="#1/S=7/B:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevensl="#1/S=7:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevencaps="#1/S=7:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont% +c2sc could also be used but this is better
+\font\sanssevenitbf="#1/S=7/IB:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevenslbf="#1/S=7/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevencapsbf="#1/S=7/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevencapsit="#1/S=7/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevencapsitbf="#1/S=7/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevencapssl="#1/S=7:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+\font\sanssevencapsslbf="#1/S=7/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sevenpointfont%
+%
+%
+\font\sanssixrm="#1/S=6:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixit="#1/S=6/I:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixbf="#1/S=6/B:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixsl="#1/S=6:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixcaps="#1/S=6:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont% +c2sc could also be used but this is better
+\font\sanssixitbf="#1/S=6/IB:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixslbf="#1/S=6/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixcapsbf="#1/S=6/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixcapsit="#1/S=6/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixcapsitbf="#1/S=6/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixcapssl="#1/S=6:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+\font\sanssixcapsslbf="#1/S=6/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\sixpointfont%
+%
+%
+\font\sansfiverm="#1/S=5:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfiveit="#1/S=5/I:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivebf="#1/S=5/B:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivesl="#1/S=5:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivecaps="#1/S=5:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont% +c2sc could also be used but this is better
+\font\sansfiveitbf="#1/S=5/IB:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfiveslbf="#1/S=5/B:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivecapsbf="#1/S=5/B:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivecapsit="#1/S=5/I:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivecapsitbf="#1/S=5/IB:+smcp:letterspace=2:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivecapssl="#1/S=5:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+\font\sansfivecapsslbf="#1/S=5/B:+smcp:letterspace=2:slant=0.18:mapping=tex-text:+pnum:+onum:#3" at\fivepointfont%
+%
+\divide\twentypointfont by #2%
+\divide\eighteenpointfont by #2%
+\divide\sixteenpointfont by #2%
+\divide\fourteenpointfont by #2%
+\divide\twelvepointfont by #2%
+\divide\elevenpointfont by #2%
+\divide\tenpointfont by #2%
+\divide\ninepointfont by #2%
+\divide\eightpointfont by #2%
+\divide\sevenpointfont by #2%
+\divide\sixpointfont by #2%
+\divide\fivepointfont by #2%
+%
+%
+%\sansrm
+}%
+%
+%
+\def\mymathfont#1#2{% Towards Unicode math. *Should be declared after \hangpun
+\multiply\twentypointfont by #2%
+\multiply\eighteenpointfont by #2%
+\multiply\sixteenpointfont by #2%
+\multiply\fourteenpointfont by #2%
+\multiply\twelvepointfont by #2%
+\multiply\elevenpointfont by #2%
+\multiply\tenpointfont by #2%
+\multiply\ninepointfont by #2%
+\multiply\eightpointfont by #2%
+\multiply\sevenpointfont by #2%
+\multiply\sixpointfont by #2%
+\multiply\fivepointfont by #2%
+% To see math romans in the declared font. E.g. 12 and $12$ will be in the same font
+\font\tenrm="#1/S=10:mapping=tex-text:+pnum:+lnum" at\tenpointfont%
+\font\sevenrm="#1/S=7:mapping=tex-text:+pnum:+lnum" at\sevenpointfont%
+\font\fiverm="#1/S=5:mapping=tex-text:+pnum:+lnum" at\fivepointfont%
+\textfont0=\tenrm%
+\scriptfont0=\sevenrm%
+\scriptscriptfont0=\fiverm%
+\def\rm{\fam=0 \tenrm}%
+%
+% To cope with misnumbered glyphs such as theta of TeX's math italics family
+\def\Gamma{{\rm\mathord Γ}}%
+\def\Delta{{\rm\mathord Δ}}%
+\def\Theta{{\rm\mathord Θ}}%
+\def\Lambda{{\rm\mathord Λ}}%
+\def\Xi{{\rm\mathord Ξ}}%
+\def\Pi{{\rm\mathord Π}}%
+\def\Sigma{{\rm\mathord Σ}}%
+\def\Upsilon{{\rm\mathord ϒ}}%
+\def\Phi{{\rm\mathord Φ}}%
+\def\Psi{{\rm\mathord Ψ}}%
+\def\Omega{{\rm\mathord Ω}}%
+\def\hat{\mathaccent"745E }% Default is \def\hat{\mathaccent"705E }
+% changed it because \mymathfont changes the roman regular font, i.e., family 0
+%
+%\def\alpha{{\mathord α}}%
+%\def\eta{{\mathord η}}%
+%\def\nu{{\mathord ν}}%
+%\def\sigma{{\mathord σ}}%
+%\def\beta{{\mathord β}}%
+%\def\theta{{\mathord θ}}%
+%\def\xi{{\mathord ξ}}%
+%\def\varsigma{{\mathord ς}}%
+%\def\omega{{\mathord ω}}%
+%\def\gamma{{{\mathord γ}}}%
+%\def\vartheta{{\mathord ϑ}}%
+%\def\tau{{\mathord τ}}%
+%\def\delta{{\mathord δ}}%
+%\def\iota{{\mathord ι}}%
+%\def\pi{{\mathord π}}%
+%\def\upsilon{{\mathord υ}}%
+%\def\varGamma{{\mathord Γ}}%
+%\def\epsilon{{\mathord ε}}%
+%\def\kappa{{\mathord κ}}%
+%%\def\varphi % did not figure out
+%\def\phi{{\mathord φ}}%
+%%\def\varepsilon{{\mathord % did not figure out
+%\def\lambda{{\mathord λ}}%
+%\def\rho{{\mathord ρ}}%
+%\def\zeta{{\mathord ζ}}%
+%\def\mu{{\mathord μ}}%
+%\def\chi{{\mathord χ}}%
+%
+%\def\j{^^^^0237}%
+%\def\function{ƒ}%
+%
+\def\mytilde{\mathchoice{\tenrm{\raise1ex\hbox{\char"7E}\kern-1.4ex}}%
+{\tenrm{\raise1ex\hbox{\char"7E}\kern-1.37ex}}%
+{\sevenrm{\raise1ex\hbox{\char"7E}\kern-1.37ex}}%
+{\fiverm{\raise1ex\hbox{\char"7E}\kern-1.37ex}}}% Note that for \mytilde to work properly \input font_kp or \input font_xx should be included before \mymathfont.
+}%
+%
+%
+%
+%
+%
+% For resetting the font size
+\def\resetfontsize{\twentypointfont=2pt%
+\eighteenpointfont=1.8pt%
+\sixteenpointfont=1.6pt%
+\fourteenpointfont=1.4pt%
+\twelvepointfont=1.2pt%
+\elevenpointfont=1.1pt%
+\tenpointfont=1pt%
+\ninepointfont=0.9pt%
+\eightpointfont=0.8pt%
+\sevenpointfont=0.7pt%
+\sixpointfont=0.6pt%
+\fivepointfont=0.5pt}%
+%
+%
+%
+%
+%
+%
+\def\setprotcode#1{%
+ \XeTeXprotrudechars=1%
+ \rpcode#1 U"0021 226% exclamation mark
+ \rpcode#1 U"002C 226% comma
+ \rpcode#1 U"002D 350% hyphen
+ \rpcode#1 U"002E 226% full stop/period
+ \rpcode#1 U"003B 226% semicolon
+ \rpcode#1 U"003A 226% colon
+ \rpcode#1 U"003F 226% question mark
+ \lpcode#1 U"2018 216% left single quote
+ \rpcode#1 U"2019 216% right single quote
+ \lpcode#1 U"201C 366% left double quote
+ \rpcode#1 U"201D 366% right double quote
+ \rpcode#1 U"2013 350% en dash
+ \rpcode#1 U"2014 350% em dash
+}%
+\def\hangpun{%
+\setprotcode{\the\font}{}%
+\setprotcode{\rm}{}%
+\setprotcode{\it}{}%
+\setprotcode{\sl}{}%
+\setprotcode{\bf}{}%
+\setprotcode{\itbf}{}%
+\setprotcode{\slbf}{}%
+\setprotcode{\caps}{}%
+\setprotcode{\capsit}{}%
+\setprotcode{\capssl}{}%
+\setprotcode{\capsbf}{}%
+\setprotcode{\capsitbf}{}%
+\setprotcode{\capsslbf}{}%
+\setprotcode{\fiverm}{}%
+\setprotcode{\fiveit}{}%
+\setprotcode{\fivesl}{}%
+\setprotcode{\fivebf}{}%
+\setprotcode{\fiveitbf}{}%
+\setprotcode{\fiveslbf}{}%
+\setprotcode{\fivecaps}{}%
+\setprotcode{\fivecapsit}{}%
+\setprotcode{\fivecapssl}{}%
+\setprotcode{\fivecapsbf}{}%
+\setprotcode{\fivecapsitbf}{}%
+\setprotcode{\fivecapsslbf}{}%
+\setprotcode{\sixrm}{}%
+\setprotcode{\sixit}{}%
+\setprotcode{\sixsl}{}%
+\setprotcode{\sixbf}{}%
+\setprotcode{\sixitbf}{}%
+\setprotcode{\sixslbf}{}%
+\setprotcode{\sixcaps}{}%
+\setprotcode{\sixcapsit}{}%
+\setprotcode{\sixcapssl}{}%
+\setprotcode{\sixcapsbf}{}%
+\setprotcode{\sixcapsitbf}{}%
+\setprotcode{\sixcapsslbf}{}%
+\setprotcode{\sevenrm}{}%
+\setprotcode{\sevenit}{}%
+\setprotcode{\sevensl}{}%
+\setprotcode{\sevenbf}{}%
+\setprotcode{\sevenitbf}{}%
+\setprotcode{\sevenslbf}{}%
+\setprotcode{\sevencaps}{}%
+\setprotcode{\sevencapsit}{}%
+\setprotcode{\sevencapssl}{}%
+\setprotcode{\sevencapsbf}{}%
+\setprotcode{\sevencapsitbf}{}%
+\setprotcode{\sevencapsslbf}{}%
+\setprotcode{\eightrm}{}%
+\setprotcode{\eightit}{}%
+\setprotcode{\eightsl}{}%
+\setprotcode{\eightbf}{}%
+\setprotcode{\eightitbf}{}%
+\setprotcode{\eightslbf}{}%
+\setprotcode{\eightcaps}{}%
+\setprotcode{\eightcapsit}{}%
+\setprotcode{\eightcapssl}{}%
+\setprotcode{\eightcapsbf}{}%
+\setprotcode{\eightcapsitbf}{}%
+\setprotcode{\eightcapsslbf}{}%
+\setprotcode{\ninerm}{}%
+\setprotcode{\nineit}{}%
+\setprotcode{\ninesl}{}%
+\setprotcode{\ninebf}{}%
+\setprotcode{\nineitbf}{}%
+\setprotcode{\nineslbf}{}%
+\setprotcode{\ninecaps}{}%
+\setprotcode{\ninecapsit}{}%
+\setprotcode{\ninecapssl}{}%
+\setprotcode{\ninecapsbf}{}%
+\setprotcode{\ninecapsitbf}{}%
+\setprotcode{\ninecapsslbf}{}%
+\setprotcode{\elevenrm}{}%
+\setprotcode{\elevenit}{}%
+\setprotcode{\elevensl}{}%
+\setprotcode{\elevenbf}{}%
+\setprotcode{\elevenitbf}{}%
+\setprotcode{\elevenslbf}{}%
+\setprotcode{\elevencaps}{}%
+\setprotcode{\elevencapsit}{}%
+\setprotcode{\elevencapssl}{}%
+\setprotcode{\elevencapsbf}{}%
+\setprotcode{\elevencapsitbf}{}%
+\setprotcode{\elevencapsslbf}{}%
+\setprotcode{\twelverm}{}%
+\setprotcode{\twelveit}{}%
+\setprotcode{\twelvesl}{}%
+\setprotcode{\twelvebf}{}%
+\setprotcode{\twelveitbf}{}%
+\setprotcode{\twelveslbf}{}%
+\setprotcode{\twelvecaps}{}%
+\setprotcode{\twelvecapsit}{}%
+\setprotcode{\twelvecapssl}{}%
+\setprotcode{\twelvecapsbf}{}%
+\setprotcode{\twelvecapsitbf}{}%
+\setprotcode{\twelvecapsslbf}{}%
+\setprotcode{\fourteenrm}{}%
+\setprotcode{\fourteenit}{}%
+\setprotcode{\fourteensl}{}%
+\setprotcode{\fourteenbf}{}%
+\setprotcode{\fourteenitbf}{}%
+\setprotcode{\fourteenslbf}{}%
+\setprotcode{\fourteencaps}{}%
+\setprotcode{\fourteencapsit}{}%
+\setprotcode{\fourteencapssl}{}%
+\setprotcode{\fourteencapsbf}{}%
+\setprotcode{\fourteencapsitbf}{}%
+\setprotcode{\fourteencapsslbf}{}%
+\setprotcode{\sixteenrm}{}%
+\setprotcode{\sixteenit}{}%
+\setprotcode{\sixteensl}{}%
+\setprotcode{\sixteenbf}{}%
+\setprotcode{\sixteenitbf}{}%
+\setprotcode{\sixteenslbf}{}%
+\setprotcode{\sixteencaps}{}%
+\setprotcode{\sixteencapsit}{}%
+\setprotcode{\sixteencapssl}{}%
+\setprotcode{\sixteencapsbf}{}%
+\setprotcode{\sixteencapsitbf}{}%
+\setprotcode{\sixteencapsslbf}{}%
+\setprotcode{\eighteenrm}{}%
+\setprotcode{\eighteenit}{}%
+\setprotcode{\eighteensl}{}%
+\setprotcode{\eighteenbf}{}%
+\setprotcode{\eighteenitbf}{}%
+\setprotcode{\eighteenslbf}{}%
+\setprotcode{\eighteencaps}{}%
+\setprotcode{\eighteencapsit}{}%
+\setprotcode{\eighteencapssl}{}%
+\setprotcode{\eighteencapsbf}{}%
+\setprotcode{\eighteencapsitbf}{}%
+\setprotcode{\eighteencapsslbf}{}%
+\setprotcode{\twentyrm}{}%
+\setprotcode{\twentyit}{}%
+\setprotcode{\twentysl}{}%
+\setprotcode{\twentybf}{}%
+\setprotcode{\twentyitbf}{}%
+\setprotcode{\twentyslbf}{}%
+\setprotcode{\twentycaps}{}%
+\setprotcode{\twentycapsit}{}%
+\setprotcode{\twentycapssl}{}%
+\setprotcode{\twentycapsbf}{}%
+\setprotcode{\twentycapsitbf}{}%
+\setprotcode{\twentycapsslbf}{}%
+}%
+%{} needed after \setprotcode. If not when \fontss followed by number, will not print the %number.
+%
+\def\unsetprotcode#1{%
+ \XeTeXprotrudechars=1%
+ \rpcode#1 U"0021 0% exclamation mark
+ \rpcode#1 U"002C 0% comma
+ \rpcode#1 U"002D 0% hyphen
+ \rpcode#1 U"002E 0% full stop/period
+ \rpcode#1 U"003B 0% semicolon
+ \rpcode#1 U"003A 0% colon
+ \rpcode#1 U"003F 0% question mark
+ \lpcode#1 U"2018 0% left single quote
+ \rpcode#1 U"2019 0% right single quote
+ \lpcode#1 U"201C 0% left double quote
+ \rpcode#1 U"201D 0% right double quote
+ \rpcode#1 U"2013 0% en dash
+ \rpcode#1 U"2014 0% em dash
+}%
+\def\nohangpun{%
+\unsetprotcode{\the\font}{}%
+\unsetprotcode{\rm}{}%
+\unsetprotcode{\it}{}%
+\unsetprotcode{\sl}{}%
+\unsetprotcode{\bf}{}%
+\unsetprotcode{\itbf}{}%
+\unsetprotcode{\slbf}{}%
+\unsetprotcode{\caps}{}%
+\unsetprotcode{\capsit}{}%
+\unsetprotcode{\capssl}{}%
+\unsetprotcode{\capsbf}{}%
+\unsetprotcode{\capsitbf}{}%
+\unsetprotcode{\capsslbf}{}%
+\unsetprotcode{\fiverm}{}%
+\unsetprotcode{\fiveit}{}%
+\unsetprotcode{\fivesl}{}%
+\unsetprotcode{\fivebf}{}%
+\unsetprotcode{\fiveitbf}{}%
+\unsetprotcode{\fiveslbf}{}%
+\unsetprotcode{\fivecaps}{}%
+\unsetprotcode{\fivecapsit}{}%
+\unsetprotcode{\fivecapssl}{}%
+\unsetprotcode{\fivecapsbf}{}%
+\unsetprotcode{\fivecapsitbf}{}%
+\unsetprotcode{\fivecapsslbf}{}%
+\unsetprotcode{\sixrm}{}%
+\unsetprotcode{\sixit}{}%
+\unsetprotcode{\sixsl}{}%
+\unsetprotcode{\sixbf}{}%
+\unsetprotcode{\sixitbf}{}%
+\unsetprotcode{\sixslbf}{}%
+\unsetprotcode{\sixcaps}{}%
+\unsetprotcode{\sixcapsit}{}%
+\unsetprotcode{\sixcapssl}{}%
+\unsetprotcode{\sixcapsbf}{}%
+\unsetprotcode{\sixcapsitbf}{}%
+\unsetprotcode{\sixcapsslbf}{}%
+\unsetprotcode{\sevenrm}{}%
+\unsetprotcode{\sevenit}{}%
+\unsetprotcode{\sevensl}{}%
+\unsetprotcode{\sevenbf}{}%
+\unsetprotcode{\sevenitbf}{}%
+\unsetprotcode{\sevenslbf}{}%
+\unsetprotcode{\sevencaps}{}%
+\unsetprotcode{\sevencapsit}{}%
+\unsetprotcode{\sevencapssl}{}%
+\unsetprotcode{\sevencapsbf}{}%
+\unsetprotcode{\sevencapsitbf}{}%
+\unsetprotcode{\sevencapsslbf}{}%
+\unsetprotcode{\eightrm}{}%
+\unsetprotcode{\eightit}{}%
+\unsetprotcode{\eightsl}{}%
+\unsetprotcode{\eightbf}{}%
+\unsetprotcode{\eightitbf}{}%
+\unsetprotcode{\eightslbf}{}%
+\unsetprotcode{\eightcaps}{}%
+\unsetprotcode{\eightcapsit}{}%
+\unsetprotcode{\eightcapssl}{}%
+\unsetprotcode{\eightcapsbf}{}%
+\unsetprotcode{\eightcapsitbf}{}%
+\unsetprotcode{\eightcapsslbf}{}%
+\unsetprotcode{\ninerm}{}%
+\unsetprotcode{\nineit}{}%
+\unsetprotcode{\ninesl}{}%
+\unsetprotcode{\ninebf}{}%
+\unsetprotcode{\nineitbf}{}%
+\unsetprotcode{\nineslbf}{}%
+\unsetprotcode{\ninecaps}{}%
+\unsetprotcode{\ninecapsit}{}%
+\unsetprotcode{\ninecapssl}{}%
+\unsetprotcode{\ninecapsbf}{}%
+\unsetprotcode{\ninecapsitbf}{}%
+\unsetprotcode{\ninecapsslbf}{}%
+\unsetprotcode{\elevenrm}{}%
+\unsetprotcode{\elevenit}{}%
+\unsetprotcode{\elevensl}{}%
+\unsetprotcode{\elevenbf}{}%
+\unsetprotcode{\elevenitbf}{}%
+\unsetprotcode{\elevenslbf}{}%
+\unsetprotcode{\elevencaps}{}%
+\unsetprotcode{\elevencapsit}{}%
+\unsetprotcode{\elevencapssl}{}%
+\unsetprotcode{\elevencapsbf}{}%
+\unsetprotcode{\elevencapsitbf}{}%
+\unsetprotcode{\elevencapsslbf}{}%
+\unsetprotcode{\twelverm}{}%
+\unsetprotcode{\twelveit}{}%
+\unsetprotcode{\twelvesl}{}%
+\unsetprotcode{\twelvebf}{}%
+\unsetprotcode{\twelveitbf}{}%
+\unsetprotcode{\twelveslbf}{}%
+\unsetprotcode{\twelvecaps}{}%
+\unsetprotcode{\twelvecapsit}{}%
+\unsetprotcode{\twelvecapssl}{}%
+\unsetprotcode{\twelvecapsbf}{}%
+\unsetprotcode{\twelvecapsitbf}{}%
+\unsetprotcode{\twelvecapsslbf}{}%
+\unsetprotcode{\fourteenrm}{}%
+\unsetprotcode{\fourteenit}{}%
+\unsetprotcode{\fourteensl}{}%
+\unsetprotcode{\fourteenbf}{}%
+\unsetprotcode{\fourteenitbf}{}%
+\unsetprotcode{\fourteenslbf}{}%
+\unsetprotcode{\fourteencaps}{}%
+\unsetprotcode{\fourteencapsit}{}%
+\unsetprotcode{\fourteencapssl}{}%
+\unsetprotcode{\fourteencapsbf}{}%
+\unsetprotcode{\fourteencapsitbf}{}%
+\unsetprotcode{\fourteencapsslbf}{}%
+\unsetprotcode{\sixteenrm}{}%
+\unsetprotcode{\sixteenit}{}%
+\unsetprotcode{\sixteensl}{}%
+\unsetprotcode{\sixteenbf}{}%
+\unsetprotcode{\sixteenitbf}{}%
+\unsetprotcode{\sixteenslbf}{}%
+\unsetprotcode{\sixteencaps}{}%
+\unsetprotcode{\sixteencapsit}{}%
+\unsetprotcode{\sixteencapssl}{}%
+\unsetprotcode{\sixteencapsbf}{}%
+\unsetprotcode{\sixteencapsitbf}{}%
+\unsetprotcode{\sixteencapsslbf}{}%
+\unsetprotcode{\eighteenrm}{}%
+\unsetprotcode{\eighteenit}{}%
+\unsetprotcode{\eighteensl}{}%
+\unsetprotcode{\eighteenbf}{}%
+\unsetprotcode{\eighteenitbf}{}%
+\unsetprotcode{\eighteenslbf}{}%
+\unsetprotcode{\eighteencaps}{}%
+\unsetprotcode{\eighteencapsit}{}%
+\unsetprotcode{\eighteencapssl}{}%
+\unsetprotcode{\eighteencapsbf}{}%
+\unsetprotcode{\eighteencapsitbf}{}%
+\unsetprotcode{\eighteencapsslbf}{}%
+\unsetprotcode{\twentyrm}{}%
+\unsetprotcode{\twentyit}{}%
+\unsetprotcode{\twentysl}{}%
+\unsetprotcode{\twentybf}{}%
+\unsetprotcode{\twentyitbf}{}%
+\unsetprotcode{\twentyslbf}{}%
+\unsetprotcode{\twentycaps}{}%
+\unsetprotcode{\twentycapsit}{}%
+\unsetprotcode{\twentycapssl}{}%
+\unsetprotcode{\twentycapsbf}{}%
+\unsetprotcode{\twentycapsitbf}{}%
+\unsetprotcode{\twentycapsslbf}{}%
+}%
+%{} needed after \setprotcode. If not when \fontss followed by number, will not print the number.
+%
+\def\fontss{\parindent=2em%
+\baselineskip=2.8ex%
+\spaceskip=0.30001em plus0.11em minus0.11em}%
+%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Special UNICODE Characters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\uAlpha{Α}%
+\def\uBeta{Β}%
+\def\uGamma{Γ}%
+\def\uDelta{Δ}%
+\def\uEpsilon{Ε}%
+\def\uZeta{Ζ}%
+\def\uEta{Η}%
+\def\uTheta{Θ}%
+\def\uIota{Ι}%
+\def\uKappa{Κ}%
+\def\uLambda{Λ}%
+\def\uMu{Μ}%
+\def\uNu{Ν}%
+\def\uXi{Ξ}%
+\def\uOmicron{Ο}%
+\def\uPi{Π}%
+\def\uRho{Ρ}%
+\def\uSigma{Σ}%
+\def\uTau{Τ}%
+\def\uUpsilon{Υ}%
+\def\uPhi{Φ}%
+\def\uChi{Χ}%
+\def\uPsi{Ψ}%
+\def\uOmega{Ω}%
+\def\ualpha{α}%
+\def\ubeta{β}%
+\def\ugamma{γ}%
+\def\udelta{δ}%
+\def\uepsilon{ε}%
+\def\uzeta{ζ}%
+\def\ueta{η}%
+\def\utheta{θ}%
+\def\uiota{ι}%
+\def\ukappa{κ}%
+\def\ulambda{λ}%
+\def\umu{μ}%
+\def\unu{ν}%
+\def\uxi{ξ}%
+\def\uomicron{ο}%
+\def\upi{π}%
+\def\urho{ρ}%
+\def\usigmaf{ς}%
+\def\usigma{σ}%
+\def\utau{τ}%
+\def\uupsilon{υ}%
+\def\uphi{φ}%
+\def\uchi{χ}%
+\def\upsi{ψ}%
+\def\uomega{ω}%
+\def\uthetasym{ϑ}%
+\def\uupsih{ϒ}%
+\def\upiv{ϖ}%
+\def\ubull{•}%
+\def\uhellip{…}%
+\def\uprime{′}%
+\def\uPrime{″}%
+\def\uoline{‾}%
+\def\ufrasl{⁄}%
+\def\uweierp{℘}%
+\def\uimage{ℑ}%
+\def\ureal{ℜ}%
+\def\utrade{™}%
+\def\ualefsym{ℵ}%
+\def\ularr{←}%
+\def\uuarr{↑}%
+\def\urarr{→}%
+\def\udarr{↓}%
+\def\uharr{↔}%
+\def\ucrarr{↵}%
+\def\ulArr{⇐}%
+\def\uuArr{⇑}%
+\def\urArr{⇒}%
+\def\udArr{⇓}%
+\def\uhArr{⇔}%
+\def\uforall{∀}%
+\def\upart{∂}%
+\def\uexist{∃}%
+\def\uempty{∅}%
+\def\unabla{∇}%
+\def\uisin{∈}%
+\def\unotin{∉}%
+\def\uni{∋}%
+\def\uprod{∏}%
+\def\usum{∑}%
+\def\uminus{−}%
+\def\ulowast{∗}%
+\def\uradic{√}%
+\def\uprop{∝}%
+\def\uinfin{∞}%
+\def\uang{∠}%
+\def\uand{∧}%
+\def\uor{∨}%
+\def\ucap{∩}%
+\def\ucup{∪}%
+\def\uint{∫}%
+\def\uthere4{∴}%
+\def\usim{∼}%
+\def\ucong{≅}%
+\def\uasymp{≈}%
+\def\une{≠}%
+\def\uequiv{≡}%
+\def\ule{≤}%
+\def\uge{≥}%
+\def\usub{⊂}%
+\def\usup{⊃}%
+\def\unsub{⊄}%
+\def\usube{⊆}%
+\def\usupe{⊇}%
+\def\uoplus{⊕}%
+\def\uotimes{⊗}%
+\def\uperp{⊥}%
+\def\usdot{⋅}%
+\def\ulceil{⌈}%
+\def\urceil{⌉}%
+\def\ulfloor{⌊}%
+\def\urfloor{⌋}%
+\def\ulang{⟨}%
+\def\urang{⟩}%
+\def\uloz{◊}%
+\def\uspades{♠}%
+\def\uclubs{♣}%
+\def\uhearts{♥}%
+\def\udiams{♦}%
+\def\ufnof{ƒ}%
+\def\uensp{ }%
+\def\uemsp{ }%
+\def\uthinsp{ }%
+\def\uzwnj{‌}%
+\def\uzwj{‍}%
+\def\ulrm{‎}%
+\def\urlm{‏}%
+\def\undash{–}%
+\def\umdash{—}%
+\def\ulsquo{‘}%
+\def\ursquo{’}%
+\def\usbquo{‚}%
+\def\uldquo{“}%
+\def\urdquo{”}%
+\def\ubdquo{„}%
+\def\udagger{†}%
+\def\uDagger{‡}%
+\def\upermil{‰}%
+\def\ulsaquo{‹}%
+\def\ursaquo{›}%
+\def\ueuro{€}%
+\def\ucirc{ˆ}%
+\def\utilde{˜}%
+\def\uOElig{Œ}%
+\def\uoelig{œ}%
+\def\uScaron{Š}%
+\def\uscaron{š}%
+\def\uYuml{Ÿ}%
+\def\uquot{"}%
+\def\uamp{&}%
+\def\uapos{'}%
+\def\ult{<}%
+\def\ugt{>}%
+\def\unbsp{}%
+\def\uiexcl{¡}%
+\def\ucent{¢}%
+\def\upound{£}%
+\def\ucurren{¤}%
+\def\uyen{¥}%
+\def\ubrvbar{¦}%
+\def\usect{§}%
+\def\uuml{¨}%
+\def\ucopy{©}%
+\def\uordf{ª}%
+\def\ulaquo{«}%
+\def\unot{¬}%
+\def\ushy{­}%
+\def\ureg{®}%
+\def\umacr{¯}%
+\def\udeg{°}%
+\def\uplusmn{±}%
+\def\usup2{²}%
+\def\usup3{³}%
+\def\uacute{´}%
+\def\umicro{µ}%
+\def\upara{¶}%
+\def\umiddot{·}%
+\def\ucedil{¸}%
+\def\usup1{¹}%
+\def\uordm{º}%
+\def\uraquo{»}%
+\def\ufrac14{¼}%
+\def\ufrac12{½}%
+\def\ufrac34{¾}%
+\def\uiquest{¿}%
+\def\uAgrave{À}%
+\def\uAacute{Á}%
+\def\uAcirc{Â}%
+\def\uAtilde{Ã}%
+\def\uAuml{Ä}%
+\def\uAring{Å}%
+\def\uAElig{Æ}%
+\def\uCcedil{Ç}%
+\def\uEgrave{È}%
+\def\uEacute{É}%
+\def\uEcirc{Ê}%
+\def\uEuml{Ë}%
+\def\uIgrave{Ì}%
+\def\uIacute{Í}%
+\def\uIcirc{Î}%
+\def\uIuml{Ï}%
+\def\uETH{Ð}%
+\def\uNtilde{Ñ}%
+\def\uOgrave{Ò}%
+\def\uOacute{Ó}%
+\def\uOcirc{Ô}%
+\def\uOtilde{Õ}%
+\def\uOuml{Ö}%
+\def\utimes{×}%
+\def\uOslash{Ø}%
+\def\uUgrave{Ù}%
+\def\uUacute{Ú}%
+\def\uUcirc{Û}%
+\def\uUuml{Ü}%
+\def\uYacute{Ý}%
+\def\uTHORN{Þ}%
+\def\uszlig{ß}%
+\def\uagrave{à}%
+\def\uaacute{á}%
+\def\uacirc{â}%
+\def\uatilde{ã}%
+\def\uauml{ä}%
+\def\uaring{å}%
+\def\uaelig{æ}%
+\def\uccedil{ç}%
+\def\uegrave{è}%
+\def\ueacute{é}%
+\def\uecirc{ê}%
+\def\ueuml{ë}%
+\def\uigrave{ì}%
+\def\uiacute{í}%
+\def\uicirc{î}%
+\def\uiuml{ï}%
+\def\ueth{ð}%
+\def\untilde{ñ}%
+\def\uograve{ò}%
+\def\uoacute{ó}%
+\def\uocirc{ô}%
+\def\uotilde{õ}%
+\def\uouml{ö}%
+\def\udivide{÷}%
+\def\uoslash{ø}%
+\def\uugrave{ù}%
+\def\uuacute{ú}%
+\def\uucirc{û}%
+\def\uuuml{ü}%
+\def\uyacute{ý}%
+\def\uthorn{þ}%
+\def\uyuml{ÿ}%
+\def\uhbar{ħ}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/macros/xetex/plain/xetexfontinfo/README b/macros/xetex/plain/xetexfontinfo/README
new file mode 100644
index 0000000000..7a46e0d237
--- /dev/null
+++ b/macros/xetex/plain/xetexfontinfo/README
@@ -0,0 +1,16 @@
+__________________________
+ opentype-info & aat-info
+ By Jonathan Kew
+
+These documents are used to reveal the various
+font features supported by fonts useable in XeTeX.
+
+Use 'opentype-info.tex' with OpenType fonts and
+'aat-info.tex' with AAT fonts (Mac OS X only).
+
+Input the font name and compile them with plain
+`xetex`; the output will be a listing of the
+supported font features.
+
+These documents are distributed under the Apache License v2:
+ <http://www.apache.org/licenses/LICENSE-2.0.html>
diff --git a/macros/xetex/plain/xetexfontinfo/aat-info.tex b/macros/xetex/plain/xetexfontinfo/aat-info.tex
new file mode 100644
index 0000000000..f6985509d3
--- /dev/null
+++ b/macros/xetex/plain/xetexfontinfo/aat-info.tex
@@ -0,0 +1,123 @@
+%%% aat-info.tex %%%
+% By Jonathan Kew
+%
+% Prints XeTeX font features for a font
+% using the "AAT" renderer of XeTeX;
+% requires Mac OS X.
+%
+% See 'opentype-info.tex' for the equivalent
+% functionality with OpenType fonts.
+%
+% Usage:
+% Type the name of the font below and compile this
+% document with plain `xetex` to receive a listing
+% of the AAT font features supported by the chosen font.
+%
+% AAT-info is distributed under the Apache License v2:
+% <http://www.apache.org/licenses/LICENSE-2.0.html>
+%
+%%%%%%%%%%%%%%%%%%%%
+%
+% Select the font name:
+\def\myfontname{Hoefler Text}
+%
+%%% AAT-info.tex %%%
+
+
+\font\testfont="\myfontname/AAT" at 10pt
+\nopagenumbers
+
+\baselineskip=14pt
+\font\tenrm="Lucida Grande" at 10pt \tenrm
+\font\title="Lucida Grande Bold" at 12pt
+
+\font\sym="Apple Symbols" at 11pt
+\def\radioOff{{\sym ^^^^25cb}}
+\def\radioOn{{\sym ^^^^25c9}}
+\def\checkOff{{\sym ^^^^2610}}
+\def\checkOn{{\sym ^^^^2612}}
+
+\newcount\nf
+\newcount\f \newcount\fc
+\newcount\ns
+\newcount\s \newcount\sc
+\nf=\XeTeXcountfeatures\testfont
+\noindent {\title AAT features in ‘\myfontname’}\nobreak\medskip
+\ifnum\nf>0
+ \loop
+ \fc=\XeTeXfeaturecode\testfont\f
+ \noindent \XeTeXfeaturename\testfont\fc\ [\number\fc]
+ \endgraf
+ \ns=\XeTeXcountselectors\testfont\fc
+ {
+ \loop
+ \sc=\XeTeXselectorcode\testfont\fc\s
+ \textindent{%
+ \ifnum\XeTeXisexclusivefeature\testfont\fc>0
+ \ifnum\XeTeXisdefaultselector\testfont\fc\sc>0 \radioOn \else \radioOff \fi
+ \else
+ \ifnum\XeTeXisdefaultselector\testfont\fc\sc>0 \checkOn \else \checkOff \fi
+ \fi
+ }\XeTeXselectorname\testfont\fc\sc\ [\number\sc]
+ \endgraf
+ \advance\s by 1 \ifnum\s<\ns \repeat
+ }
+ \smallskip
+ \advance\f by 1 \ifnum\f<\nf \repeat
+\else
+ \noindent {No AAT features available}\par
+\fi
+
+\bigskip
+
+\newcount\val
+\def\appendint{\count255=\val \divide\count255 by 65536
+ \edef\decval{\decval\number\count255}\multiply\count255 by 65536
+ \advance\val by -\count255 }
+\def\decimalize#1{\val=#1 \def\decval{}\appendint \edef\decval{\decval.}%
+ \multiply\val by 10 \appendint \multiply\val by 10 \appendint
+ \multiply\val by 10 \appendint \multiply\val by 10 \appendint
+ \multiply\val by 10 \appendint \multiply\val by 10 \appendint}
+\def\decnum{\afterassignment\printdec \count255=}
+\def\printdec{\dimen255=\count255 sp \expandafter\noPT\the\dimen255 }
+{\catcode`\p=12 \catcode`\t=12 \gdef\noPT#1pt{#1}}
+\newcount\nv
+\newcount\v \newcount\vc
+\nv=\XeTeXcountvariations\testfont
+\noindent {\title AAT variation axes in \myfontname:}\nobreak\medskip
+\ifnum\nv>0
+ \loop
+ \vc=\XeTeXvariation\testfont\v
+ \noindent \XeTeXvariationname\testfont\vc
+ \endgraf
+ \indent Range:\
+ {\decimalize{\XeTeXvariationmin\testfont\vc}%
+ \font\x="\myfontname:\XeTeXvariationname\testfont\vc=\decval" at 10pt
+ \x min \decnum\XeTeXvariationmin\testfont\vc}%
+ \ …\
+ {\decimalize{\XeTeXvariationmax\testfont\vc}%
+ \font\x="\myfontname:\XeTeXvariationname\testfont\vc=\decval" at 10pt
+ \x max \decnum\XeTeXvariationmax\testfont\vc}%
+ \ \
+ {\font\x="\myfontname" at 10pt
+ \x (default:\ \decnum\XeTeXvariationdefault\testfont\vc)}%
+ \endgraf
+ \smallskip
+ \advance\v by 1 \ifnum\v<\nv \repeat
+\else
+ \noindent {No AAT variations available}\par
+\fi
+
+\bigskip
+
+\newcount\ng
+\newcount\g \newcount\step
+\ng=\XeTeXcountglyphs\testfont
+\noindent{\title \myfontname\ contains \number\ng\ glyphs}
+\nobreak\medskip
+\step=\ng \divide\step by 25
+\noindent
+ \loop \advance\g by \step
+ \ifnum\g<\ng {\testfont\XeTeXglyph\g} \repeat
+
+\end
diff --git a/macros/xetex/plain/xetexfontinfo/opentype-info.tex b/macros/xetex/plain/xetexfontinfo/opentype-info.tex
new file mode 100644
index 0000000000..c91b54f7a4
--- /dev/null
+++ b/macros/xetex/plain/xetexfontinfo/opentype-info.tex
@@ -0,0 +1,98 @@
+%%% opentype-info.tex %%%
+% By Jonathan Kew
+%
+% Prints XeTeX font features for an OpenType
+% font using the "ICU" renderer of XeTeX.
+%
+% See 'aat-info.tex' for the equivalent
+% functionality with AAT fonts (Mac OS X only).
+%
+% Usage:
+% Type the name of the font below and compile this
+% document with plain `xetex` to receive a listing
+% of the OpenType font features, languages & scripts
+% supported by the chosen font.
+%
+% opentype-info is distributed under the Apache License v2:
+% <http://www.apache.org/licenses/LICENSE-2.0.html>
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Select the font name:
+\def\myfontname{Latin Modern Roman}
+%
+%%% OpenType-info.tex %%%
+
+\font\testfont="\myfontname/ICU" at 12pt
+
+\nopagenumbers
+\rightskip=0pt plus 1fil
+
+\font\title=ec-lmssbx10 at 14pt
+\font\tenrm=ec-lmss10 at 10pt \tenrm
+\font\tentt=ec-lmtt10 at 10pt
+
+\def\fourcharcode#1{\begingroup
+ \count0=#1\count1=\count0
+ \ifnum\count0=0
+ $\langle$default$\rangle$%
+ \else
+ \tentt
+ '%
+ \divide\count0 by "1000000
+ \char\count0
+ \multiply\count0 by "1000000
+ \advance\count1 by -\count0
+ \count0=\count1
+ \divide\count0 by "10000
+ \char\count0
+ \multiply\count0 by "10000
+ \advance\count1 by -\count0
+ \count0=\count1
+ \divide\count0 by "100
+ \char\count0
+ \multiply\count0 by "100
+ \advance\count1 by -\count0
+ \ifnum\count1=32 \ \else \char\count1 \fi
+ '%
+ \fi
+ \endgroup
+}
+
+\newcount\scriptcount
+\newcount\scriptindex
+\newcount\scripttag
+\newcount\langcount
+\newcount\langindex
+\newcount\langtag
+\newcount\featurecount
+\newcount\featureindex
+\newcount\featuretag
+
+\leftline{\title OpenType Layout features found in `\myfontname'}
+\nobreak\bigskip
+
+\scriptcount=\XeTeXOTcountscripts\testfont
+\ifnum\scriptcount=0 \noindent None\par\fi
+
+\loop
+ \ifnum\scriptindex<\scriptcount
+ \scripttag=\XeTeXOTscripttag\testfont\scriptindex
+ \noindent script = \fourcharcode{\scripttag}\endgraf\nobreak
+ \langcount=\XeTeXOTcountlanguages\testfont\scripttag
+ \advance\langcount by 1 % one extra to get the default language system
+ {\loop
+ \langtag=\XeTeXOTlanguagetag\testfont\scripttag\langindex
+ \indent language = \fourcharcode{\langtag}\endgraf\nobreak
+ \featurecount=\XeTeXOTcountfeatures\testfont\scripttag\langtag
+ {\indent\indent \hangindent=3\parindent \hangafter=1 features = \loop
+ \featuretag=\XeTeXOTfeaturetag\testfont\scripttag\langtag\featureindex
+ \fourcharcode{\featuretag}
+ \advance\featureindex by 1
+ \ifnum\featureindex<\featurecount \repeat\endgraf}
+ \advance\langindex by 1
+ \ifnum\langindex<\langcount \medskip \repeat}
+ \advance\scriptindex by 1
+ \bigskip \repeat
+
+\bye