summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/context/documents/general/manuals/details.pdfbin2841669 -> 2333575 bytes
-rw-r--r--doc/context/documents/general/manuals/luatex.pdfbin2184708 -> 1126666 bytes
-rw-r--r--doc/context/documents/general/manuals/mkiv-publications.pdfbin528258 -> 529187 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-cs.pdfbin816202 -> 816072 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin816792 -> 816655 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin818669 -> 818539 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin811959 -> 811839 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin815470 -> 815343 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin810140 -> 810021 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-ro.pdfbin812727 -> 812591 bytes
-rw-r--r--doc/context/scripts/mkii/ctxtools.html10
-rw-r--r--doc/context/scripts/mkii/imgtopdf.html10
-rw-r--r--doc/context/scripts/mkii/mptopdf.html10
-rw-r--r--doc/context/scripts/mkii/pdftools.html10
-rw-r--r--doc/context/scripts/mkii/pstopdf.html10
-rw-r--r--doc/context/scripts/mkii/rlxtools.html10
-rw-r--r--doc/context/scripts/mkii/texexec.html10
-rw-r--r--doc/context/scripts/mkii/texmfstart.html10
-rw-r--r--doc/context/scripts/mkii/textools.html10
-rw-r--r--doc/context/scripts/mkii/texutil.html10
-rw-r--r--doc/context/scripts/mkii/tmftools.html10
-rw-r--r--doc/context/scripts/mkii/xmltools.html10
-rw-r--r--doc/context/scripts/mkiv/context.html10
-rw-r--r--doc/context/scripts/mkiv/luatools.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-babel.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-base.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-bibtex.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-cache.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-chars.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-check.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-colors.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-context.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-dvi.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-epub.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-fcd.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-flac.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-fonts.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-grep.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-interface.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-metapost.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-metatex.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-modules.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-package.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-patterns.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-pdf.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-plain.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-profile.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-rsync.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-scite.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-server.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-texworks.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-timing.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-tools.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-unicode.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-unzip.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-update.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-watch.html10
-rw-r--r--doc/context/scripts/mkiv/mtx-youless.html10
-rw-r--r--doc/context/scripts/mkiv/mtxrun.html10
-rw-r--r--doc/context/sources/general/manuals/details/details-floatingaround.tex163
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-modifications.tex22
-rw-r--r--doc/context/sources/general/manuals/publications/publications-database.tex32
-rw-r--r--scripts/context/lua/mtx-context.lua9
-rw-r--r--scripts/context/lua/mtx-server-ctx-fonttest.lua35
-rw-r--r--scripts/context/lua/mtxrun.lua2
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua2
-rw-r--r--scripts/context/stubs/unix/mtxrun2
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua2
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkii/mult-en.mkii2
-rw-r--r--tex/context/base/mkii/mult-it.mkii2
-rw-r--r--tex/context/base/mkiv/back-exp.lua2
-rw-r--r--tex/context/base/mkiv/back-exp.mkiv3
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context-base.lmx13
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/core-ini.mkiv4
-rw-r--r--tex/context/base/mkiv/data-tex.lua27
-rw-r--r--tex/context/base/mkiv/file-job.mkvi10
-rw-r--r--tex/context/base/mkiv/font-hsh.lua8
-rw-r--r--tex/context/base/mkiv/font-mis.lua43
-rw-r--r--tex/context/base/mkiv/lpdf-epd.lua4
-rw-r--r--tex/context/base/mkiv/mult-mes.lua8
-rw-r--r--tex/context/base/mkiv/mult-sys.mkiv1
-rw-r--r--tex/context/base/mkiv/page-cst.mkiv2
-rw-r--r--tex/context/base/mkiv/page-ini.mkiv61
-rw-r--r--tex/context/base/mkiv/page-mix.mkiv12
-rw-r--r--tex/context/base/mkiv/page-mul.mkiv6
-rw-r--r--tex/context/base/mkiv/page-one.mkiv2
-rw-r--r--tex/context/base/mkiv/page-otr.mkvi20
-rw-r--r--tex/context/base/mkiv/page-pst.mkiv8
-rw-r--r--tex/context/base/mkiv/page-set.mkiv6
-rw-r--r--tex/context/base/mkiv/publ-dat.lua8
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin25846 -> 25846 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin426573 -> 426590 bytes
-rw-r--r--tex/context/base/mkiv/strc-flt.mkvi26
-rw-r--r--tex/context/base/mkiv/util-jsn.lua7
-rw-r--r--tex/context/interface/mkii/keys-en.xml2
-rw-r--r--tex/context/interface/mkii/keys-it.xml2
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin818669 -> 818539 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60774 -> 60775 bytes
-rw-r--r--tex/context/test/mkiv/pdf-a1a-2005.mkiv1
-rw-r--r--tex/context/test/mkiv/pdf-a1b-2005.mkiv1
-rw-r--r--tex/context/test/mkiv/pdf-a2a.mkiv2
-rw-r--r--tex/context/test/mkiv/pdf-a3a.mkiv2
-rw-r--r--tex/context/test/mkiv/pdf-x4.mkiv1
-rw-r--r--tex/context/test/mkiv/pdf-x4p.mkiv2
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
-rw-r--r--tex/generic/context/luatex/luatex-math.tex1388
-rw-r--r--tex/generic/context/luatex/luatex-mplib.lua16
-rw-r--r--tex/generic/context/luatex/luatex-mplib.tex7
112 files changed, 1462 insertions, 1016 deletions
diff --git a/doc/context/documents/general/manuals/details.pdf b/doc/context/documents/general/manuals/details.pdf
index b99ae19a9..d607714d1 100644
--- a/doc/context/documents/general/manuals/details.pdf
+++ b/doc/context/documents/general/manuals/details.pdf
Binary files differ
diff --git a/doc/context/documents/general/manuals/luatex.pdf b/doc/context/documents/general/manuals/luatex.pdf
index e1c592dc8..691ec0b37 100644
--- a/doc/context/documents/general/manuals/luatex.pdf
+++ b/doc/context/documents/general/manuals/luatex.pdf
Binary files differ
diff --git a/doc/context/documents/general/manuals/mkiv-publications.pdf b/doc/context/documents/general/manuals/mkiv-publications.pdf
index 22e9f4ccf..1f1d7fcd5 100644
--- a/doc/context/documents/general/manuals/mkiv-publications.pdf
+++ b/doc/context/documents/general/manuals/mkiv-publications.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index 49afa30e7..e993f1544 100644
--- a/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index 05acbe68a..eea03e492 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index bf72c9fcc..5c441b1f7 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index f5ca50d89..32b81870e 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index 7bae220c5..1ef4327d8 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index 77066eb39..e574aa5dd 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index 1e3add650..465711bd9 100644
--- a/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/doc/context/scripts/mkii/ctxtools.html b/doc/context/scripts/mkii/ctxtools.html
index 405965c1e..06acff7e0 100644
--- a/doc/context/scripts/mkii/ctxtools.html
+++ b/doc/context/scripts/mkii/ctxtools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">CtxTools 1.3.5 </div>
</div>
</div>
@@ -60,5 +60,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/imgtopdf.html b/doc/context/scripts/mkii/imgtopdf.html
index ec75e4886..acf645981 100644
--- a/doc/context/scripts/mkii/imgtopdf.html
+++ b/doc/context/scripts/mkii/imgtopdf.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ImgToPdf 1.1.2 </div>
</div>
</div>
@@ -51,5 +51,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/mptopdf.html b/doc/context/scripts/mkii/mptopdf.html
index 24f1325dd..9781a51f3 100644
--- a/doc/context/scripts/mkii/mptopdf.html
+++ b/doc/context/scripts/mkii/mptopdf.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">MPtoPDF 1.4.1 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/pdftools.html b/doc/context/scripts/mkii/pdftools.html
index 94b5f1a2a..7c1474258 100644
--- a/doc/context/scripts/mkii/pdftools.html
+++ b/doc/context/scripts/mkii/pdftools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">PDFTools 1.2.1 </div>
</div>
</div>
@@ -51,5 +51,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/pstopdf.html b/doc/context/scripts/mkii/pstopdf.html
index 9b8f50762..4470e6176 100644
--- a/doc/context/scripts/mkii/pstopdf.html
+++ b/doc/context/scripts/mkii/pstopdf.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">PStoPDF 2.0.1 </div>
</div>
</div>
@@ -45,5 +45,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/rlxtools.html b/doc/context/scripts/mkii/rlxtools.html
index 5aeffa129..6af4c5954 100644
--- a/doc/context/scripts/mkii/rlxtools.html
+++ b/doc/context/scripts/mkii/rlxtools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">RlxTools 1.0.1 </div>
</div>
</div>
@@ -45,5 +45,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/texexec.html b/doc/context/scripts/mkii/texexec.html
index 8a3a60abd..5f775068c 100644
--- a/doc/context/scripts/mkii/texexec.html
+++ b/doc/context/scripts/mkii/texexec.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">TeXExec 6.2.1 </div>
</div>
</div>
@@ -59,5 +59,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/texmfstart.html b/doc/context/scripts/mkii/texmfstart.html
index 9a86eeee3..6e1f7f618 100644
--- a/doc/context/scripts/mkii/texmfstart.html
+++ b/doc/context/scripts/mkii/texmfstart.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">texmfstart 7.0.0 </div>
</div>
</div>
@@ -99,5 +99,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/textools.html b/doc/context/scripts/mkii/textools.html
index 397de9d8b..9bd9ac5c9 100644
--- a/doc/context/scripts/mkii/textools.html
+++ b/doc/context/scripts/mkii/textools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">TeXTools 1.3.1 </div>
</div>
</div>
@@ -59,5 +59,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/texutil.html b/doc/context/scripts/mkii/texutil.html
index b5974ab99..4dd23fa3a 100644
--- a/doc/context/scripts/mkii/texutil.html
+++ b/doc/context/scripts/mkii/texutil.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">TeXUtil 9.1.0 </div>
</div>
</div>
@@ -50,5 +50,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/tmftools.html b/doc/context/scripts/mkii/tmftools.html
index 1e13062b9..17a182896 100644
--- a/doc/context/scripts/mkii/tmftools.html
+++ b/doc/context/scripts/mkii/tmftools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">TMFTools 1.2.1 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkii/xmltools.html b/doc/context/scripts/mkii/xmltools.html
index fcb27aaf4..d6733ae7a 100644
--- a/doc/context/scripts/mkii/xmltools.html
+++ b/doc/context/scripts/mkii/xmltools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">XMLTools 1.2.1 </div>
</div>
</div>
@@ -50,5 +50,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/context.html b/doc/context/scripts/mkiv/context.html
index c63c81132..199277b4e 100644
--- a/doc/context/scripts/mkiv/context.html
+++ b/doc/context/scripts/mkiv/context.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Process Management 1.01 </div>
</div>
</div>
@@ -118,5 +118,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/luatools.html b/doc/context/scripts/mkiv/luatools.html
index 5ec428efd..af51be9d1 100644
--- a/doc/context/scripts/mkiv/luatools.html
+++ b/doc/context/scripts/mkiv/luatools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">luatools 1.35 </div>
</div>
</div>
@@ -61,5 +61,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-babel.html b/doc/context/scripts/mkiv/mtx-babel.html
index 97f891516..bc92dc27f 100644
--- a/doc/context/scripts/mkiv/mtx-babel.html
+++ b/doc/context/scripts/mkiv/mtx-babel.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Babel Input To UTF Conversion 1.20 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-base.html b/doc/context/scripts/mkiv/mtx-base.html
index 7eceb57fc..19b06162a 100644
--- a/doc/context/scripts/mkiv/mtx-base.html
+++ b/doc/context/scripts/mkiv/mtx-base.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt TDS Management Tool (aka luatools) 1.35 </div>
</div>
</div>
@@ -61,5 +61,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-bibtex.html b/doc/context/scripts/mkiv/mtx-bibtex.html
index a70c88483..33924a883 100644
--- a/doc/context/scripts/mkiv/mtx-bibtex.html
+++ b/doc/context/scripts/mkiv/mtx-bibtex.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">bibtex helpers </div>
</div>
</div>
@@ -51,5 +51,5 @@
<br/><tt>mtxrun --script bibtex --search --list --pattern=match(author:foo) bar.bib</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-cache.html b/doc/context/scripts/mkiv/mtx-cache.html
index e69a73977..475095eb4 100644
--- a/doc/context/scripts/mkiv/mtx-cache.html
+++ b/doc/context/scripts/mkiv/mtx-cache.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt & MetaTeX Cache Management 0.10 </div>
</div>
</div>
@@ -48,5 +48,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-chars.html b/doc/context/scripts/mkiv/mtx-chars.html
index 0cc3840e6..b92a3f267 100644
--- a/doc/context/scripts/mkiv/mtx-chars.html
+++ b/doc/context/scripts/mkiv/mtx-chars.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">MkII Character Table Generators 0.10 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-check.html b/doc/context/scripts/mkiv/mtx-check.html
index df50c7288..f64afe35c 100644
--- a/doc/context/scripts/mkiv/mtx-check.html
+++ b/doc/context/scripts/mkiv/mtx-check.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Basic ConTeXt Syntax Checking 0.10 </div>
</div>
</div>
@@ -44,5 +44,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-colors.html b/doc/context/scripts/mkiv/mtx-colors.html
index f9b05c74c..91c088eef 100644
--- a/doc/context/scripts/mkiv/mtx-colors.html
+++ b/doc/context/scripts/mkiv/mtx-colors.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Color Management 0.10 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<tt>mtxrun --script color --table somename</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-context.html b/doc/context/scripts/mkiv/mtx-context.html
index c63c81132..199277b4e 100644
--- a/doc/context/scripts/mkiv/mtx-context.html
+++ b/doc/context/scripts/mkiv/mtx-context.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Process Management 1.01 </div>
</div>
</div>
@@ -118,5 +118,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-dvi.html b/doc/context/scripts/mkiv/mtx-dvi.html
index e83c43748..a763189f3 100644
--- a/doc/context/scripts/mkiv/mtx-dvi.html
+++ b/doc/context/scripts/mkiv/mtx-dvi.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt DVI Helpers 0.10 </div>
</div>
</div>
@@ -44,5 +44,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-epub.html b/doc/context/scripts/mkiv/mtx-epub.html
index 1a92a794a..efd8ad704 100644
--- a/doc/context/scripts/mkiv/mtx-epub.html
+++ b/doc/context/scripts/mkiv/mtx-epub.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt EPUB Helpers 1.10 </div>
</div>
</div>
@@ -51,5 +51,5 @@
<tt>mtxrun --script epub --make mydocument</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-fcd.html b/doc/context/scripts/mkiv/mtx-fcd.html
index ec928f79d..5b8f44761 100644
--- a/doc/context/scripts/mkiv/mtx-fcd.html
+++ b/doc/context/scripts/mkiv/mtx-fcd.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Fast Directory Change 1.00 </div>
</div>
</div>
@@ -58,5 +58,5 @@
<br/><tt>fcd --list</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-flac.html b/doc/context/scripts/mkiv/mtx-flac.html
index c4fb4efc4..fd3323477 100644
--- a/doc/context/scripts/mkiv/mtx-flac.html
+++ b/doc/context/scripts/mkiv/mtx-flac.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Flac Helpers 0.10 </div>
</div>
</div>
@@ -48,5 +48,5 @@
<br/><tt>mtxrun --script flac --collect --pattern="m:/music/**")</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-fonts.html b/doc/context/scripts/mkiv/mtx-fonts.html
index 80c5d04b4..b175139c8 100644
--- a/doc/context/scripts/mkiv/mtx-fonts.html
+++ b/doc/context/scripts/mkiv/mtx-fonts.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Font Database Management 0.21 </div>
</div>
</div>
@@ -77,5 +77,5 @@
<br/><tt>mtxrun --script font --convert --names texgyrepagella-regular.otf</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-grep.html b/doc/context/scripts/mkiv/mtx-grep.html
index 184ca0df3..10df98cf4 100644
--- a/doc/context/scripts/mkiv/mtx-grep.html
+++ b/doc/context/scripts/mkiv/mtx-grep.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Simple Grepper 0.10 </div>
</div>
</div>
@@ -57,5 +57,5 @@
<br/><tt>mtxrun --script grep --pattern=module --n=10 *.mkiv</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-interface.html b/doc/context/scripts/mkiv/mtx-interface.html
index 045dea546..a4c86a5a7 100644
--- a/doc/context/scripts/mkiv/mtx-interface.html
+++ b/doc/context/scripts/mkiv/mtx-interface.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Interface Related Goodies 0.13 </div>
</div>
</div>
@@ -60,5 +60,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-metapost.html b/doc/context/scripts/mkiv/mtx-metapost.html
index 793a411b9..0c0ccef47 100644
--- a/doc/context/scripts/mkiv/mtx-metapost.html
+++ b/doc/context/scripts/mkiv/mtx-metapost.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">MetaPost to PDF processor 0.10 </div>
</div>
</div>
@@ -52,5 +52,5 @@
<br/><tt>mtxrun --script metapost yourfile.123 myfile.mps</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-metatex.html b/doc/context/scripts/mkiv/mtx-metatex.html
index 0bdc78987..18866c0d0 100644
--- a/doc/context/scripts/mkiv/mtx-metatex.html
+++ b/doc/context/scripts/mkiv/mtx-metatex.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">MetaTeX Process Management 0.10 </div>
</div>
</div>
@@ -45,5 +45,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-modules.html b/doc/context/scripts/mkiv/mtx-modules.html
index 8278c1aca..5bbed809e 100644
--- a/doc/context/scripts/mkiv/mtx-modules.html
+++ b/doc/context/scripts/mkiv/mtx-modules.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Module Documentation Generators 1.00 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-package.html b/doc/context/scripts/mkiv/mtx-package.html
index 3ebf5c5be..e2682a8c6 100644
--- a/doc/context/scripts/mkiv/mtx-package.html
+++ b/doc/context/scripts/mkiv/mtx-package.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Distribution Related Goodies 0.10 </div>
</div>
</div>
@@ -44,5 +44,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-patterns.html b/doc/context/scripts/mkiv/mtx-patterns.html
index 8aa378298..7d5da995d 100644
--- a/doc/context/scripts/mkiv/mtx-patterns.html
+++ b/doc/context/scripts/mkiv/mtx-patterns.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Pattern File Management 0.20 </div>
</div>
</div>
@@ -57,5 +57,5 @@
<br/><tt>mtxrun --script pattern --hyphenate --language=nl --left=3 nogalwiedes inderdaad</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-pdf.html b/doc/context/scripts/mkiv/mtx-pdf.html
index e2961d94d..b156c154e 100644
--- a/doc/context/scripts/mkiv/mtx-pdf.html
+++ b/doc/context/scripts/mkiv/mtx-pdf.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt PDF Helpers 0.10 </div>
</div>
</div>
@@ -47,5 +47,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-plain.html b/doc/context/scripts/mkiv/mtx-plain.html
index 2ceda35e7..e634dfe36 100644
--- a/doc/context/scripts/mkiv/mtx-plain.html
+++ b/doc/context/scripts/mkiv/mtx-plain.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Plain TeX Runner 1.00 </div>
</div>
</div>
@@ -49,5 +49,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-profile.html b/doc/context/scripts/mkiv/mtx-profile.html
index 50ac0c42e..e049d3417 100644
--- a/doc/context/scripts/mkiv/mtx-profile.html
+++ b/doc/context/scripts/mkiv/mtx-profile.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt MkIV LuaTeX Profiler 1.00 </div>
</div>
</div>
@@ -45,5 +45,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-rsync.html b/doc/context/scripts/mkiv/mtx-rsync.html
index 5a55fcbe5..c760fcba6 100644
--- a/doc/context/scripts/mkiv/mtx-rsync.html
+++ b/doc/context/scripts/mkiv/mtx-rsync.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Rsync Helpers 0.10 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-scite.html b/doc/context/scripts/mkiv/mtx-scite.html
index 3b540fa81..497098f9e 100644
--- a/doc/context/scripts/mkiv/mtx-scite.html
+++ b/doc/context/scripts/mkiv/mtx-scite.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Scite Helper Script 1.00 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-server.html b/doc/context/scripts/mkiv/mtx-server.html
index 01cf1cdf7..733bc3d49 100644
--- a/doc/context/scripts/mkiv/mtx-server.html
+++ b/doc/context/scripts/mkiv/mtx-server.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Simple Webserver For Helpers 0.10 </div>
</div>
</div>
@@ -49,5 +49,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-texworks.html b/doc/context/scripts/mkiv/mtx-texworks.html
index 5de6a748f..677420926 100644
--- a/doc/context/scripts/mkiv/mtx-texworks.html
+++ b/doc/context/scripts/mkiv/mtx-texworks.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">TeXworks Startup Script 1.00 </div>
</div>
</div>
@@ -45,5 +45,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-timing.html b/doc/context/scripts/mkiv/mtx-timing.html
index 1da0e6439..54598c8ca 100644
--- a/doc/context/scripts/mkiv/mtx-timing.html
+++ b/doc/context/scripts/mkiv/mtx-timing.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Timing Tools 0.10 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-tools.html b/doc/context/scripts/mkiv/mtx-tools.html
index 0cb6d6de3..012320794 100644
--- a/doc/context/scripts/mkiv/mtx-tools.html
+++ b/doc/context/scripts/mkiv/mtx-tools.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Some File Related Goodies 1.01 </div>
</div>
</div>
@@ -59,5 +59,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-unicode.html b/doc/context/scripts/mkiv/mtx-unicode.html
index 6c0729e0e..9302e26de 100644
--- a/doc/context/scripts/mkiv/mtx-unicode.html
+++ b/doc/context/scripts/mkiv/mtx-unicode.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Checker for char-def.lua 1.02 </div>
</div>
</div>
@@ -44,5 +44,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-unzip.html b/doc/context/scripts/mkiv/mtx-unzip.html
index 885599f8f..655c1be8d 100644
--- a/doc/context/scripts/mkiv/mtx-unzip.html
+++ b/doc/context/scripts/mkiv/mtx-unzip.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">Simple Unzipper 0.10 </div>
</div>
</div>
@@ -46,5 +46,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-update.html b/doc/context/scripts/mkiv/mtx-update.html
index 577453246..58595f0d8 100644
--- a/doc/context/scripts/mkiv/mtx-update.html
+++ b/doc/context/scripts/mkiv/mtx-update.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Minimals Updater 1.02 </div>
</div>
</div>
@@ -62,5 +62,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-watch.html b/doc/context/scripts/mkiv/mtx-watch.html
index 1f0e49bb4..cb24b18d6 100644
--- a/doc/context/scripts/mkiv/mtx-watch.html
+++ b/doc/context/scripts/mkiv/mtx-watch.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt Request Watchdog 1.00 </div>
</div>
</div>
@@ -51,5 +51,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtx-youless.html b/doc/context/scripts/mkiv/mtx-youless.html
index 6edb3fee6..726403371 100644
--- a/doc/context/scripts/mkiv/mtx-youless.html
+++ b/doc/context/scripts/mkiv/mtx-youless.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">YouLess Fetcher 1.00 </div>
</div>
</div>
@@ -52,5 +52,5 @@
<br/><tt>mtxrun --script youless --collect --host=192.168.2.50 --watt somefile.lua</tt>
<br/><br/> </div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/scripts/mkiv/mtxrun.html b/doc/context/scripts/mkiv/mtxrun.html
index 8b6155041..3df54da6e 100644
--- a/doc/context/scripts/mkiv/mtxrun.html
+++ b/doc/context/scripts/mkiv/mtxrun.html
@@ -21,9 +21,9 @@
</style>
<style type="text/css">
</style>
- </head>
- <body>
- <div id="top"> <div id="top-one">
+ </head>
+ <body>
+ <div id="top"> <div id="top-one">
<div id="top-two">ConTeXt TDS Runner Tool 1.32 </div>
</div>
</div>
@@ -99,5 +99,5 @@
<br/>
</div>
</div>
- </body>
- </html>
+ </body>
+</html>
diff --git a/doc/context/sources/general/manuals/details/details-floatingaround.tex b/doc/context/sources/general/manuals/details/details-floatingaround.tex
index 11fe0601c..719819fb6 100644
--- a/doc/context/sources/general/manuals/details/details-floatingaround.tex
+++ b/doc/context/sources/general/manuals/details/details-floatingaround.tex
@@ -1132,6 +1132,169 @@ The black rules are set up with:
\setupbackgrounds [text] [leftmargin] [background=]
\setupbackgrounds [text] [rightmargin] [background=]
+We will now demonstrate some features in a way that makes it possible to
+compare to the simple default case. Options can be passed as keywords:
+
+\starttyping
+\placefigure
+ [left,...]
+ [fig:whatever]
+ {caption}
+ {content}
+\stoptyping
+
+or as settings:
+
+\starttyping
+\startplacefigure
+ [default={left,...},
+ title=caption,
+ reference=fig:whatever]
+
+ content
+
+\stopplacefigure
+\stoptyping
+
+It is important to realize that all that spacing can interfere with additional
+hard coded corrections at the users end. We don't show the effects of \type
+{sidespacebefore} and \type {sidespaceafter}, the two general vertical spacing
+hooks. These are currently set to {\tttf \rootfloatparameter {sidespacebefore}}
+and {\tttf \rootfloatparameter {sidespaceafter}} respectively. The \type
+{sidealign} parameter is always winning from a keyword doing the same.
+
+The last few examples demonstrate that you can define an instance. Often that's
+the best way to deal with special cases in a consistent way. For instance:
+
+\starttyping
+\definefloat
+ [LeftTwo]
+ [figure]
+
+\setupfloat
+ [LeftTwo]
+ [default=left,
+ sidealign=line]
+\stoptyping
+
+First we show some keyword variant, next some parameter driven versions.
+
+\def\SampleKeyword#1%
+ {\setbuffer[foo]
+ \useMPlibrary[dum]
+ \setupbodyfont[dejavu]
+ \setuplayout[page]
+ \placefigure[left]{}{\externalfigure[dummy]} \samplefile{sapolsky} \samplefile{sapolsky}
+ \placefigure[#1] {}{\externalfigure[dummy]} \samplefile{sapolsky} \samplefile{sapolsky}
+ \endbuffer
+ \framed
+ [background=color,backgroundcolor=white]
+ {\scale
+ [width=.45\textwidth]
+ {\typesetbuffer[foo]}}}
+
+\def\SampleSettings#1#2#3%
+ {\setbuffer[foo]
+ \useMPlibrary[dum]
+ \setupbodyfont[dejavu]
+ \setuplayout[page]
+ \definefloat[#1][figure]
+ \setupfloat[#1][default=left]
+ \definefloat[#2][figure]
+ \setupfloat[#2][#3]
+ \startplacefloat[#1] \externalfigure[dummy] \stopplacefloat \samplefile{sapolsky} \samplefile{sapolsky}
+ \startplacefloat[#2] \externalfigure[dummy] \stopplacefloat \samplefile{sapolsky} \samplefile{sapolsky}
+ \endbuffer
+ \framed
+ [background=color,backgroundcolor=white]
+ {\scale
+ [width=.45\textwidth]
+ {\typesetbuffer[foo]}}}
+
+\startbuffer[LeftOne]
+\definefloat[LeftOne][figure]
+
+\setupfloat
+ [LeftOne]
+ [default=left]
+\stopbuffer
+
+\startbuffer[LeftTwo]
+\definefloat[LeftTwo][figure]
+
+\setupfloat
+ [LeftTwo]
+ [default=left,
+ sidealign=line]
+\stopbuffer
+
+\startbuffer[LeftThree]
+\definefloat[LeftThree][figure]
+
+\setupfloat
+ [LeftThree]
+ [default={left,2*line}]
+\stopbuffer
+
+\startbuffer[LeftFour]
+\definefloat[LeftFour][figure]
+
+\setupfloat
+ [LeftFour]
+ [default={left},
+ topoffset=5pt]
+\stopbuffer
+
+\startbuffer[LeftFive]
+\definefloat[LeftFive][figure]
+
+\setupfloat
+ [LeftFive]
+ [default={left},
+ bottomoffset=5pt,
+ topoffset=5pt]
+\stopbuffer
+
+\startlinecorrection
+\startcombination[2*2]
+ {\SampleKeyword{left,high}} {\type{left,high}}
+ {\SampleKeyword{left,low}} {\type{left,low}}
+ {\SampleKeyword{left,high,low}} {\type{left,high,low}}
+ {\SampleKeyword{left,fit}} {\type{left,fit}}
+\stopcombination
+\stoplinecorrection
+
+\startlinecorrection
+\startcombination[2*2]
+ {\SampleKeyword{left,halfline}} {\type{left,halfline}}
+ {\SampleKeyword{left,height}} {\type{left,height}}
+ {\SampleKeyword{left,depth}} {\type{left,depth}}
+ {\SampleKeyword{left,grid}} {\type{left,grid}}
+\stopcombination
+\stoplinecorrection
+
+\startlinecorrection
+\startcombination[2*2]
+ {\SampleKeyword{left,line}} {\type{left,line}}
+ {\SampleKeyword{left,1*line}} {\type{left,1*line}}
+ {\SampleKeyword{left,2*line}} {\type{left,2*line}}
+ {\SampleKeyword{left,3*line}} {\type{left,3*line}}
+\stopcombination
+\stoplinecorrection
+
+\startlinecorrection
+\startcombination[2*2]
+ {\SampleSettings{LeftOne}{LeftTwo} {default={left,line}}}
+ {\typ{default={left,line}}}
+ {\SampleSettings{LeftOne}{LeftThree}{default={left,2*line}}}
+ {\typ{default={left,2*line}}}
+ {\SampleSettings{LeftOne}{LeftFour} {default=left,topoffset=5pt}}
+ {\typ{default=left, topoffset=5pt}}
+ {\SampleSettings{LeftOne}{LeftFive} {default=left, topoffset=5pt, bottomoffset=5pt}}
+ {\typ{default=left, topoffset=5pt, bottomoffset=5pt}}
+\stopcombination
+\stoplinecorrection
+
\stopchapter
\stopcomponent
diff --git a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
index 10b4fd7a4..af2c69363 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
@@ -1255,6 +1255,28 @@ previous code (that mostly used \type {getc} calls), it can be quite a bit faste
\stopsubsection
+\startsubsection[title=Tabs and spaces]
+
+We conform to the way other \TEX\ engines handle trailing tabs and spaces. For
+decades trailing tabs and spaces (before a newline) were removed from the input
+but this behaviour was changed in September 2017 to only handle spaces. We are
+aware that this can introduce compatibility issues in existing workflows but
+because we don't want too many differences with upstream \TEXLIVE\ we just follow
+up on that patch (which is a functional one and not really a fix). It is up to
+macro packages maintainers to deal with possible compatibility issues and in
+\LUATEX\ they can do so via the callbacks that deal with reading from files.
+
+The previous behaviour was a known side effect and (as that kind of input
+normally comes from generated sources) it was normally dealt with by adding a
+comment token to the line in case the spaces and|/|or tabs were intentional and
+to be kept. We are aware of the fact that this contradicts some of our other
+choices but consistency with other engines and the fact that in \KPSE\ mode a
+common file \IO\ layer is used can have a side effect of breaking compatibility.
+We still stick to our view that at the log level we can (and might be) more
+incompatible.
+
+\stopsubsection
+
\stopsection
\stopchapter
diff --git a/doc/context/sources/general/manuals/publications/publications-database.tex b/doc/context/sources/general/manuals/publications/publications-database.tex
index 13663b1b5..675a28286 100644
--- a/doc/context/sources/general/manuals/publications/publications-database.tex
+++ b/doc/context/sources/general/manuals/publications/publications-database.tex
@@ -531,6 +531,38 @@ that these programs are not standards and many of them may introduce invalid
extensions that might not even be handled correctly by \BIBTEX\ itself.
\stopaside
+Here is an example of a loader. Each loader takes two arguments, a dataset
+identifier and a filename. The \LUA\ loader takes an extra optional argument: a
+function that returns a \LUA\ table. Here we use one of the loaders present in
+\CONTEXT:
+
+\starttyping
+\startluacode
+ function publications.loaders.json(dataset,filename)
+ publications.loaders.lua(dataset,filename,utilities.json.load)
+ end
+\stopluacode
+\stoptyping
+
+Here is an easy way to debug your own functions:
+
+\starttyping
+\startluacode
+ local function myloader(filename)
+ inspect(filename) -- shows the full filename used
+ local result = {
+ -- loaded entries
+ }
+ inspect(result) -- shows the loaded data
+ return result
+ end
+
+ function publications.loaders.json(dataset,filename)
+ return publications.loaders.lua(dataset,filename,myloader)
+ end
+\stopluacode
+\stoptyping
+
\stopsection
\stopchapter
diff --git a/scripts/context/lua/mtx-context.lua b/scripts/context/lua/mtx-context.lua
index 02d942eb0..c02b1a012 100644
--- a/scripts/context/lua/mtx-context.lua
+++ b/scripts/context/lua/mtx-context.lua
@@ -755,7 +755,10 @@ function scripts.context.run(ctxdata,filename)
if formatfile and scriptfile then
local suffix = validstring(getargument("suffix"))
local resultname = validstring(getargument("result"))
- if suffix then
+ local resultpath = file.pathpart(resultname)
+ if resultpath ~= "" then
+ resultname = nil
+ elseif suffix then
resultname = removesuffix(jobname) .. suffix
end
local oldbase = ""
@@ -962,6 +965,10 @@ function scripts.context.run(ctxdata,filename)
result_save_keep(oldbase,newbase)
end
report("result renamed to: %s",newbase)
+ elseif resultpath ~= "" then
+ report()
+ report("results are to be on the running path, not on %a, ignoring --result",resultpath)
+ report()
end
--
-- -- needs checking
diff --git a/scripts/context/lua/mtx-server-ctx-fonttest.lua b/scripts/context/lua/mtx-server-ctx-fonttest.lua
index ab324d3cb..d5437587b 100644
--- a/scripts/context/lua/mtx-server-ctx-fonttest.lua
+++ b/scripts/context/lua/mtx-server-ctx-fonttest.lua
@@ -9,17 +9,36 @@ if not modules then modules = { } end modules ['mtx-server-ctx-fonttest'] = {
-- probably too much but who cares
dofile(resolvers.findfile("trac-lmx.lua","tex"))
+dofile(resolvers.findfile("char-def.lua","tex"))
+
dofile(resolvers.findfile("font-ini.lua","tex"))
+dofile(resolvers.findfile("font-log.lua","tex"))
dofile(resolvers.findfile("font-con.lua","tex"))
--- dofile(resolvers.findfile("font-oti.lua","tex"))
--- dofile(resolvers.findfile("font-otf.lua","tex"))
--- dofile(resolvers.findfile("font-otp.lua","tex"))
+dofile(resolvers.findfile("font-cft.lua","tex"))
+dofile(resolvers.findfile("font-enc.lua","tex"))
+dofile(resolvers.findfile("font-agl.lua","tex"))
+dofile(resolvers.findfile("font-cid.lua","tex"))
+dofile(resolvers.findfile("font-map.lua","tex"))
dofile(resolvers.findfile("font-otr.lua","tex"))
+dofile(resolvers.findfile("font-web.lua","tex"))
dofile(resolvers.findfile("font-cff.lua","tex"))
--- dofile(resolvers.findfile("font-ttf.lua","tex"))
--- dofile(resolvers.findfile("font-ott.lua","tex"))
+dofile(resolvers.findfile("font-ttf.lua","tex"))
dofile(resolvers.findfile("font-dsp.lua","tex"))
+dofile(resolvers.findfile("font-hsh.lua","tex"))
+dofile(resolvers.findfile("font-oti.lua","tex"))
+dofile(resolvers.findfile("font-ott.lua","tex"))
+dofile(resolvers.findfile("font-otl.lua","tex"))
+-- dofile(resolvers.findfile("font-oto.lua","tex"))
+-- dofile(resolvers.findfile("font-otj.lua","tex"))
+dofile(resolvers.findfile("font-oup.lua","tex"))
+-- dofile(resolvers.findfile("font-ots.lua","tex"))
+-- dofile(resolvers.findfile("font-otd.lua","tex"))
+-- dofile(resolvers.findfile("font-otc.lua","tex"))
+-- dofile(resolvers.findfile("font-oth.lua","tex"))
+-- dofile(resolvers.findfile("font-osd.lua","tex"))
+-- dofile(resolvers.findfile("font-ocl.lua","tex"))
dofile(resolvers.findfile("font-onr.lua","tex"))
+
dofile(resolvers.findfile("font-syn.lua","tex"))
dofile(resolvers.findfile("font-mis.lua","tex"))
@@ -102,7 +121,7 @@ local javascripts = formatters [ [[
function selected_radio(name) {
var form = document.forms["main-form"] ;
var script = form.elements[name] ;
- if (script) {
+ if (script) {
var n = script.length ;
if (n) {
for (var i=0; i<n; i++) {
@@ -110,8 +129,8 @@ function selected_radio(name) {
return script[i].value ;
}
}
- }
- }
+ }
+ }
return "" ;
}
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index e9c1f31d3..77b6d12f5 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -21463,7 +21463,7 @@ function runners.execute_ctx_script(filename,...)
end
filename = environment.files[1]
if e_verbose then
- report("using script: %s\n",fullname)
+ report("using script: %s (if --path is used don't run on path where mtxrun lives)\n",fullname)
end
environment.ownscript = fullname
dofile(fullname)
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index e9c1f31d3..77b6d12f5 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -21463,7 +21463,7 @@ function runners.execute_ctx_script(filename,...)
end
filename = environment.files[1]
if e_verbose then
- report("using script: %s\n",fullname)
+ report("using script: %s (if --path is used don't run on path where mtxrun lives)\n",fullname)
end
environment.ownscript = fullname
dofile(fullname)
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index e9c1f31d3..77b6d12f5 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -21463,7 +21463,7 @@ function runners.execute_ctx_script(filename,...)
end
filename = environment.files[1]
if e_verbose then
- report("using script: %s\n",fullname)
+ report("using script: %s (if --path is used don't run on path where mtxrun lives)\n",fullname)
end
environment.ownscript = fullname
dofile(fullname)
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index e9c1f31d3..77b6d12f5 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -21463,7 +21463,7 @@ function runners.execute_ctx_script(filename,...)
end
filename = environment.files[1]
if e_verbose then
- report("using script: %s\n",fullname)
+ report("using script: %s (if --path is used don't run on path where mtxrun lives)\n",fullname)
end
environment.ownscript = fullname
dofile(fullname)
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index f31bce976..27f417f29 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.09.15 20:03}
+\newcontextversion{2017.09.21 21:05}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 93dd75394..66e27204f 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.09.15 20:03}
+\edef\contextversion{2017.09.21 21:05}
%D For those who want to use this:
diff --git a/tex/context/base/mkii/mult-en.mkii b/tex/context/base/mkii/mult-en.mkii
index e1f59ed93..8a0ab18a5 100644
--- a/tex/context/base/mkii/mult-en.mkii
+++ b/tex/context/base/mkii/mult-en.mkii
@@ -753,6 +753,7 @@
\setinterfaceconstant{direction}{direction}
\setinterfaceconstant{directory}{directory}
\setinterfaceconstant{display}{display}
+\setinterfaceconstant{displaythreshold}{displaythreshold}
\setinterfaceconstant{distance}{distance}
\setinterfaceconstant{domain}{domain}
\setinterfaceconstant{dot}{dot}
@@ -862,6 +863,7 @@
\setinterfaceconstant{index}{index}
\setinterfaceconstant{indicator}{indicator}
\setinterfaceconstant{initialsep}{initialsep}
+\setinterfaceconstant{inlinethreshold}{inlinethreshold}
\setinterfaceconstant{inner}{inner}
\setinterfaceconstant{innermargin}{innermargin}
\setinterfaceconstant{inputfile}{inputfile}
diff --git a/tex/context/base/mkii/mult-it.mkii b/tex/context/base/mkii/mult-it.mkii
index a79b0b9e8..c0eb9332b 100644
--- a/tex/context/base/mkii/mult-it.mkii
+++ b/tex/context/base/mkii/mult-it.mkii
@@ -753,6 +753,7 @@
\setinterfaceconstant{direction}{direzione}
\setinterfaceconstant{directory}{directory}
\setinterfaceconstant{display}{display}
+\setinterfaceconstant{displaythreshold}{displaythreshold}
\setinterfaceconstant{distance}{distanza}
\setinterfaceconstant{domain}{domain}
\setinterfaceconstant{dot}{punto}
@@ -862,6 +863,7 @@
\setinterfaceconstant{index}{index}
\setinterfaceconstant{indicator}{indicatore}
\setinterfaceconstant{initialsep}{initialsep}
+\setinterfaceconstant{inlinethreshold}{inlinethreshold}
\setinterfaceconstant{inner}{interno}
\setinterfaceconstant{innermargin}{margineinterno}
\setinterfaceconstant{inputfile}{inputfile}
diff --git a/tex/context/base/mkiv/back-exp.lua b/tex/context/base/mkiv/back-exp.lua
index 3ad9418ec..5e78c38b7 100644
--- a/tex/context/base/mkiv/back-exp.lua
+++ b/tex/context/base/mkiv/back-exp.lua
@@ -3519,7 +3519,7 @@ local htmltemplate = [[
local function validpath(what,pathname)
if lfs.isdir(pathname) then
- report_export("using exiting %s path %a",what,pathname)
+ report_export("using existing %s path %a",what,pathname)
return pathname
end
lfs.mkdir(pathname)
diff --git a/tex/context/base/mkiv/back-exp.mkiv b/tex/context/base/mkiv/back-exp.mkiv
index 6e24ed641..4cab46bdd 100644
--- a/tex/context/base/mkiv/back-exp.mkiv
+++ b/tex/context/base/mkiv/back-exp.mkiv
@@ -270,6 +270,9 @@
\clf_initializeexport
\setsystemmode\v!export
\exportingtrue
+ \writestatus\m!backend\empty % so messages will stand out a bit
+ \the\everyinitializeexport
+ \writestatus\m!backend\empty % so messages will stand out a bit
\glet\doinitializeexport\relax
\fi}
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index c3305ba66..249a503d7 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.09.15 20:03}
+\newcontextversion{2017.09.21 21:05}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context-base.lmx b/tex/context/base/mkiv/context-base.lmx
index 482d43e88..af8c3c127 100644
--- a/tex/context/base/mkiv/context-base.lmx
+++ b/tex/context/base/mkiv/context-base.lmx
@@ -25,6 +25,9 @@
<style type="text/css">
<?lua inject(variables.cssdata) ?>
</style>
+ <?lua if variables.javascriptfiles then for k, v in ipairs(variables.javascriptfiles) do ?>
+ <script src="<?lua inject(v) ?>"></script>
+ <?lua end end ?>
<?lua if variables.styles then for k, v in ipairs(variables.styles) do ?>
<link rel="StyleSheet" href="<?lua inject(v) ?>" type="text/css" />
<?lua end end ?>
@@ -36,10 +39,14 @@
</script>
<![endif]-->
<?lua end ?>
+ <body>
<?lua if variables.action then ?>
- <form action="<?lua inject(variables.action) ?>" enctype="multi-part/form-data" method="post">
+ <?lua if variables.formmethod == "get" then ?>
+ <form action="<?lua inject(variables.action) ?>" method="get">
+ <?lua else ?>
+ <form action="<?lua inject(variables.action) ?>" enctype="multi-part/form-data" method="post">
+ <?lua end ?>
<?lua end ?>
- <body>
<div id="top"><?lua if variables.title then ?>
<div id="top-one">
<div id="top-two"><?lua
@@ -81,8 +88,8 @@
<?lua inject(variables.maintext) ?>
</div>
</div>
- </body>
<?lua if variables.action then ?>
</form>
<?lua end ?>
+ </body>
</html>
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 4033f2c7d..50aa3a843 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -41,7 +41,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.09.15 20:03}
+\edef\contextversion{2017.09.21 21:05}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/core-ini.mkiv b/tex/context/base/mkiv/core-ini.mkiv
index 35790f131..cb8881c22 100644
--- a/tex/context/base/mkiv/core-ini.mkiv
+++ b/tex/context/base/mkiv/core-ini.mkiv
@@ -87,6 +87,10 @@
\newtoks \everyinsidefloat
+%D Exporting:
+
+\newtoks\everyinitializeexport
+
%D Sectioning:
%newtoks \everyheadstart
diff --git a/tex/context/base/mkiv/data-tex.lua b/tex/context/base/mkiv/data-tex.lua
index b6b97a0a9..2d2c9b24d 100644
--- a/tex/context/base/mkiv/data-tex.lua
+++ b/tex/context/base/mkiv/data-tex.lua
@@ -57,6 +57,33 @@ resolvers.inputstack = resolvers.inputstack or { }
local inputstack = resolvers.inputstack
+----------------------------------------
+
+local lpegmatch = lpeg.match
+local newline = lpeg.patterns.newline
+local tsplitat = lpeg.tsplitat
+
+local linesplitters = {
+ tsplitat(newline), -- default since we started
+ tsplitat(lpeg.S(" ")^0 * newline),
+ tsplitat(lpeg.S(" \t")^0 * newline),
+ tsplitat(lpeg.S(" \f\t")^0 * newline), -- saves a bit of space at the cost of runtime
+ -- tsplitat(lpeg.S(" \v\f\t")^0 * newline),
+ -- tsplitat(lpeg.R("\0\31")^0 * newline),
+}
+
+local linesplitter = linesplitters[1]
+
+directives.register("system.linesplitmethod",function(v)
+ linesplitter = linesplitters[tonumber(v) or 1] or linesplitters[1]
+end)
+
+local function splitlines(str)
+ return lpegmatch(linesplitter,str)
+end
+
+-----------------------------------------
+
function helpers.textopener(tag,filename,filehandle,coding)
local lines
local t_filehandle = type(filehandle)
diff --git a/tex/context/base/mkiv/file-job.mkvi b/tex/context/base/mkiv/file-job.mkvi
index 75362d5a9..49598a494 100644
--- a/tex/context/base/mkiv/file-job.mkvi
+++ b/tex/context/base/mkiv/file-job.mkvi
@@ -345,4 +345,14 @@
%S The document: namespace will be used elsewhere too.
+% Bonus:
+
+\installcorenamespace{samplefile}
+
+\unexpanded\def\samplefile#1%
+ {\ifcsname\??samplefile#1\endcsname \else
+ \setxvalue{\??samplefile#1}{\cldloadfile{#1}}%
+ \fi
+ \lastnamedcs}
+
\protect \endinput
diff --git a/tex/context/base/mkiv/font-hsh.lua b/tex/context/base/mkiv/font-hsh.lua
index 95914b50c..60a27c043 100644
--- a/tex/context/base/mkiv/font-hsh.lua
+++ b/tex/context/base/mkiv/font-hsh.lua
@@ -61,8 +61,8 @@ hashes.originals = originals
hashes.modes = modes
hashes.variants = variants
-local nodepool = nodes.pool
-local dummyglyph = nodepool.register(nodepool.glyph())
+local nodepool = nodes and nodes.pool
+local dummyglyph = nodepool and nodepool.register(nodepool.glyph())
local nulldata = allocate {
name = "nullfont",
@@ -239,7 +239,7 @@ setmetatableindex(quads, function(t,k)
local quad
if parameters then
quad = parameters.quad
- else
+ elseif dummyglyph then
dummyglyph.font = k
dummyglyph.char = 0x2014 -- emdash
quad = dummyglyph.width -- dirty trick
@@ -260,7 +260,7 @@ setmetatableindex(xheights, function(t,k)
local xheight
if parameters then
xheight = parameters.xheight
- else
+ elseif dummyglyph then
dummyglyph.font = k
dummyglyph.char = 0x78 -- x
xheight = dummyglyph.height -- dirty trick
diff --git a/tex/context/base/mkiv/font-mis.lua b/tex/context/base/mkiv/font-mis.lua
index 6d2b99871..e1f158c83 100644
--- a/tex/context/base/mkiv/font-mis.lua
+++ b/tex/context/base/mkiv/font-mis.lua
@@ -27,24 +27,31 @@ if readers then
function fonts.helpers.getfeatures(name,save)
local filename = resolvers.findfile(name) or ""
if filename ~= "" then
- local name = file.removesuffix(file.basename(filename))
- local cleanname = containers.cleanname(name)
- local data = containers.read(otf.cache,cleanname)
- if data then
- readers.unpack(data)
- else
- data = readers.loadfont(filename) -- we can do a more minimal load
- -- if data and save then
- -- -- keep this in sync with font-otl
- -- readers.compact(data)
- -- readers.rehash(data,"unicodes")
- -- readers.addunicodetable(data)
- -- readers.extend(data)
- -- readers.pack(data)
- -- -- till here
- -- containers.write(otf.cache,cleanname,data)
- -- end
- end
+-- local name = file.removesuffix(file.basename(filename))
+-- local cleanname = containers.cleanname(name)
+-- local data = containers.read(otf.cache,cleanname)
+-- if data then
+-- readers.unpack(data)
+-- else
+-- data = readers.loadfont(filename) -- we can do a more minimal load
+-- -- if data and save then
+-- -- -- keep this in sync with font-otl
+-- -- readers.compact(data)
+-- -- readers.rehash(data,"unicodes")
+-- -- readers.addunicodetable(data)
+-- -- readers.extend(data)
+-- -- readers.pack(data)
+-- -- -- till here
+-- -- containers.write(otf.cache,cleanname,data)
+-- -- end
+-- end
+-- if not data then
+-- data = readers.loadfont(filename) -- we can do a more minimal load
+-- end
+-- if data then
+-- readers.unpack(data)
+-- end
+local data = otf.load(filename)
return data and data.resources and data.resources.features
end
end
diff --git a/tex/context/base/mkiv/lpdf-epd.lua b/tex/context/base/mkiv/lpdf-epd.lua
index 0f62d6189..06afaa087 100644
--- a/tex/context/base/mkiv/lpdf-epd.lua
+++ b/tex/context/base/mkiv/lpdf-epd.lua
@@ -57,6 +57,8 @@ local dictGetLength, dictGetVal, dictGetValNF, dictGetKey
local arrayGetLength, arrayGetNF, arrayGet
local streamReset, streamGetDict, streamGetChar
+-- getCatalog getNumPages getPageRef fetch getXRef getDocInfo
+
do
local object = epdf.Object()
--
@@ -538,6 +540,8 @@ function lpdf_epdf.load(filename)
--
local Catalog = some_dictionary(__xref__:getCatalog():getDict(),document)
local Info = some_dictionary(__xref__:getDocInfo():getDict(),document)
+-- local Catalog = some_dictionary(getDict(__xref__:getCatalog()),document)
+-- local Info = some_dictionary(getDict(__xref__:getDocInfo()),document)
--
document.Catalog = Catalog
document.Info = Info
diff --git a/tex/context/base/mkiv/mult-mes.lua b/tex/context/base/mkiv/mult-mes.lua
index 979831726..ffb9b32da 100644
--- a/tex/context/base/mkiv/mult-mes.lua
+++ b/tex/context/base/mkiv/mult-mes.lua
@@ -490,6 +490,14 @@ return {
no = "there is nothing to split",
ro = "there is nothing to split",
},
+ ["floatblocks:14"] = {
+ en = "float locations will be forced to %a due to exporting",
+ nl = "blok plaatsing is altijd %a vanwege export",
+ },
+ ["floatblocks:15"] = {
+ en = "location %a changed to %a due to exporting",
+ nl = "plaatsing %a vervangen door %a vanwege export",
+ },
["floatblocks:1"] = {
en = "%a is empty",
},
diff --git a/tex/context/base/mkiv/mult-sys.mkiv b/tex/context/base/mkiv/mult-sys.mkiv
index 038d5e5af..2fffe3084 100644
--- a/tex/context/base/mkiv/mult-sys.mkiv
+++ b/tex/context/base/mkiv/mult-sys.mkiv
@@ -479,6 +479,7 @@
\definemessageconstant {metapost}
\definemessageconstant {chemicals}
\definemessageconstant {publications}
+\definemessageconstant {backend}
%D When we use numbers and dimensions the same applies as with the keywords like
%D \type {width} and \type {plus} mentioned earlier.
diff --git a/tex/context/base/mkiv/page-cst.mkiv b/tex/context/base/mkiv/page-cst.mkiv
index ed4512561..1dc324d8c 100644
--- a/tex/context/base/mkiv/page-cst.mkiv
+++ b/tex/context/base/mkiv/page-cst.mkiv
@@ -326,7 +326,7 @@
\fi}}%
\clf_finishcolumnsetflush{\currentpagegrid}%
\egroup
- \page_otr_construct_and_shipout\box\b_page_grid_collected
+ \page_otr_construct_and_shipout\box\b_page_grid_collected\zerocount % three arguments
\clf_flushcolumnsetareas{\currentpagegrid}\relax
\page_grid_command_flush_saved_floats}
diff --git a/tex/context/base/mkiv/page-ini.mkiv b/tex/context/base/mkiv/page-ini.mkiv
index 7ffd00c65..3e145690f 100644
--- a/tex/context/base/mkiv/page-ini.mkiv
+++ b/tex/context/base/mkiv/page-ini.mkiv
@@ -36,7 +36,7 @@
\newconditional\c_otr_shipout_enabled \settrue\c_otr_shipout_enabled
-\unexpanded\def\page_otr_shipout
+\unexpanded\def\page_otr_shipout % not used at all
{\ifconditional\c_otr_shipout_enabled
\expandafter\page_otr_shipout_yes
\else
@@ -90,13 +90,57 @@
\fi}
\def\page_otr_flush_pending_content
- {\vskip\zeropoint\relax % brrr .. get rid of this
+ {\vskip\zeropoint\relax
\ifvoid\normalpagebox \else
\unvbox\normalpagebox
\penalty\outputpenalty
\fi}
-\def\page_otr_construct_and_shipout#1#2%
+\newconstant\c_page_postponed_mode % \c_page_postponed_mode\plusone
+\newbox \b_page_otr_saved
+
+\installoutputroutine\savepagecontent
+ {\global\setbox\b_page_otr_saved\box\normalpagebox}
+
+\unexpanded\def\flushpagecontent
+ {\ifvoid\b_page_otr_saved\else\unvbox\b_page_otr_saved\fi}
+
+% Test case: assumes one group level for output routine, todo:
+% a toks.
+%
+% \starttext
+%
+% \startbuffer[makeup]
+% \startpagemakeup[pagestate=start,page=no]
+% \color[red]{
+% \vfill
+% \dorecurse{3}{
+% \samplefile{klein}
+% \vfill
+% }
+% }
+% \stoppagemakeup
+% \stopbuffer
+%
+% \startcolor[green]
+% \dorecurse{10}{
+% \dontleavehmode{\bf 1:#1:} \samplefile{sapolsky}\par
+% }
+% \stopcolor
+%
+% \startpostponing % [+3]
+% \getbuffer[makeup]
+% \stoppostponing
+%
+% \startcolor[blue]
+% \dorecurse{25}{
+% \dontleavehmode{\bf 2:#1:} \samplefile{sapolsky}\par
+% }
+% \stopcolor
+%
+% \stoptext
+
+\def\page_otr_construct_and_shipout#1#2#3%
{\forgetall
\page_boxes_shipout{\page_boxes_constructed_page#1#2}% \hbox removed
\page_otr_flush_pending_content
@@ -112,7 +156,16 @@
\page_otr_check_for_pending_inserts
\page_floats_flush_page_floats % before postponed blocks
\page_spread_flush % defined later
- \page_postponed_blocks_flush}
+ \ifnum#3=\plusone
+ % this is tricky! we need to make sure we are in the output group
+ \ifnum\c_page_postponed_mode=\plusone
+ \aftergroup\page_postponed_blocks_flush
+ \else
+ \page_postponed_blocks_flush
+ \fi
+ \else
+ \page_postponed_blocks_flush
+ \fi}
% Can't we get rid of this hackery? It's used in some widgets
% stuff so probably not.
diff --git a/tex/context/base/mkiv/page-mix.mkiv b/tex/context/base/mkiv/page-mix.mkiv
index 8b58a4c3d..73ed9466c 100644
--- a/tex/context/base/mkiv/page-mix.mkiv
+++ b/tex/context/base/mkiv/page-mix.mkiv
@@ -239,7 +239,7 @@
\def\page_mix_routine_error
{\showmessage\m!columns3\empty
- \page_otr_construct_and_shipout\unvbox\normalpagebox}
+ \page_otr_construct_and_shipout\unvbox\normalpagebox\zerocount} % three arguments
%D Some settings (and actions) depend on the current output routine and setting the
%D hsize and vsize is among them. The calculation of the hsize is done elsewhere.
@@ -737,7 +737,7 @@
\setbox\b_page_mix_collected\vpack{\unvbox\normalpagebox}% brrr we need to make a tight box (combine this in lua)
\page_mix_routine_construct\v!no
\page_mix_routine_package
- \page_otr_construct_and_shipout\box\b_page_mix_collected
+ \page_otr_construct_and_shipout\box\b_page_mix_collected\zerocount % three arguments
\clf_mixflushrest
\clf_mixcleanup
\egroup}
@@ -775,7 +775,7 @@
% 1 = we have stuff left, so flush and rebalance
%writestatus\m!columns{flush continue}%
\page_mix_routine_package
- \page_otr_construct_and_shipout\box\b_page_mix_collected
+ \page_otr_construct_and_shipout\box\b_page_mix_collected\zerocount % three arguments
\setbox\b_page_mix_collected\vpack{\clf_mixflushrest}% we could avoid this
\clf_mixcleanup
\ifdim\ht\b_page_mix_collected=\zeropoint
@@ -938,10 +938,10 @@
\unexpanded\def\page_mix_place_float_force
{\page_one_place_float_force}
-\unexpanded\def\page_mix_command_side_float_output % hm
- {\page_otr_construct_and_shipout\unvbox\normalpagebox}
+\unexpanded\def\page_mix_command_side_float_output
+ {\page_otr_construct_and_shipout\unvbox\normalpagebox\zerocount} % three arguments
-\unexpanded\def\page_mix_command_synchronize_side_floats % hm
+\unexpanded\def\page_mix_command_synchronize_side_floats
{\page_sides_forget_floats}
\unexpanded\def\page_mix_command_flush_side_floats
diff --git a/tex/context/base/mkiv/page-mul.mkiv b/tex/context/base/mkiv/page-mul.mkiv
index 14b9eb992..5b4f064d0 100644
--- a/tex/context/base/mkiv/page-mul.mkiv
+++ b/tex/context/base/mkiv/page-mul.mkiv
@@ -86,7 +86,7 @@
{\page_one_place_float_force}
\unexpanded\def\page_mul_command_side_float_output
- {\page_otr_construct_and_shipout\unvbox\normalpagebox}
+ {\page_otr_construct_and_shipout\unvbox\normalpagebox\zerocount} % three arguments
\unexpanded\def\page_mul_command_flush_side_floats
{\page_sides_forget_floats}
@@ -341,7 +341,7 @@
\def\page_mul_routine_error
{\showmessage\m!columns3\empty
- \page_otr_construct_and_shipout\unvbox\normalpagebox}
+ \page_otr_construct_and_shipout\unvbox\normalpagebox\zerocount} % three arguments
%D When we leave the multi||column mode, we have to process the not yet shipped out
%D part of the columns. When we don't balance, we simply force a continuous output,
@@ -858,7 +858,7 @@
{\ht\currentcolumnbox\d_page_mul_balance_target}% redundant
\fi
\setbox\b_page_mul_preceding\vbox{\page_mul_flush_packaged_columns_continued}%
- \page_otr_construct_and_shipout\box\b_page_mul_preceding
+ \page_otr_construct_and_shipout\box\b_page_mul_preceding\zerocount % three arguments
\page_otr_command_set_hsize
\page_otr_command_set_vsize
\page_mul_flush_floats
diff --git a/tex/context/base/mkiv/page-one.mkiv b/tex/context/base/mkiv/page-one.mkiv
index d113d3d54..f3d7aa3e4 100644
--- a/tex/context/base/mkiv/page-one.mkiv
+++ b/tex/context/base/mkiv/page-one.mkiv
@@ -192,7 +192,7 @@
\egroup}
\unexpanded\def\page_one_command_side_float_output
- {\page_otr_construct_and_shipout\unvbox\normalpagebox}
+ {\page_otr_construct_and_shipout\unvbox\normalpagebox\plusone} % three arguments, we need to be in the output group
\unexpanded\def\page_one_command_routine
{\page_sides_output_routine}
diff --git a/tex/context/base/mkiv/page-otr.mkvi b/tex/context/base/mkiv/page-otr.mkvi
index ec38a06c1..22d622db8 100644
--- a/tex/context/base/mkiv/page-otr.mkvi
+++ b/tex/context/base/mkiv/page-otr.mkvi
@@ -166,6 +166,26 @@
#content\relax
\the\everyafteroutput}}
+% Just as fuzzy (and in 'one' we are okay with \aftergroup anyway):
+%
+% \ifdefined\everybeforeoutputgroup \else \newtoks\everybeforeoutputgroup \fi
+% \ifdefined\everyafteroutputgroup \else \newtoks\everyafteroutputgroup \fi
+%
+% \def\page_otf_set_engine_output_routine#content%
+% {\the\everybeforeoutputgroup
+% \global\output
+% {\inotrtrue
+% \the\everybeforeoutput
+% #content\relax
+% \the\everyafteroutput
+% \aftergroup\the\aftergroup\everyafteroutputgroup}}
+%
+% \appendtoks
+% \ifnum\c_page_postponed_mode=\plusone
+% \page_postponed_blocks_flush % and then not in \page_otr_construct_and_shipout
+% \fi
+% \to \everyafteroutputgroup
+
\page_otf_set_engine_output_routine\page_otr_triggered_output_routine
\installoutputroutine\synchronizeoutput
diff --git a/tex/context/base/mkiv/page-pst.mkiv b/tex/context/base/mkiv/page-pst.mkiv
index f12663f66..05b4f4209 100644
--- a/tex/context/base/mkiv/page-pst.mkiv
+++ b/tex/context/base/mkiv/page-pst.mkiv
@@ -69,10 +69,15 @@
% officially we should flush again after a flush as there can be new future pages
% but that will be looked into when we run into it
+\c_page_postponed_mode\plusone
+
\unexpanded\def\page_postponed_blocks_flush_indeed
{\begingroup
\setsystemmode\v!postponing
\settrue\c_page_postponed_busy
+ \ifnum\c_page_postponed_mode=\plusone
+ \savepagecontent
+ \fi
\pagetotal\zeropoint % here? still needed? (was after flush pagefloats)
\the\everytopofpage\relax
%\flushrestfloats
@@ -84,6 +89,9 @@
% page {123}
\relax
\page_otr_command_flush_floats % new but potential dangerous, maybe we need a classification
+ \ifnum\c_page_postponed_mode=\plusone
+ \flushpagecontent
+ \fi
\endgroup} % of blocks: with and without flush
\unexpanded\def\page_postponed_blocks_flush
diff --git a/tex/context/base/mkiv/page-set.mkiv b/tex/context/base/mkiv/page-set.mkiv
index f3fa01696..0d62df75a 100644
--- a/tex/context/base/mkiv/page-set.mkiv
+++ b/tex/context/base/mkiv/page-set.mkiv
@@ -560,14 +560,14 @@
{\ifdim\ht\OTRfinalpagebox=\textheight
\bgroup
\ifcase\OTRSETbalancemethod
- \page_otr_construct_and_shipout\box\OTRfinalpagebox
+ \page_otr_construct_and_shipout\box\OTRfinalpagebox\zerocount % three arguments
\else\ifdim\OTRSETbalht>\zeropoint
% catch a bordercase
\scratchdimen\OTRSETbalht
\advance\scratchdimen\lineheight\relax
\ifdim\scratchdimen>\textheight
% full page
- \page_otr_construct_and_shipout\box\OTRfinalpagebox
+ \page_otr_construct_and_shipout\box\OTRfinalpagebox\zerocount % three arguments
\else
% same page
\global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
@@ -576,7 +576,7 @@
\snaptogrid\vbox{\vskip\OTRSETbalht}% hack
\fi
\else
- \page_otr_construct_and_shipout\box\OTRfinalpagebox
+ \page_otr_construct_and_shipout\box\OTRfinalpagebox\zerocount % three arguments
\fi \fi
\globallet\OTRSETbalht\zeropoint
\egroup
diff --git a/tex/context/base/mkiv/publ-dat.lua b/tex/context/base/mkiv/publ-dat.lua
index 0bddad216..2cebb4379 100644
--- a/tex/context/base/mkiv/publ-dat.lua
+++ b/tex/context/base/mkiv/publ-dat.lua
@@ -862,7 +862,7 @@ do
publications.loadbibdata(dataset,data,fullname,kind)
end
- function loaders.lua(dataset,filename) -- if filename is a table we load that one
+ function loaders.lua(dataset,filename,loader) -- if filename is a table we load that one
local current, data, fullname
if type(filename) == "table" then
current = datasets[dataset]
@@ -873,7 +873,7 @@ do
return
end
current = datasets[dataset]
- data = table.load(fullname)
+ data = (loader or table.load)(fullname)
end
if data then
local luadata = current.luadata
@@ -888,6 +888,10 @@ do
end
end
+ function loaders.json(dataset,filename)
+ loaders.lua(dataset,filename,utilities.json.load)
+ end
+
function loaders.buffer(dataset,name) -- if filename is a table we load that one
local current = datasets[dataset]
local barename = file.removesuffix(name)
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index e45d0d6c3..962f63e0a 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 59f1db86f..fa7946a53 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/strc-flt.mkvi b/tex/context/base/mkiv/strc-flt.mkvi
index 7ddb168ca..359b32a53 100644
--- a/tex/context/base/mkiv/strc-flt.mkvi
+++ b/tex/context/base/mkiv/strc-flt.mkvi
@@ -538,9 +538,20 @@
\setupfloat[\c!spacebefore=\v!none,\c!spaceafter=\v!none]%
\to \c_floats_every_table_float
+\appendtoks
+ \showmessage\m!floatblocks{14}\v!here
+\to \everyinitializeexport
+
+\def\strc_floats_set_checked_location#location%
+ {\edef\floatlocation{#location}%
+ \ifexporting \ifx\floatlocation\v!here \else
+ \showmessage\m!floatblocks{15}{\floatlocation,\v!here}%
+ \let\floatlocation\v!here
+ \fi \fi}
+
\def\strc_floats_place_indeed[#location][#reference]#caption%
{\strc_floats_reset_variables
- \edef\floatlocation{\ifexporting\v!here\else#location\fi}%
+ \strc_floats_set_checked_location{#location}%
\ifx\floatlocation\empty
\edef\floatlocation{\floatparameter\c!default}% beware of a clash between alignment locations
\fi
@@ -592,7 +603,7 @@
\setexpandedfloatparameter\c!bottomoffset{\floatcaptionparameter\c!bottomoffset}%
\setexpandedfloatparameter\c!freeregion {\floatcaptionparameter\c!freeregion}%
\def\m_strc_floats_saved_userdata{#2}%
- \edef\floatlocation{\ifexporting\v!here\else\floatcaptionparameter\c!location\fi}%
+ \strc_floats_set_checked_location{\floatcaptionparameter\c!location}%
\setfloatcaptionparameter\c!location{\savedfloatlocation}% not expanded
\ifx\floatlocation\empty
\edef\floatlocation{\floatparameter\c!default}%
@@ -1037,10 +1048,13 @@
\unexpanded\def\installfloatmovement#1#2{\setvalue{\??floatmovement#1}{#2}}
+% \def\strc_floats_move_down#setting%
+% {\csname\??floatmovement
+% \ifcsname\??floatmovement#setting\endcsname#setting\fi
+% \endcsname}
+
\def\strc_floats_move_down#setting%
- {\csname\??floatmovement
- \ifcsname\??floatmovement#setting\endcsname#setting\fi
- \endcsname}
+ {\begincsname\??floatmovement#setting\endcsname}
\def\strc_floats_move_down_line#sign%
{\if!!donea \else
@@ -1247,7 +1261,7 @@
\global\floatwidth \wd\floatbox
\global\floatheight \ht\floatbox % forget about the depth
\global\floattextwidth\dimexpr\hsize-\floatwidth-\rootfloatparameter\c!margin\relax
- \edef\floatlocation{\ifexporting\v!here\else\floatlocationmethod\fi}% to be sure .. why
+ \strc_floats_set_checked_location\floatlocationmethod% to be sure .. why
\doifelseinset\v!tall\floatlocationmethod
{\floattextheight\dimexpr\pagegoal-\pagetotal-\bigskipamount\relax % ugly, this bigskip
\ifdim\floattextheight>\textheight
diff --git a/tex/context/base/mkiv/util-jsn.lua b/tex/context/base/mkiv/util-jsn.lua
index e835c07d6..e75b5cf5d 100644
--- a/tex/context/base/mkiv/util-jsn.lua
+++ b/tex/context/base/mkiv/util-jsn.lua
@@ -158,4 +158,11 @@ end
-- inspect(json.tostring(true))
+function json.load(filename)
+ local data = io.loaddata(filename)
+ if data then
+ return lpegmatch(jsonconverter,data)
+ end
+end
+
return json
diff --git a/tex/context/interface/mkii/keys-en.xml b/tex/context/interface/mkii/keys-en.xml
index be455e9fc..3add761bc 100644
--- a/tex/context/interface/mkii/keys-en.xml
+++ b/tex/context/interface/mkii/keys-en.xml
@@ -759,6 +759,7 @@
<cd:constant name='direction' value='direction'/>
<cd:constant name='directory' value='directory'/>
<cd:constant name='display' value='display'/>
+ <cd:constant name='displaythreshold' value='displaythreshold'/>
<cd:constant name='distance' value='distance'/>
<cd:constant name='domain' value='domain'/>
<cd:constant name='dot' value='dot'/>
@@ -868,6 +869,7 @@
<cd:constant name='index' value='index'/>
<cd:constant name='indicator' value='indicator'/>
<cd:constant name='initialsep' value='initialsep'/>
+ <cd:constant name='inlinethreshold' value='inlinethreshold'/>
<cd:constant name='inner' value='inner'/>
<cd:constant name='innermargin' value='innermargin'/>
<cd:constant name='inputfile' value='inputfile'/>
diff --git a/tex/context/interface/mkii/keys-it.xml b/tex/context/interface/mkii/keys-it.xml
index 0df2eba36..721902f8e 100644
--- a/tex/context/interface/mkii/keys-it.xml
+++ b/tex/context/interface/mkii/keys-it.xml
@@ -759,6 +759,7 @@
<cd:constant name='direction' value='direzione'/>
<cd:constant name='directory' value='directory'/>
<cd:constant name='display' value='display'/>
+ <cd:constant name='displaythreshold' value='displaythreshold'/>
<cd:constant name='distance' value='distanza'/>
<cd:constant name='domain' value='domain'/>
<cd:constant name='dot' value='punto'/>
@@ -868,6 +869,7 @@
<cd:constant name='index' value='index'/>
<cd:constant name='indicator' value='indicatore'/>
<cd:constant name='initialsep' value='initialsep'/>
+ <cd:constant name='inlinethreshold' value='inlinethreshold'/>
<cd:constant name='inner' value='interno'/>
<cd:constant name='innermargin' value='margineinterno'/>
<cd:constant name='inputfile' value='inputfile'/>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index bf72c9fcc..5c441b1f7 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 8f5f4a254..cbdfae1db 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/context/test/mkiv/pdf-a1a-2005.mkiv b/tex/context/test/mkiv/pdf-a1a-2005.mkiv
index 8f79d3f33..90ac0c242 100644
--- a/tex/context/test/mkiv/pdf-a1a-2005.mkiv
+++ b/tex/context/test/mkiv/pdf-a1a-2005.mkiv
@@ -6,6 +6,7 @@
[format=PDF/A-1a:2005,
intent=sRGB IEC61966-2.1, % use <info> entry here; otherwise problems with predefined default profile
profile=sRGB.icc, % use <filename> here
+ % profile={sRGB.icc,default_gray.icc}]
level=0]
\setuptagging[state=start]
diff --git a/tex/context/test/mkiv/pdf-a1b-2005.mkiv b/tex/context/test/mkiv/pdf-a1b-2005.mkiv
index bc970c3f9..f23942a97 100644
--- a/tex/context/test/mkiv/pdf-a1b-2005.mkiv
+++ b/tex/context/test/mkiv/pdf-a1b-2005.mkiv
@@ -6,6 +6,7 @@
[format=PDF/A-1b:2005,
intent=sRGB IEC61966-2.1, % use <info> entry here; otherwise problems with predefined default profile
profile=sRGB.icc, % use <filename> here
+ % profile={sRGB.icc,default_gray.icc}]
level=0]
\setuptagging[state=start] % needed even for 'b'-version
diff --git a/tex/context/test/mkiv/pdf-a2a.mkiv b/tex/context/test/mkiv/pdf-a2a.mkiv
index eea567f34..a0e181e69 100644
--- a/tex/context/test/mkiv/pdf-a2a.mkiv
+++ b/tex/context/test/mkiv/pdf-a2a.mkiv
@@ -5,7 +5,7 @@
\setupbackend
[format=PDF/A-2a,
intent=sRGB IEC61966-2.1, % use <info> entry here; otherwise problems with predefined default profile
- profile=sRGB.icc, % use <filename> here
+ profile={sRGB.icc,default_gray.icc},
level=0]
\setuptagging[state=start]
diff --git a/tex/context/test/mkiv/pdf-a3a.mkiv b/tex/context/test/mkiv/pdf-a3a.mkiv
index e7bba6fd8..7efb28e3c 100644
--- a/tex/context/test/mkiv/pdf-a3a.mkiv
+++ b/tex/context/test/mkiv/pdf-a3a.mkiv
@@ -8,7 +8,7 @@
\setupbackend
[format=PDF/A-3a,
intent=sRGB IEC61966-2.1, % use <info> entry here; otherwise problems with predefined default profile
- profile=sRGB.icc, % use <filename> here
+ profile={sRGB.icc,default_gray.icc},
level=0]
\setuptagging[state=start]
diff --git a/tex/context/test/mkiv/pdf-x4.mkiv b/tex/context/test/mkiv/pdf-x4.mkiv
index 062de3b34..93b40d943 100644
--- a/tex/context/test/mkiv/pdf-x4.mkiv
+++ b/tex/context/test/mkiv/pdf-x4.mkiv
@@ -6,6 +6,7 @@
\setupbackend
[format=PDF/X-4,
+ %profile={sRGB.icc,default_gray.icc},
intent=ISOcoated_v2_eci.icc]
\input pdf-x-common.mkiv
diff --git a/tex/context/test/mkiv/pdf-x4p.mkiv b/tex/context/test/mkiv/pdf-x4p.mkiv
index bfee0b238..92e98722f 100644
--- a/tex/context/test/mkiv/pdf-x4p.mkiv
+++ b/tex/context/test/mkiv/pdf-x4p.mkiv
@@ -5,6 +5,6 @@
\setupbackend
[format=PDF/X-4p,
intent={ISO Coated v2 (ECI)},
- profile=sRGB.icc] % test for default colorspace
+ profile={sRGB.icc,default_gray.icc}]
\input pdf-x-common.mkiv
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 1952a9819..7952d17f5 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 09/15/17 20:03:34
+-- merge date : 09/21/17 21:05:06
do -- begin closure to overcome local limits and interference
diff --git a/tex/generic/context/luatex/luatex-math.tex b/tex/generic/context/luatex/luatex-math.tex
index 0ed8992d4..4ed900ddc 100644
--- a/tex/generic/context/luatex/luatex-math.tex
+++ b/tex/generic/context/luatex/luatex-math.tex
@@ -18,6 +18,8 @@
% we provide a remap feature
+% \protected makes our mp test work (no expansion)
+
\ifdefined\directlua
\directlua{dofile(kpse.find_file('luatex-math.lua'))}
\fi
@@ -34,7 +36,7 @@
\let \sevenbf = \relax
\let \fivebf = \relax
-\def\latinmodern
+\protected\def\latinmodern
{\font\tenrm = file:lmroman10-regular.otf:+liga;+kern;+tlig;+trep at 10pt
\font\sevenrm = file:lmroman7-regular.otf:+liga;+kern;+tlig;+trep at 7pt
\font\fiverm = file:lmroman5-regular.otf:+liga;+kern;+tlig;+trep at 5pt
@@ -63,7 +65,7 @@
%
\tenrm}
-\def\lucidabright
+\protected\def\lucidabright
{\font\tenrm = file:lucidabrightot.otf:+liga;+kern;+tlig;+trep at 10pt
\font\sevenrm = file:lucidabrightot.otf:+liga;+kern;+tlig;+trep at 7pt
\font\fiverm = file:lucidabrightot.otf:+liga;+kern;+tlig;+trep at 5pt
@@ -112,12 +114,12 @@
% the following commands switch text as well as math
-\def\rm{\fam0\relax\the\everymathrm\relax\tenrm\relax}
-\def\it{\fam0\relax\the\everymathit\relax\tenit\relax}
-\def\sl{\fam0\relax\the\everymathsl\relax\tensl\relax}
-\def\bf{\fam0\relax\the\everymathbf\relax\tenbf\relax}
-\def\bi{\fam0\relax\the\everymathbi\relax\tenbi\relax}
-\def\tt{\fam0\relax\the\everymathtt\relax\tentt\relax}
+\protected\def\rm{\fam0\relax\the\everymathrm\relax\tenrm\relax}
+\protected\def\it{\fam0\relax\the\everymathit\relax\tenit\relax}
+\protected\def\sl{\fam0\relax\the\everymathsl\relax\tensl\relax}
+\protected\def\bf{\fam0\relax\the\everymathbf\relax\tenbf\relax}
+\protected\def\bi{\fam0\relax\the\everymathbi\relax\tenbi\relax}
+\protected\def\tt{\fam0\relax\the\everymathtt\relax\tentt\relax}
% tex is fast enough for this kind of assignments:
@@ -911,11 +913,11 @@
% much sense, it's more that in good old tex oldstyle was taken from
% math fonts. So, just something compatible:
-\def\oldstyle{\fam1\relax\tenos\relax}
+\protected\def\oldstyle{\fam1\relax\tenos\relax}
% Again a text and math one and it had better be used grouped.
-\def\cal{\fam0\relax\the\everymathcal\relax\tenit\relax}
+\protected\def\cal{\fam0\relax\the\everymathcal\relax\tenit\relax}
\everymathcal {%
\Umathcode"0041="0"0"1D49C% A
@@ -1576,678 +1578,678 @@
% a couple of definitions (we could also use \mathchardef):
-\def\acute {\Umathaccent"0"0"0000B4 }
-\def\acwopencirclearrow {\Umathchar "3"0"0021BA }
-\def\aleph {\Umathchar "0"0"002135 }
-\def\Alpha {\Umathchar "0"0"000391 }
-\def\alpha {\Umathchar "0"0"0003B1 }
-\def\amalg {\Umathchar "2"0"002A3F }
-\def\angle {\Umathchar "0"0"002220 }
-\def\Angstrom {\Umathchar "0"0"00212B }
-\def\approx {\Umathchar "3"0"002248 }
-\def\approxEq {\Umathchar "3"0"002245 }
-\def\approxeq {\Umathchar "3"0"00224A }
-\def\approxnEq {\Umathchar "3"0"002247 }
-\def\arrowvert {\Umathchar "0"0"00007C }
-\def\Arrowvert {\Umathchar "0"0"002016 }
-\def\ast {\Umathchar "2"0"002217 }
-\def\ast {\Umathchar "2"0"002217 }
-\def\asymp {\Umathchar "3"0"00224D }
-\def\backepsilon {\Umathchar "0"0"0003F6 }
-\def\backprime {\Umathchar "0"0"012035 }
-\def\backsim {\Umathchar "3"0"00223D }
-\def\backslash {\Umathchar "0"0"00005C }
-\def\bar {\Umathaccent"0"0"0000AF }
-\def\barleftarrow {\Umathchar "3"0"0021E4 }
-\def\barleftarrowrightarrowbar {\Umathchar "3"0"0021B9 }
-\def\barovernorthwestarrow {\Umathchar "3"0"0021B8 }
-\def\barwedge {\Umathchar "2"0"0022BC }
-\def\because {\Umathchar "3"0"002235 }
-\def\Beta {\Umathchar "0"0"000392 }
-\def\beta {\Umathchar "0"0"0003B2 }
-\def\beth {\Umathchar "0"0"002136 }
-\def\between {\Umathchar "3"0"00226C }
-\def\bigcap {\Umathchar "1"0"0022C2 }
-\def\bigcirc {\Umathchar "2"0"0025EF }
-\def\bigcircle {\Umathchar "2"0"0020DD }
-\def\bigcircle {\Umathchar "2"0"0020DD }
-\def\bigcup {\Umathchar "1"0"0022C3 }
-\def\bigdiamond {\Umathchar "0"0"0020DF }
-\def\bigodot {\Umathchar "1"0"002A00 }
-\def\bigoplus {\Umathchar "1"0"002A01 }
-\def\bigotimes {\Umathchar "1"0"002A02 }
-\def\bigsqcap {\Umathchar "1"0"002A05 }
-\def\bigsqcup {\Umathchar "1"0"002A06 }
-\def\bigsquare {\Umathchar "0"0"0020DE }
-\def\bigstar {\Umathchar "0"0"002605 }
-\def\bigtimes {\Umathchar "1"0"002A09 }
-\def\bigtriangledown {\Umathchar "2"0"0025BD }
-\def\bigtriangleup {\Umathchar "2"0"0025B3 }
-\def\bigudot {\Umathchar "1"0"002A03 }
-\def\biguplus {\Umathchar "1"0"002A04 }
-\def\bigvee {\Umathchar "1"0"0022C1 }
-\def\bigwedge {\Umathchar "1"0"0022C0 }
-\def\blacklozenge {\Umathchar "0"0"002666 }
-\def\blacksquare {\Umathchar "0"0"0025A0 }
-\def\blacktriangle {\Umathchar "2"0"0025B2 }
-\def\blacktriangledown {\Umathchar "2"0"0025BC }
-\def\blacktriangleleft {\Umathchar "2"0"0025C0 }
-\def\blacktriangleright {\Umathchar "2"0"0025B6 }
-\def\bot {\Umathchar "0"0"0022A5 }
-\def\bowtie {\Umathchar "3"0"0022C8 }
-\def\Box {\Umathchar "0"0"0025A1 }
-\def\boxdot {\Umathchar "2"0"0022A1 }
-\def\boxminus {\Umathchar "2"0"00229F }
-\def\boxplus {\Umathchar "2"0"00229E }
-\def\boxtimes {\Umathchar "2"0"0022A0 }
-%def\braceld {\Umathchar "0"0"000000 }
-%def\bracerd {\Umathchar "0"0"000000 }
-%def\bracelu {\Umathchar "0"0"000000 }
-%def\braceru {\Umathchar "0"0"000000 }
-\def\breve {\Umathaccent"0"0"0002D8 }
-\def\bullet {\Umathchar "2"0"002022 }
-\def\bullet {\Umathchar "2"0"002022 }
-\def\Bumpeq {\Umathchar "3"0"00224E }
-\def\cap {\Umathchar "2"0"002229 }
-\def\Cap {\Umathchar "2"0"0022D2 }
-\def\carriagereturn {\Umathchar "0"0"0021B5 }
-\def\cdot {\Umathchar "2"0"0022C5 }
-\def\cdotp {\Umathchar "6"0"0022C5 }
-\def\cdots {\Umathchar "0"0"0022EF }
-\def\centerdot {\Umathchar "2"0"0000B7 }
-\def\check {\Umathaccent"0"0"0002C7 }
-\def\checkmark {\Umathchar "0"0"002713 }
-\def\Chi {\Umathchar "0"0"0003A7 }
-\def\chi {\Umathchar "0"0"0003C7 }
-\def\circ {\Umathchar "2"0"002218 }
-\def\circeq {\Umathchar "3"0"002257 }
-\def\circlearrowleft {\Umathchar "3"0"0021BB }
-\def\circlearrowright {\Umathchar "3"0"0021BA }
-\def\circledast {\Umathchar "2"0"00229B }
-\def\circledcirc {\Umathchar "2"0"00229A }
-\def\circleddash {\Umathchar "2"0"00229D }
-\def\circledequals {\Umathchar "2"0"00229C }
-\def\circledR {\Umathchar "0"0"0024C7 }
-\def\circledS {\Umathchar "0"0"0024C8 }
-\def\circleonrightarrow {\Umathchar "3"0"0021F4 }
-\def\clubsuit {\Umathchar "0"0"002663 }
-\def\colon {\Umathchar "6"0"002236 }
-\def\colonequals {\Umathchar "3"0"002254 }
-\def\complement {\Umathchar "0"0"002201 }
-\def\complexes {\Umathchar "0"0"002102 }
-\def\cong {\Umathchar "3"0"002245 }
-\def\coprod {\Umathchar "1"0"002210 }
-\def\cup {\Umathchar "2"0"00222A }
-\def\Cup {\Umathchar "2"0"0022D3 }
-\def\curlyeqprec {\Umathchar "3"0"0022DE }
-\def\curlyeqsucc {\Umathchar "3"0"0022DF }
-\def\curlyvee {\Umathchar "2"0"0022CE }
-\def\curlywedge {\Umathchar "2"0"0022CF }
-\def\curvearrowleft {\Umathchar "3"0"0021B6 }
-\def\curvearrowright {\Umathchar "3"0"0021B7 }
-\def\cwopencirclearrow {\Umathchar "3"0"0021BB }
-\def\dag {\Umathchar "0"0"002020 }
-\def\dagger {\Umathchar "2"0"002020 }
-\def\daleth {\Umathchar "0"0"002138 }
-\def\dasharrow {\Umathchar "3"0"0021E2 }
-\def\dashedleftarrow {\Umathchar "3"0"00290C }
-\def\dashedrightarrow {\Umathchar "3"0"00290D }
-\def\dashv {\Umathchar "3"0"0022A3 }
-\def\ddag {\Umathchar "0"0"002021 }
-\def\ddagger {\Umathchar "2"0"002021 }
-\def\dddot {\Umathaccent"0"0"0020DB }
-\def\ddot {\Umathaccent"0"0"0000A8 }
-\def\ddots {\Umathchar "0"0"0022F1 }
-\def\Ddownarrow {\Umathchar "3"0"00290B }
-\def\definedeq {\Umathchar "3"0"00225D }
-\def\Delta {\Umathchar "0"0"000394 }
-\def\delta {\Umathchar "0"0"0003B4 }
-\def\diamond {\Umathchar "2"0"0022C4 }
-\def\diamondsuit {\Umathchar "0"0"002662 }
-\def\differentialD {\Umathchar "0"0"002145 }
-\def\differentiald {\Umathchar "0"0"002146 }
-\def\digamma {\Umathchar "0"0"0003DC }
-\def\div {\Umathchar "2"0"0000F7 }
-\def\divideontimes {\Umathchar "2"0"0022C7 }
-\def\divides {\Umathchar "2"0"002223 }
-\def\dot {\Umathaccent"0"0"0002D9 }
-\def\doteq {\Umathchar "3"0"002250 }
-\def\Doteq {\Umathchar "3"0"002251 }
-\def\doteqdot {\Umathchar "3"0"002251 }
-\def\dotminus {\Umathchar "2"0"002238 }
-\def\dotplus {\Umathchar "2"0"002214 }
-\def\dots {\Umathchar "0"0"002026 }
-\def\dottedrightarrow {\Umathchar "3"0"002911 }
-\def\doublecap {\Umathchar "2"0"0022D2 }
-\def\doublecup {\Umathchar "2"0"0022D3 }
-\def\doubleprime {\Umathchar "0"0"002033 }
-\def\downarrow {\Umathchar "3"0"002193 }
-\def\Downarrow {\Umathchar "3"0"0021D3 }
-\def\downdasharrow {\Umathchar "3"0"0021E3 }
-\def\downdownarrows {\Umathchar "3"0"0021CA }
-\def\downharpoonleft {\Umathchar "3"0"0021C3 }
-\def\downharpoonright {\Umathchar "3"0"0021C2 }
-\def\downuparrows {\Umathchar "3"0"0021F5 }
-\def\downwhitearrow {\Umathchar "0"0"0021E9 }
-\def\downzigzagarrow {\Umathchar "3"0"0021AF }
-\def\ell {\Umathchar "0"0"002113 }
-\def\emptyset {\Umathchar "0"0"002205 }
-\def\Epsilon {\Umathchar "0"0"000395 }
-\def\epsilon {\Umathchar "0"0"0003F5 }
-\def\eq {\Umathchar "3"0"00003D }
-\def\eqcirc {\Umathchar "3"0"002256 }
-\def\eqgtr {\Umathchar "3"0"0022DD }
-\def\eqless {\Umathchar "3"0"0022DC }
-\def\eqsim {\Umathchar "3"0"002242 }
-\def\eqslantgtr {\Umathchar "3"0"002A96 }
-\def\eqslantless {\Umathchar "3"0"002A95 }
-\def\equalscolon {\Umathchar "3"0"002255 }
-\def\equiv {\Umathchar "3"0"002261 }
-\def\Eta {\Umathchar "0"0"000397 }
-\def\eta {\Umathchar "0"0"0003B7 }
-\def\eth {\Umathchar "0"0"0000F0 }
-\def\Eulerconst {\Umathchar "0"0"002107 }
-\def\exists {\Umathchar "0"0"002203 }
-\def\exponentiale {\Umathchar "0"0"002147 }
-\def\fallingdotseq {\Umathchar "3"0"002252 }
-\def\Finv {\Umathchar "0"0"002132 }
-\def\flat {\Umathchar "0"0"00266D }
-\def\forall {\Umathchar "0"0"002200 }
-\def\frown {\Umathchar "3"0"002322 }
-\def\Game {\Umathchar "0"0"002141 }
-\def\Gamma {\Umathchar "0"0"000393 }
-\def\gamma {\Umathchar "0"0"0003B3 }
-\def\ge {\Umathchar "3"0"002265 }
-\def\geq {\Umathchar "3"0"002265 }
-\def\geqq {\Umathchar "3"0"002267 }
-\def\geqslant {\Umathchar "3"0"002A7E }
-\def\gets {\Umathchar "3"0"002190 }
-\def\gg {\Umathchar "3"0"00226B }
-\def\ggg {\Umathchar "3"0"0022D9 }
-\def\gggtr {\Umathchar "3"0"0022D9 }
-\def\gimel {\Umathchar "0"0"002137 }
-\def\gnapprox {\Umathchar "3"0"002A8A }
-\def\gneqq {\Umathchar "3"0"002269 }
-\def\gnsim {\Umathchar "3"0"0022E7 }
-\def\grave {\Umathaccent"0"0"000060 }
-\def\gt {\Umathchar "3"0"00003E }
-\def\gtrapprox {\Umathchar "3"0"002A86 }
-\def\gtrdot {\Umathchar "2"0"0022D7 }
-\def\gtreqless {\Umathchar "3"0"0022DB }
-\def\gtreqqless {\Umathchar "3"0"002A8C }
-\def\gtrless {\Umathchar "3"0"002277 }
-\def\gtrsim {\Umathchar "3"0"002273 }
-\def\hat {\Umathaccent"0"0"0002C6 }
-\def\hbar {\Umathchar "0"0"00210F }
-\def\heartsuit {\Umathchar "0"0"002661 }
-\def\hookleftarrow {\Umathchar "3"0"0021A9 }
-\def\hookrightarrow {\Umathchar "3"0"0021AA }
-\def\hslash {\Umathchar "0"0"00210F }
-\def\iiint {\Umathchar "1"0"00222D }
-\def\iiintop {\Umathchar "0"0"00222D }
-\def\iint {\Umathchar "1"0"00222C }
-\def\iintop {\Umathchar "0"0"00222C }
-\def\Im {\Umathchar "0"0"002111 }
-\def\imaginaryi {\Umathchar "0"0"002148 }
-\def\imaginaryj {\Umathchar "0"0"002149 }
-\def\imath {\Umathchar "0"0"01D6A4 }
-\def\imply {\Umathchar "3"0"0021D2 }
-\def\in {\Umathchar "0"0"002208 }
-\def\infty {\Umathchar "0"0"00221E }
-\def\int {\Umathchar "1"0"00222B }
-\def\intclockwise {\Umathchar "1"0"002231 }
-\def\integers {\Umathchar "0"0"002124 }
-\def\intercal {\Umathchar "2"0"0022BA }
-\def\intop {\Umathchar "0"0"00222B }
-\def\Iota {\Umathchar "0"0"000399 }
-\def\iota {\Umathchar "0"0"0003B9 }
-\def\jmath {\Umathchar "0"0"01D6A5 }
-\def\Join {\Umathchar "3"0"0022C8 }
-\def\Kappa {\Umathchar "0"0"00039A }
-\def\kappa {\Umathchar "0"0"0003BA }
-\def\Lambda {\Umathchar "0"0"00039B }
-\def\lambda {\Umathchar "0"0"0003BB }
-\def\land {\Umathchar "2"0"002227 }
-\def\langle {\Udelimiter "4"0"0027E8 }
-\def\lbrace {\Udelimiter "4"0"00007B }
-\def\lbrack {\Udelimiter "4"0"00005B }
-\def\lceil {\Udelimiter "4"0"002308 }
-\def\lceiling {\Udelimiter "4"0"002308 }
-\def\ldotp {\Umathchar "6"0"00002E }
-\def\ldots {\Umathchar "0"0"002026 }
-\def\Ldsh {\Umathchar "3"0"0021B2 }
-\def\le {\Umathchar "3"0"002264 }
-\def\leadsto {\Umathchar "3"0"0021DD }
-\def\leftarrow {\Umathchar "3"0"002190 }
-\def\Leftarrow {\Umathchar "3"0"0021D0 }
-\def\leftarrowtail {\Umathchar "3"0"0021A2 }
-\def\leftarrowtriangle {\Umathchar "3"0"0021FD }
-\def\leftdasharrow {\Umathchar "3"0"0021E0 }
-\def\leftharpoondown {\Umathchar "3"0"0021BD }
-\def\leftharpoonup {\Umathchar "3"0"0021BC }
-\def\leftleftarrows {\Umathchar "3"0"0021C7 }
-\def\leftrightarrow {\Umathchar "3"0"002194 }
-\def\Leftrightarrow {\Umathchar "3"0"0021D4 }
-\def\leftrightarrows {\Umathchar "3"0"0021C6 }
-\def\leftrightarrowtriangle {\Umathchar "3"0"0021FF }
-\def\leftrightharpoons {\Umathchar "3"0"0021CB }
-\def\leftrightsquigarrow {\Umathchar "3"0"0021AD }
-\def\leftsquigarrow {\Umathchar "3"0"0021DC }
-\def\leftthreetimes {\Umathchar "2"0"0022CB }
-\def\leftwavearrow {\Umathchar "3"0"00219C }
-\def\leftwhitearrow {\Umathchar "0"0"0021E6 }
-\def\leq {\Umathchar "3"0"002264 }
-\def\leqq {\Umathchar "3"0"002266 }
-\def\leqslant {\Umathchar "3"0"002A7D }
-\def\lessapprox {\Umathchar "3"0"002A85 }
-\def\lessdot {\Umathchar "2"0"0022D6 }
-\def\lesseqgtr {\Umathchar "3"0"0022DA }
-\def\lesseqqgtr {\Umathchar "3"0"002A8B }
-\def\lessgtr {\Umathchar "3"0"002276 }
-\def\lesssim {\Umathchar "3"0"002272 }
-\def\lfloor {\Udelimiter "4"0"00230A }
-\def\lgroup {\Udelimiter "4"0"0027EE }
-\def\lhook {\Umathchar "3"0"0FE322 }
-\def\lhooknwarrow {\Umathchar "3"0"002923 }
-\def\lhooksearrow {\Umathchar "3"0"002925 }
-\def\linefeed {\Umathchar "0"0"0021B4 }
-\def\ll {\Umathchar "3"0"00226A }
-\def\llangle {\Udelimiter "4"0"0027EA }
-\def\llbracket {\Udelimiter "4"0"0027E6 }
-\def\llcorner {\Udelimiter "4"0"00231E }
-\def\Lleftarrow {\Umathchar "3"0"0021DA }
-\def\lll {\Umathchar "3"0"0022D8 }
-\def\llless {\Umathchar "3"0"0022D8 }
-\def\lmoustache {\Udelimiter "4"0"0023B0 }
-\def\lnapprox {\Umathchar "3"0"002A89 }
-\def\lneq {\Umathchar "3"0"002A87 }
-\def\lneqq {\Umathchar "3"0"002268 }
-\def\lnot {\Umathchar "0"0"0000AC }
-\def\lnsim {\Umathchar "3"0"0022E6 }
-\def\longleftarrow {\Umathchar "3"0"0027F5 }
-\def\Longleftarrow {\Umathchar "3"0"0027F8 }
-\def\longleftrightarrow {\Umathchar "3"0"0027F7 }
-\def\Longleftrightarrow {\Umathchar "3"0"0027FA }
-\def\longmapsfrom {\Umathchar "3"0"0027FB }
-\def\Longmapsfrom {\Umathchar "3"0"0027FD }
-\def\longmapsto {\Umathchar "3"0"0027FC }
-\def\Longmapsto {\Umathchar "3"0"0027FE }
-\def\longrightarrow {\Umathchar "3"0"0027F6 }
-\def\Longrightarrow {\Umathchar "3"0"0027F9 }
-\def\longrightsquigarrow {\Umathchar "3"0"0027FF }
-\def\looparrowleft {\Umathchar "3"0"0021AB }
-\def\looparrowright {\Umathchar "3"0"0021AC }
-\def\lor {\Umathchar "2"0"002228 }
-\def\lozenge {\Umathchar "0"0"0025CA }
-\def\lparent {\Udelimiter "4"0"000028 }
-\def\lrcorner {\Udelimiter "5"0"00231F }
-\def\Lsh {\Umathchar "3"0"0021B0 }
-\def\lt {\Umathchar "3"0"00003C }
-\def\ltimes {\Umathchar "2"0"0022C9 }
-\def\lvert {\Udelimiter "4"0"00007C }
-\def\lVert {\Udelimiter "4"0"002016 }
-\def\maltese {\Umathchar "0"0"002720 }
-\def\mapsdown {\Umathchar "3"0"0021A7 }
-\def\mapsfrom {\Umathchar "3"0"0021A4 }
-\def\Mapsfrom {\Umathchar "3"0"002906 }
-\def\mapsfromchar {\Umathchar "3"0"0FE324 }
-\def\mapsto {\Umathchar "3"0"0021A6 }
-\def\Mapsto {\Umathchar "3"0"002907 }
-\def\mapstochar {\Umathchar "3"0"0FE321 }
-\def\mapsup {\Umathchar "3"0"0021A5 }
-\def\mathring {\Umathaccent"0"0"0002DA }
-\def\measuredangle {\Umathchar "0"0"002221 }
-\def\measuredeq {\Umathchar "3"0"00225E }
-\def\mho {\Umathchar "0"0"002127 }
-\def\mid {\Umathchar "3"0"00007C }
-\def\minus {\Umathchar "2"0"002212 }
-\def\minuscolon {\Umathchar "2"0"002239 }
-\def\models {\Umathchar "3"0"0022A7 }
-\def\mp {\Umathchar "2"0"002213 }
-\def\Mu {\Umathchar "0"0"00039C }
-\def\mu {\Umathchar "0"0"0003BC }
-\def\multimap {\Umathchar "3"0"0022B8 }
-\def\napprox {\Umathchar "3"0"002249 }
-\def\napproxEq {\Umathchar "3"0"002246 }
-\def\nasymp {\Umathchar "3"0"00226D }
-\def\natural {\Umathchar "0"0"00266E }
-\def\naturalnumbers {\Umathchar "0"0"002115 }
-\def\ncong {\Umathchar "3"0"002246 }
-\def\ndivides {\Umathchar "2"0"002224 }
-\def\ne {\Umathchar "3"0"002260 }
-\def\nearrow {\Umathchar "3"0"002197 }
-\def\Nearrow {\Umathchar "3"0"0021D7 }
-\def\neg {\Umathchar "0"0"0000AC }
-\def\negativesign {\Umathchar "2"0"00207B }
-\def\neq {\Umathchar "3"0"002260 }
-\def\nequiv {\Umathchar "3"0"002262 }
-\def\neswarrow {\Umathchar "3"0"002922 }
-\def\nexists {\Umathchar "0"0"002204 }
-\def\ngeq {\Umathchar "3"0"002271 }
-\def\ngtr {\Umathchar "3"0"00226F }
-\def\ngtrless {\Umathchar "3"0"002279 }
-\def\ngtrsim {\Umathchar "3"0"002275 }
-\def\nHdownarrow {\Umathchar "3"0"0021DF }
-\def\nHuparrow {\Umathchar "3"0"0021DE }
-\def\ni {\Umathchar "3"0"00220B }
-\def\nin {\Umathchar "3"0"002209 }
-\def\nleftarrow {\Umathchar "3"0"00219A }
-\def\nLeftarrow {\Umathchar "3"0"0021CD }
-\def\nleftrightarrow {\Umathchar "3"0"0021AE }
-\def\nLeftrightarrow {\Umathchar "3"0"0021CE }
-\def\nleq {\Umathchar "3"0"002270 }
-\def\nless {\Umathchar "3"0"00226E }
-\def\nlessgtr {\Umathchar "3"0"002278 }
-\def\nlesssim {\Umathchar "3"0"002274 }
-\def\nmid {\Umathchar "3"0"002224 }
-\def\nni {\Umathchar "3"0"00220C }
-\def\not {\Umathchar "3"0"000338 }
-\def\notin {\Umathchar "3"0"002209 }
-\def\nowns {\Umathchar "3"0"00220C }
-\def\nparallel {\Umathchar "3"0"002226 }
-\def\nprec {\Umathchar "3"0"002280 }
-\def\npreccurlyeq {\Umathchar "3"0"0022E0 }
-\def\nrightarrow {\Umathchar "3"0"00219B }
-\def\nRightarrow {\Umathchar "3"0"0021CF }
-\def\nsim {\Umathchar "3"0"002241 }
-\def\nsimeq {\Umathchar "3"0"002244 }
-\def\nsqsubseteq {\Umathchar "3"0"0022E2 }
-\def\nsqsupseteq {\Umathchar "3"0"0022E3 }
-\def\nsubset {\Umathchar "3"0"002284 }
-\def\nsubseteq {\Umathchar "3"0"002288 }
-\def\nsucc {\Umathchar "3"0"002281 }
-\def\nsucccurlyeq {\Umathchar "3"0"0022E1 }
-\def\nsupset {\Umathchar "3"0"002285 }
-\def\nsupseteq {\Umathchar "3"0"002289 }
-\def\ntriangleleft {\Umathchar "3"0"0022EB }
-\def\ntrianglelefteq {\Umathchar "3"0"0022EC }
-\def\ntriangleright {\Umathchar "3"0"0022EA }
-\def\ntrianglerighteq {\Umathchar "3"0"0022ED }
-\def\Nu {\Umathchar "0"0"00039D }
-\def\nu {\Umathchar "0"0"0003BD }
-\def\nvdash {\Umathchar "3"0"0022AC }
-\def\nvDash {\Umathchar "3"0"0022AD }
-\def\nVdash {\Umathchar "3"0"0022AE }
-\def\nVDash {\Umathchar "3"0"0022AF }
-\def\nvleftarrow {\Umathchar "3"0"0021F7 }
-\def\nVleftarrow {\Umathchar "3"0"0021FA }
-\def\nvleftrightarrow {\Umathchar "3"0"0021F9 }
-\def\nVleftrightarrow {\Umathchar "3"0"0021FC }
-\def\nvrightarrow {\Umathchar "3"0"0021F8 }
-\def\nVrightarrow {\Umathchar "3"0"0021FB }
-\def\nwarrow {\Umathchar "3"0"002196 }
-\def\Nwarrow {\Umathchar "3"0"0021D6 }
-\def\nwsearrow {\Umathchar "3"0"002921 }
-\def\odot {\Umathchar "2"0"002299 }
-\def\ohm {\Umathchar "0"0"002126 }
-\def\oiiint {\Umathchar "1"0"002230 }
-\def\oiint {\Umathchar "1"0"00222F }
-\def\oint {\Umathchar "1"0"00222E }
-\def\ointclockwise {\Umathchar "1"0"002232 }
-\def\ointctrclockwise {\Umathchar "1"0"002233 }
-\def\Omega {\Umathchar "0"0"0003A9 }
-\def\omega {\Umathchar "0"0"0003C9 }
-\def\Omicron {\Umathchar "0"0"00039F }
-\def\omicron {\Umathchar "0"0"0003BF }
-\def\ominus {\Umathchar "2"0"002296 }
-\def\oplus {\Umathchar "2"0"002295 }
-\def\oslash {\Umathchar "2"0"002298 }
-\def\otimes {\Umathchar "2"0"002297 }
-\def\overbar {\Umathaccent"0"0"00203E }
-\def\overbrace {\Umathaccent"0"0"0023DE }
-\def\overbracket {\Umathaccent"0"0"0023B4 }
-\def\overparent {\Umathaccent"0"0"0023DC }
-\def\owns {\Umathchar "3"0"00220B }
-\def\P {\Umathchar "0"0"0000B6 }
-\def\parallel {\Umathchar "3"0"002225 }
-\def\partial {\Umathchar "0"0"002202 }
-\def\perp {\Umathchar "3"0"0022A5 }
-\def\Phi {\Umathchar "0"0"0003A6 }
-\def\phi {\Umathchar "0"0"0003D5 }
-\def\Pi {\Umathchar "0"0"0003A0 }
-\def\pi {\Umathchar "0"0"0003C0 }
-\def\pitchfork {\Umathchar "3"0"0022D4 }
-\def\Plankconst {\Umathchar "0"0"00210E }
-\def\pm {\Umathchar "2"0"0000B1 }
-\def\positivesign {\Umathchar "2"0"00207A }
-\def\prec {\Umathchar "3"0"00227A }
-\def\precapprox {\Umathchar "3"0"002AB7 }
-\def\preccurlyeq {\Umathchar "3"0"00227C }
-\def\preceq {\Umathchar "3"0"002AAF }
-\def\preceqq {\Umathchar "3"0"002AB3 }
-\def\precnapprox {\Umathchar "3"0"002AB9 }
-\def\precneq {\Umathchar "3"0"002AB1 }
-\def\precneqq {\Umathchar "3"0"002AB5 }
-\def\precnsim {\Umathchar "3"0"0022E8 }
-\def\precsim {\Umathchar "3"0"00227E }
-\def\prime {\Umathchar "0"0"002032 }
-\def\primes {\Umathchar "0"0"002119 }
-\def\prod {\Umathchar "1"0"00220F }
-\def\PropertyLine {\Umathchar "0"0"00214A }
-\def\propto {\Umathchar "3"0"00221D }
-\def\Psi {\Umathchar "0"0"0003A8 }
-\def\psi {\Umathchar "0"0"0003C8 }
-\def\questionedeq {\Umathchar "3"0"00225F }
-\def\rangle {\Udelimiter "5"0"0027E9 }
-\def\rationals {\Umathchar "0"0"00211A }
-\def\rbrace {\Udelimiter "5"0"00007D }
-\def\rbrack {\Udelimiter "5"0"00005D }
-\def\rceil {\Udelimiter "5"0"002309 }
-\def\rceiling {\Udelimiter "5"0"002309 }
-\def\Rdsh {\Umathchar "3"0"0021B3 }
-\def\Re {\Umathchar "0"0"00211C }
-\def\reals {\Umathchar "0"0"00211D }
-\def\Relbar {\Umathchar "3"0"00003D }
-\def\relbar {\Umathchar "3"0"002212 }
-\def\restriction {\Umathchar "3"0"0021BE }
-\def\rfloor {\Udelimiter "5"0"00230B }
-\def\rgroup {\Udelimiter "5"0"0027EF }
-\def\Rho {\Umathchar "0"0"0003A1 }
-\def\rho {\Umathchar "0"0"0003C1 }
-\def\rhook {\Umathchar "3"0"0FE323 }
-\def\rhooknearrow {\Umathchar "3"0"002924 }
-\def\rhookswarrow {\Umathchar "3"0"002926 }
-\def\rightangle {\Umathchar "0"0"00221F }
-\def\rightarrow {\Umathchar "3"0"002192 }
-\def\Rightarrow {\Umathchar "3"0"0021D2 }
-\def\rightarrowbar {\Umathchar "3"0"0021E5 }
-\def\rightarrowtail {\Umathchar "3"0"0021A3 }
-\def\rightarrowtriangle {\Umathchar "3"0"0021FE }
-\def\rightdasharrow {\Umathchar "3"0"0021E2 }
-\def\rightharpoondown {\Umathchar "3"0"0021C1 }
-\def\rightharpoonup {\Umathchar "3"0"0021C0 }
-\def\rightleftarrows {\Umathchar "3"0"0021C4 }
-\def\rightleftharpoons {\Umathchar "3"0"0021CC }
-\def\rightrightarrows {\Umathchar "3"0"0021C9 }
-\def\rightsquigarrow {\Umathchar "3"0"0021DD }
-\def\rightthreearrows {\Umathchar "3"0"0021F6 }
-\def\rightthreetimes {\Umathchar "2"0"0022CC }
-\def\rightwavearrow {\Umathchar "3"0"00219D }
-\def\rightwhitearrow {\Umathchar "0"0"0021E8 }
-\def\risingdotseq {\Umathchar "3"0"002253 }
-\def\rmoustache {\Udelimiter "5"0"0023B1 }
-\def\rneq {\Umathchar "3"0"002A88 }
-\def\rparent {\Udelimiter "5"0"000029 }
-\def\rrangle {\Udelimiter "5"0"0027EB }
-\def\rrbracket {\Udelimiter "5"0"0027E7 }
-\def\Rrightarrow {\Umathchar "3"0"0021DB }
-\def\Rsh {\Umathchar "3"0"0021B1 }
-\def\rtimes {\Umathchar "2"0"0022CA }
-\def\rvert {\Udelimiter "5"0"00007C }
-\def\rVert {\Udelimiter "5"0"002016 }
-\def\S {\Umathchar "0"0"0000A7 }
-\def\searrow {\Umathchar "3"0"002198 }
-\def\Searrow {\Umathchar "3"0"0021D8 }
-\def\setminus {\Umathchar "2"0"002216 }
-\def\sharp {\Umathchar "0"0"00266F }
-\def\Sigma {\Umathchar "0"0"0003A3 }
-\def\sigma {\Umathchar "0"0"0003C3 }
-\def\sim {\Umathchar "3"0"00223C }
-\def\simeq {\Umathchar "3"0"002243 }
-\def\slash {\Umathchar "0"0"002044 }
-\def\smile {\Umathchar "3"0"002323 }
-\def\solidus {\Udelimiter "5"0"002044 }
-\def\spadesuit {\Umathchar "0"0"002660 }
-\def\sphericalangle {\Umathchar "0"0"002222 }
-\def\sqcap {\Umathchar "2"0"002293 }
-\def\sqcup {\Umathchar "2"0"002294 }
-\def\sqsubset {\Umathchar "3"0"00228F }
-\def\sqsubseteq {\Umathchar "2"0"002291 }
-\def\sqsubsetneq {\Umathchar "3"0"0022E4 }
-\def\sqsupset {\Umathchar "3"0"002290 }
-\def\sqsupseteq {\Umathchar "2"0"002292 }
-\def\sqsupsetneq {\Umathchar "3"0"0022E5 }
-\def\square {\Umathchar "0"0"0025A1 }
-\def\squaredots {\Umathchar "3"0"002237 }
-\def\star {\Umathchar "2"0"0022C6 }
-\def\stareq {\Umathchar "3"0"00225B }
-\def\subset {\Umathchar "3"0"002282 }
-\def\Subset {\Umathchar "3"0"0022D0 }
-\def\subseteq {\Umathchar "3"0"002286 }
-\def\subseteqq {\Umathchar "3"0"002AC5 }
-\def\subsetneq {\Umathchar "3"0"00228A }
-\def\subsetneqq {\Umathchar "3"0"002ACB }
-\def\succ {\Umathchar "3"0"00227B }
-\def\succapprox {\Umathchar "3"0"002AB8 }
-\def\succcurlyeq {\Umathchar "3"0"00227D }
-\def\succeq {\Umathchar "3"0"002AB0 }
-\def\succeqq {\Umathchar "3"0"002AB4 }
-\def\succnapprox {\Umathchar "3"0"002ABA }
-\def\succneq {\Umathchar "3"0"002AB2 }
-\def\succneqq {\Umathchar "3"0"002AB6 }
-\def\succnsim {\Umathchar "3"0"0022E9 }
-\def\succsim {\Umathchar "3"0"00227F }
-\def\sum {\Umathchar "1"0"002211 }
-\def\supset {\Umathchar "3"0"002283 }
-\def\Supset {\Umathchar "3"0"0022D1 }
-\def\supseteq {\Umathchar "3"0"002287 }
-\def\supseteqq {\Umathchar "3"0"002AC6 }
-\def\supsetneq {\Umathchar "3"0"00228B }
-\def\supsetneqq {\Umathchar "3"0"002ACC }
-\def\surd {\Umathchar "2"0"00221A }
-\def\swarrow {\Umathchar "3"0"002199 }
-\def\Swarrow {\Umathchar "3"0"0021D9 }
-\def\Tau {\Umathchar "0"0"0003A4 }
-\def\tau {\Umathchar "0"0"0003C4 }
-\def\therefore {\Umathchar "3"0"002234 }
-\def\Theta {\Umathchar "0"0"000398 }
-\def\theta {\Umathchar "0"0"0003B8 }
-\def\tilde {\Umathaccent"0"0"0002DC }
-\def\times {\Umathchar "2"0"0000D7 }
-\def\to {\Umathchar "3"0"002192 }
-\def\top {\Umathchar "0"0"0022A4 }
-\def\triangle {\Umathchar "0"0"0025B3 }
-\def\triangledown {\Umathchar "2"0"0025BD }
-\def\triangleleft {\Umathchar "2"0"0025C1 }
-\def\triangleq {\Umathchar "3"0"00225C }
-\def\triangleright {\Umathchar "2"0"0025B7 }
-\def\tripleprime {\Umathchar "0"0"002034 }
-\def\turnediota {\Umathchar "0"0"002129 }
-\def\twoheaddownarrow {\Umathchar "3"0"0021A1 }
-\def\twoheadleftarrow {\Umathchar "3"0"00219E }
-\def\twoheadrightarrow {\Umathchar "3"0"0021A0 }
-\def\twoheadrightarrowtail {\Umathchar "3"0"002916 }
-\def\twoheaduparrow {\Umathchar "3"0"00219F }
-\def\udots {\Umathchar "0"0"0022F0 }
-\def\ulcorner {\Udelimiter "4"0"00231C }
-\def\underbar {\Umathaccent bottom "0"0"00203E }
-\def\underbrace {\Umathaccent bottom "0"0"0023DF }
-\def\underbracket {\Umathaccent bottom "0"0"0023B5 }
-\def\underparent {\Umathaccent bottom "0"0"0023DD }
-\def\upand {\Umathchar "2"0"00214B }
-\def\uparrow {\Umathchar "3"0"002191 }
-\def\Uparrow {\Umathchar "3"0"0021D1 }
-\def\updasharrow {\Umathchar "3"0"0021E1 }
-\def\updownarrow {\Umathchar "3"0"002195 }
-\def\Updownarrow {\Umathchar "3"0"0021D5 }
-\def\updownarrowbar {\Umathchar "0"0"0021A8 }
-\def\updownarrows {\Umathchar "3"0"0021C5 }
-\def\upharpoonleft {\Umathchar "3"0"0021BF }
-\def\upharpoonright {\Umathchar "3"0"0021BE }
-\def\uplus {\Umathchar "2"0"00228E }
-\def\Upsilon {\Umathchar "0"0"0003A5 }
-\def\upsilon {\Umathchar "0"0"0003C5 }
-\def\upuparrows {\Umathchar "3"0"0021C8 }
-\def\upwhitearrow {\Umathchar "0"0"0021E7 }
-\def\urcorner {\Udelimiter "5"0"00231D }
-\def\Uuparrow {\Umathchar "3"0"00290A }
-\def\varepsilon {\Umathchar "0"0"0003B5 }
-\def\varkappa {\Umathchar "0"0"0003F0 }
-\def\varkappa {\Umathchar "0"0"0003F0 }
-\def\varnothing {\Umathchar "0"0"002300 }
-\def\varphi {\Umathchar "0"0"0003C6 }
-\def\varpi {\Umathchar "0"0"0003D6 }
-\def\varrho {\Umathchar "0"0"01D71A }
-\def\varsigma {\Umathchar "0"0"0003C2 }
-\def\vartheta {\Umathchar "0"0"01D717 }
-\def\varTheta {\Umathchar "0"0"0003D1 }
-\def\vdash {\Umathchar "3"0"0022A2 }
-\def\vDash {\Umathchar "3"0"0022A8 }
-\def\Vdash {\Umathchar "3"0"0022A9 }
-\def\VDash {\Umathchar "3"0"0022AB }
-\def\vdots {\Umathchar "0"0"0022EE }
-\def\vec {\Umathaccent"0"0"0020D7 }
-\def\vee {\Umathchar "2"0"002228 }
-\def\veebar {\Umathchar "2"0"0022BB }
-\def\veeeq {\Umathchar "3"0"00225A }
-\def\vert {\Udelimiter "0"0"00007C }
-\def\Vert {\Udelimiter "0"0"002016 }
-\def\Vvdash {\Umathchar "3"0"0022AA }
-\def\wedge {\Umathchar "2"0"002227 }
-\def\wedgeeq {\Umathchar "3"0"002259 }
-\def\whitearrowupfrombar {\Umathchar "0"0"0021EB }
-\def\widehat {\Umathaccent"0"0"000302 }
-\def\widetilde {\Umathaccent"0"0"000303 }
-\def\wp {\Umathchar "0"0"002118 }
-\def\wr {\Umathchar "2"0"002240 }
-\def\Xi {\Umathchar "0"0"00039E }
-\def\xi {\Umathchar "0"0"0003BE }
-\def\yen {\Umathchar "0"0"0000A5 }
-\def\Zeta {\Umathchar "0"0"000396 }
-\def\zeta {\Umathchar "0"0"0003B6 }
+\protected\def\acute {\Umathaccent"0"0"0000B4 }
+\protected\def\acwopencirclearrow {\Umathchar "3"0"0021BA }
+\protected\def\aleph {\Umathchar "0"0"002135 }
+\protected\def\Alpha {\Umathchar "0"0"000391 }
+\protected\def\alpha {\Umathchar "0"0"0003B1 }
+\protected\def\amalg {\Umathchar "2"0"002A3F }
+\protected\def\angle {\Umathchar "0"0"002220 }
+\protected\def\Angstrom {\Umathchar "0"0"00212B }
+\protected\def\approx {\Umathchar "3"0"002248 }
+\protected\def\approxEq {\Umathchar "3"0"002245 }
+\protected\def\approxeq {\Umathchar "3"0"00224A }
+\protected\def\approxnEq {\Umathchar "3"0"002247 }
+\protected\def\arrowvert {\Umathchar "0"0"00007C }
+\protected\def\Arrowvert {\Umathchar "0"0"002016 }
+\protected\def\ast {\Umathchar "2"0"002217 }
+\protected\def\ast {\Umathchar "2"0"002217 }
+\protected\def\asymp {\Umathchar "3"0"00224D }
+\protected\def\backepsilon {\Umathchar "0"0"0003F6 }
+\protected\def\backprime {\Umathchar "0"0"012035 }
+\protected\def\backsim {\Umathchar "3"0"00223D }
+\protected\def\backslash {\Umathchar "0"0"00005C }
+\protected\def\bar {\Umathaccent"0"0"0000AF }
+\protected\def\barleftarrow {\Umathchar "3"0"0021E4 }
+\protected\def\barleftarrowrightarrowbar {\Umathchar "3"0"0021B9 }
+\protected\def\barovernorthwestarrow {\Umathchar "3"0"0021B8 }
+\protected\def\barwedge {\Umathchar "2"0"0022BC }
+\protected\def\because {\Umathchar "3"0"002235 }
+\protected\def\Beta {\Umathchar "0"0"000392 }
+\protected\def\beta {\Umathchar "0"0"0003B2 }
+\protected\def\beth {\Umathchar "0"0"002136 }
+\protected\def\between {\Umathchar "3"0"00226C }
+\protected\def\bigcap {\Umathchar "1"0"0022C2 }
+\protected\def\bigcirc {\Umathchar "2"0"0025EF }
+\protected\def\bigcircle {\Umathchar "2"0"0020DD }
+\protected\def\bigcircle {\Umathchar "2"0"0020DD }
+\protected\def\bigcup {\Umathchar "1"0"0022C3 }
+\protected\def\bigdiamond {\Umathchar "0"0"0020DF }
+\protected\def\bigodot {\Umathchar "1"0"002A00 }
+\protected\def\bigoplus {\Umathchar "1"0"002A01 }
+\protected\def\bigotimes {\Umathchar "1"0"002A02 }
+\protected\def\bigsqcap {\Umathchar "1"0"002A05 }
+\protected\def\bigsqcup {\Umathchar "1"0"002A06 }
+\protected\def\bigsquare {\Umathchar "0"0"0020DE }
+\protected\def\bigstar {\Umathchar "0"0"002605 }
+\protected\def\bigtimes {\Umathchar "1"0"002A09 }
+\protected\def\bigtriangledown {\Umathchar "2"0"0025BD }
+\protected\def\bigtriangleup {\Umathchar "2"0"0025B3 }
+\protected\def\bigudot {\Umathchar "1"0"002A03 }
+\protected\def\biguplus {\Umathchar "1"0"002A04 }
+\protected\def\bigvee {\Umathchar "1"0"0022C1 }
+\protected\def\bigwedge {\Umathchar "1"0"0022C0 }
+\protected\def\blacklozenge {\Umathchar "0"0"002666 }
+\protected\def\blacksquare {\Umathchar "0"0"0025A0 }
+\protected\def\blacktriangle {\Umathchar "2"0"0025B2 }
+\protected\def\blacktriangledown {\Umathchar "2"0"0025BC }
+\protected\def\blacktriangleleft {\Umathchar "2"0"0025C0 }
+\protected\def\blacktriangleright {\Umathchar "2"0"0025B6 }
+\protected\def\bot {\Umathchar "0"0"0022A5 }
+\protected\def\bowtie {\Umathchar "3"0"0022C8 }
+\protected\def\Box {\Umathchar "0"0"0025A1 }
+\protected\def\boxdot {\Umathchar "2"0"0022A1 }
+\protected\def\boxminus {\Umathchar "2"0"00229F }
+\protected\def\boxplus {\Umathchar "2"0"00229E }
+\protected\def\boxtimes {\Umathchar "2"0"0022A0 }
+%protected\def\braceld {\Umathchar "0"0"000000 }
+%protected\def\bracerd {\Umathchar "0"0"000000 }
+%protected\def\bracelu {\Umathchar "0"0"000000 }
+%protected\def\braceru {\Umathchar "0"0"000000 }
+\protected\def\breve {\Umathaccent"0"0"0002D8 }
+\protected\def\bullet {\Umathchar "2"0"002022 }
+\protected\def\bullet {\Umathchar "2"0"002022 }
+\protected\def\Bumpeq {\Umathchar "3"0"00224E }
+\protected\def\cap {\Umathchar "2"0"002229 }
+\protected\def\Cap {\Umathchar "2"0"0022D2 }
+\protected\def\carriagereturn {\Umathchar "0"0"0021B5 }
+\protected\def\cdot {\Umathchar "2"0"0022C5 }
+\protected\def\cdotp {\Umathchar "6"0"0022C5 }
+\protected\def\cdots {\Umathchar "0"0"0022EF }
+\protected\def\centerdot {\Umathchar "2"0"0000B7 }
+\protected\def\check {\Umathaccent"0"0"0002C7 }
+\protected\def\checkmark {\Umathchar "0"0"002713 }
+\protected\def\Chi {\Umathchar "0"0"0003A7 }
+\protected\def\chi {\Umathchar "0"0"0003C7 }
+\protected\def\circ {\Umathchar "2"0"002218 }
+\protected\def\circeq {\Umathchar "3"0"002257 }
+\protected\def\circlearrowleft {\Umathchar "3"0"0021BB }
+\protected\def\circlearrowright {\Umathchar "3"0"0021BA }
+\protected\def\circledast {\Umathchar "2"0"00229B }
+\protected\def\circledcirc {\Umathchar "2"0"00229A }
+\protected\def\circleddash {\Umathchar "2"0"00229D }
+\protected\def\circledequals {\Umathchar "2"0"00229C }
+\protected\def\circledR {\Umathchar "0"0"0024C7 }
+\protected\def\circledS {\Umathchar "0"0"0024C8 }
+\protected\def\circleonrightarrow {\Umathchar "3"0"0021F4 }
+\protected\def\clubsuit {\Umathchar "0"0"002663 }
+\protected\def\colon {\Umathchar "6"0"002236 }
+\protected\def\colonequals {\Umathchar "3"0"002254 }
+\protected\def\complement {\Umathchar "0"0"002201 }
+\protected\def\complexes {\Umathchar "0"0"002102 }
+\protected\def\cong {\Umathchar "3"0"002245 }
+\protected\def\coprod {\Umathchar "1"0"002210 }
+\protected\def\cup {\Umathchar "2"0"00222A }
+\protected\def\Cup {\Umathchar "2"0"0022D3 }
+\protected\def\curlyeqprec {\Umathchar "3"0"0022DE }
+\protected\def\curlyeqsucc {\Umathchar "3"0"0022DF }
+\protected\def\curlyvee {\Umathchar "2"0"0022CE }
+\protected\def\curlywedge {\Umathchar "2"0"0022CF }
+\protected\def\curvearrowleft {\Umathchar "3"0"0021B6 }
+\protected\def\curvearrowright {\Umathchar "3"0"0021B7 }
+\protected\def\cwopencirclearrow {\Umathchar "3"0"0021BB }
+\protected\def\dag {\Umathchar "0"0"002020 }
+\protected\def\dagger {\Umathchar "2"0"002020 }
+\protected\def\daleth {\Umathchar "0"0"002138 }
+\protected\def\dasharrow {\Umathchar "3"0"0021E2 }
+\protected\def\dashedleftarrow {\Umathchar "3"0"00290C }
+\protected\def\dashedrightarrow {\Umathchar "3"0"00290D }
+\protected\def\dashv {\Umathchar "3"0"0022A3 }
+\protected\def\ddag {\Umathchar "0"0"002021 }
+\protected\def\ddagger {\Umathchar "2"0"002021 }
+\protected\def\dddot {\Umathaccent"0"0"0020DB }
+\protected\def\ddot {\Umathaccent"0"0"0000A8 }
+\protected\def\ddots {\Umathchar "0"0"0022F1 }
+\protected\def\Ddownarrow {\Umathchar "3"0"00290B }
+\protected\def\definedeq {\Umathchar "3"0"00225D }
+\protected\def\Delta {\Umathchar "0"0"000394 }
+\protected\def\delta {\Umathchar "0"0"0003B4 }
+\protected\def\diamond {\Umathchar "2"0"0022C4 }
+\protected\def\diamondsuit {\Umathchar "0"0"002662 }
+\protected\def\differentialD {\Umathchar "0"0"002145 }
+\protected\def\differentiald {\Umathchar "0"0"002146 }
+\protected\def\digamma {\Umathchar "0"0"0003DC }
+\protected\def\div {\Umathchar "2"0"0000F7 }
+\protected\def\divideontimes {\Umathchar "2"0"0022C7 }
+\protected\def\divides {\Umathchar "2"0"002223 }
+\protected\def\dot {\Umathaccent"0"0"0002D9 }
+\protected\def\doteq {\Umathchar "3"0"002250 }
+\protected\def\Doteq {\Umathchar "3"0"002251 }
+\protected\def\doteqdot {\Umathchar "3"0"002251 }
+\protected\def\dotminus {\Umathchar "2"0"002238 }
+\protected\def\dotplus {\Umathchar "2"0"002214 }
+\protected\def\dots {\Umathchar "0"0"002026 }
+\protected\def\dottedrightarrow {\Umathchar "3"0"002911 }
+\protected\def\doublecap {\Umathchar "2"0"0022D2 }
+\protected\def\doublecup {\Umathchar "2"0"0022D3 }
+\protected\def\doubleprime {\Umathchar "0"0"002033 }
+\protected\def\downarrow {\Umathchar "3"0"002193 }
+\protected\def\Downarrow {\Umathchar "3"0"0021D3 }
+\protected\def\downdasharrow {\Umathchar "3"0"0021E3 }
+\protected\def\downdownarrows {\Umathchar "3"0"0021CA }
+\protected\def\downharpoonleft {\Umathchar "3"0"0021C3 }
+\protected\def\downharpoonright {\Umathchar "3"0"0021C2 }
+\protected\def\downuparrows {\Umathchar "3"0"0021F5 }
+\protected\def\downwhitearrow {\Umathchar "0"0"0021E9 }
+\protected\def\downzigzagarrow {\Umathchar "3"0"0021AF }
+\protected\def\ell {\Umathchar "0"0"002113 }
+\protected\def\emptyset {\Umathchar "0"0"002205 }
+\protected\def\Epsilon {\Umathchar "0"0"000395 }
+\protected\def\epsilon {\Umathchar "0"0"0003F5 }
+\protected\def\eq {\Umathchar "3"0"00003D }
+\protected\def\eqcirc {\Umathchar "3"0"002256 }
+\protected\def\eqgtr {\Umathchar "3"0"0022DD }
+\protected\def\eqless {\Umathchar "3"0"0022DC }
+\protected\def\eqsim {\Umathchar "3"0"002242 }
+\protected\def\eqslantgtr {\Umathchar "3"0"002A96 }
+\protected\def\eqslantless {\Umathchar "3"0"002A95 }
+\protected\def\equalscolon {\Umathchar "3"0"002255 }
+\protected\def\equiv {\Umathchar "3"0"002261 }
+\protected\def\Eta {\Umathchar "0"0"000397 }
+\protected\def\eta {\Umathchar "0"0"0003B7 }
+\protected\def\eth {\Umathchar "0"0"0000F0 }
+\protected\def\Eulerconst {\Umathchar "0"0"002107 }
+\protected\def\exists {\Umathchar "0"0"002203 }
+\protected\def\exponentiale {\Umathchar "0"0"002147 }
+\protected\def\fallingdotseq {\Umathchar "3"0"002252 }
+\protected\def\Finv {\Umathchar "0"0"002132 }
+\protected\def\flat {\Umathchar "0"0"00266D }
+\protected\def\forall {\Umathchar "0"0"002200 }
+\protected\def\frown {\Umathchar "3"0"002322 }
+\protected\def\Game {\Umathchar "0"0"002141 }
+\protected\def\Gamma {\Umathchar "0"0"000393 }
+\protected\def\gamma {\Umathchar "0"0"0003B3 }
+\protected\def\ge {\Umathchar "3"0"002265 }
+\protected\def\geq {\Umathchar "3"0"002265 }
+\protected\def\geqq {\Umathchar "3"0"002267 }
+\protected\def\geqslant {\Umathchar "3"0"002A7E }
+\protected\def\gets {\Umathchar "3"0"002190 }
+\protected\def\gg {\Umathchar "3"0"00226B }
+\protected\def\ggg {\Umathchar "3"0"0022D9 }
+\protected\def\gggtr {\Umathchar "3"0"0022D9 }
+\protected\def\gimel {\Umathchar "0"0"002137 }
+\protected\def\gnapprox {\Umathchar "3"0"002A8A }
+\protected\def\gneqq {\Umathchar "3"0"002269 }
+\protected\def\gnsim {\Umathchar "3"0"0022E7 }
+\protected\def\grave {\Umathaccent"0"0"000060 }
+\protected\def\gt {\Umathchar "3"0"00003E }
+\protected\def\gtrapprox {\Umathchar "3"0"002A86 }
+\protected\def\gtrdot {\Umathchar "2"0"0022D7 }
+\protected\def\gtreqless {\Umathchar "3"0"0022DB }
+\protected\def\gtreqqless {\Umathchar "3"0"002A8C }
+\protected\def\gtrless {\Umathchar "3"0"002277 }
+\protected\def\gtrsim {\Umathchar "3"0"002273 }
+\protected\def\hat {\Umathaccent"0"0"0002C6 }
+\protected\def\hbar {\Umathchar "0"0"00210F }
+\protected\def\heartsuit {\Umathchar "0"0"002661 }
+\protected\def\hookleftarrow {\Umathchar "3"0"0021A9 }
+\protected\def\hookrightarrow {\Umathchar "3"0"0021AA }
+\protected\def\hslash {\Umathchar "0"0"00210F }
+\protected\def\iiint {\Umathchar "1"0"00222D }
+\protected\def\iiintop {\Umathchar "0"0"00222D }
+\protected\def\iint {\Umathchar "1"0"00222C }
+\protected\def\iintop {\Umathchar "0"0"00222C }
+\protected\def\Im {\Umathchar "0"0"002111 }
+\protected\def\imaginaryi {\Umathchar "0"0"002148 }
+\protected\def\imaginaryj {\Umathchar "0"0"002149 }
+\protected\def\imath {\Umathchar "0"0"01D6A4 }
+\protected\def\imply {\Umathchar "3"0"0021D2 }
+\protected\def\in {\Umathchar "0"0"002208 }
+\protected\def\infty {\Umathchar "0"0"00221E }
+\protected\def\int {\Umathchar "1"0"00222B }
+\protected\def\intclockwise {\Umathchar "1"0"002231 }
+\protected\def\integers {\Umathchar "0"0"002124 }
+\protected\def\intercal {\Umathchar "2"0"0022BA }
+\protected\def\intop {\Umathchar "0"0"00222B }
+\protected\def\Iota {\Umathchar "0"0"000399 }
+\protected\def\iota {\Umathchar "0"0"0003B9 }
+\protected\def\jmath {\Umathchar "0"0"01D6A5 }
+\protected\def\Join {\Umathchar "3"0"0022C8 }
+\protected\def\Kappa {\Umathchar "0"0"00039A }
+\protected\def\kappa {\Umathchar "0"0"0003BA }
+\protected\def\Lambda {\Umathchar "0"0"00039B }
+\protected\def\lambda {\Umathchar "0"0"0003BB }
+\protected\def\land {\Umathchar "2"0"002227 }
+\protected\def\langle {\Udelimiter "4"0"0027E8 }
+\protected\def\lbrace {\Udelimiter "4"0"00007B }
+\protected\def\lbrack {\Udelimiter "4"0"00005B }
+\protected\def\lceil {\Udelimiter "4"0"002308 }
+\protected\def\lceiling {\Udelimiter "4"0"002308 }
+\protected\def\ldotp {\Umathchar "6"0"00002E }
+\protected\def\ldots {\Umathchar "0"0"002026 }
+\protected\def\Ldsh {\Umathchar "3"0"0021B2 }
+\protected\def\le {\Umathchar "3"0"002264 }
+\protected\def\leadsto {\Umathchar "3"0"0021DD }
+\protected\def\leftarrow {\Umathchar "3"0"002190 }
+\protected\def\Leftarrow {\Umathchar "3"0"0021D0 }
+\protected\def\leftarrowtail {\Umathchar "3"0"0021A2 }
+\protected\def\leftarrowtriangle {\Umathchar "3"0"0021FD }
+\protected\def\leftdasharrow {\Umathchar "3"0"0021E0 }
+\protected\def\leftharpoondown {\Umathchar "3"0"0021BD }
+\protected\def\leftharpoonup {\Umathchar "3"0"0021BC }
+\protected\def\leftleftarrows {\Umathchar "3"0"0021C7 }
+\protected\def\leftrightarrow {\Umathchar "3"0"002194 }
+\protected\def\Leftrightarrow {\Umathchar "3"0"0021D4 }
+\protected\def\leftrightarrows {\Umathchar "3"0"0021C6 }
+\protected\def\leftrightarrowtriangle {\Umathchar "3"0"0021FF }
+\protected\def\leftrightharpoons {\Umathchar "3"0"0021CB }
+\protected\def\leftrightsquigarrow {\Umathchar "3"0"0021AD }
+\protected\def\leftsquigarrow {\Umathchar "3"0"0021DC }
+\protected\def\leftthreetimes {\Umathchar "2"0"0022CB }
+\protected\def\leftwavearrow {\Umathchar "3"0"00219C }
+\protected\def\leftwhitearrow {\Umathchar "0"0"0021E6 }
+\protected\def\leq {\Umathchar "3"0"002264 }
+\protected\def\leqq {\Umathchar "3"0"002266 }
+\protected\def\leqslant {\Umathchar "3"0"002A7D }
+\protected\def\lessapprox {\Umathchar "3"0"002A85 }
+\protected\def\lessdot {\Umathchar "2"0"0022D6 }
+\protected\def\lesseqgtr {\Umathchar "3"0"0022DA }
+\protected\def\lesseqqgtr {\Umathchar "3"0"002A8B }
+\protected\def\lessgtr {\Umathchar "3"0"002276 }
+\protected\def\lesssim {\Umathchar "3"0"002272 }
+\protected\def\lfloor {\Udelimiter "4"0"00230A }
+\protected\def\lgroup {\Udelimiter "4"0"0027EE }
+\protected\def\lhook {\Umathchar "3"0"0FE322 }
+\protected\def\lhooknwarrow {\Umathchar "3"0"002923 }
+\protected\def\lhooksearrow {\Umathchar "3"0"002925 }
+\protected\def\linefeed {\Umathchar "0"0"0021B4 }
+\protected\def\ll {\Umathchar "3"0"00226A }
+\protected\def\llangle {\Udelimiter "4"0"0027EA }
+\protected\def\llbracket {\Udelimiter "4"0"0027E6 }
+\protected\def\llcorner {\Udelimiter "4"0"00231E }
+\protected\def\Lleftarrow {\Umathchar "3"0"0021DA }
+\protected\def\lll {\Umathchar "3"0"0022D8 }
+\protected\def\llless {\Umathchar "3"0"0022D8 }
+\protected\def\lmoustache {\Udelimiter "4"0"0023B0 }
+\protected\def\lnapprox {\Umathchar "3"0"002A89 }
+\protected\def\lneq {\Umathchar "3"0"002A87 }
+\protected\def\lneqq {\Umathchar "3"0"002268 }
+\protected\def\lnot {\Umathchar "0"0"0000AC }
+\protected\def\lnsim {\Umathchar "3"0"0022E6 }
+\protected\def\longleftarrow {\Umathchar "3"0"0027F5 }
+\protected\def\Longleftarrow {\Umathchar "3"0"0027F8 }
+\protected\def\longleftrightarrow {\Umathchar "3"0"0027F7 }
+\protected\def\Longleftrightarrow {\Umathchar "3"0"0027FA }
+\protected\def\longmapsfrom {\Umathchar "3"0"0027FB }
+\protected\def\Longmapsfrom {\Umathchar "3"0"0027FD }
+\protected\def\longmapsto {\Umathchar "3"0"0027FC }
+\protected\def\Longmapsto {\Umathchar "3"0"0027FE }
+\protected\def\longrightarrow {\Umathchar "3"0"0027F6 }
+\protected\def\Longrightarrow {\Umathchar "3"0"0027F9 }
+\protected\def\longrightsquigarrow {\Umathchar "3"0"0027FF }
+\protected\def\looparrowleft {\Umathchar "3"0"0021AB }
+\protected\def\looparrowright {\Umathchar "3"0"0021AC }
+\protected\def\lor {\Umathchar "2"0"002228 }
+\protected\def\lozenge {\Umathchar "0"0"0025CA }
+\protected\def\lparent {\Udelimiter "4"0"000028 }
+\protected\def\lrcorner {\Udelimiter "5"0"00231F }
+\protected\def\Lsh {\Umathchar "3"0"0021B0 }
+\protected\def\lt {\Umathchar "3"0"00003C }
+\protected\def\ltimes {\Umathchar "2"0"0022C9 }
+\protected\def\lvert {\Udelimiter "4"0"00007C }
+\protected\def\lVert {\Udelimiter "4"0"002016 }
+\protected\def\maltese {\Umathchar "0"0"002720 }
+\protected\def\mapsdown {\Umathchar "3"0"0021A7 }
+\protected\def\mapsfrom {\Umathchar "3"0"0021A4 }
+\protected\def\Mapsfrom {\Umathchar "3"0"002906 }
+\protected\def\mapsfromchar {\Umathchar "3"0"0FE324 }
+\protected\def\mapsto {\Umathchar "3"0"0021A6 }
+\protected\def\Mapsto {\Umathchar "3"0"002907 }
+\protected\def\mapstochar {\Umathchar "3"0"0FE321 }
+\protected\def\mapsup {\Umathchar "3"0"0021A5 }
+\protected\def\mathring {\Umathaccent"0"0"0002DA }
+\protected\def\measuredangle {\Umathchar "0"0"002221 }
+\protected\def\measuredeq {\Umathchar "3"0"00225E }
+\protected\def\mho {\Umathchar "0"0"002127 }
+\protected\def\mid {\Umathchar "3"0"00007C }
+\protected\def\minus {\Umathchar "2"0"002212 }
+\protected\def\minuscolon {\Umathchar "2"0"002239 }
+\protected\def\models {\Umathchar "3"0"0022A7 }
+\protected\def\mp {\Umathchar "2"0"002213 }
+\protected\def\Mu {\Umathchar "0"0"00039C }
+\protected\def\mu {\Umathchar "0"0"0003BC }
+\protected\def\multimap {\Umathchar "3"0"0022B8 }
+\protected\def\napprox {\Umathchar "3"0"002249 }
+\protected\def\napproxEq {\Umathchar "3"0"002246 }
+\protected\def\nasymp {\Umathchar "3"0"00226D }
+\protected\def\natural {\Umathchar "0"0"00266E }
+\protected\def\naturalnumbers {\Umathchar "0"0"002115 }
+\protected\def\ncong {\Umathchar "3"0"002246 }
+\protected\def\ndivides {\Umathchar "2"0"002224 }
+\protected\def\ne {\Umathchar "3"0"002260 }
+\protected\def\nearrow {\Umathchar "3"0"002197 }
+\protected\def\Nearrow {\Umathchar "3"0"0021D7 }
+\protected\def\neg {\Umathchar "0"0"0000AC }
+\protected\def\negativesign {\Umathchar "2"0"00207B }
+\protected\def\neq {\Umathchar "3"0"002260 }
+\protected\def\nequiv {\Umathchar "3"0"002262 }
+\protected\def\neswarrow {\Umathchar "3"0"002922 }
+\protected\def\nexists {\Umathchar "0"0"002204 }
+\protected\def\ngeq {\Umathchar "3"0"002271 }
+\protected\def\ngtr {\Umathchar "3"0"00226F }
+\protected\def\ngtrless {\Umathchar "3"0"002279 }
+\protected\def\ngtrsim {\Umathchar "3"0"002275 }
+\protected\def\nHdownarrow {\Umathchar "3"0"0021DF }
+\protected\def\nHuparrow {\Umathchar "3"0"0021DE }
+\protected\def\ni {\Umathchar "3"0"00220B }
+\protected\def\nin {\Umathchar "3"0"002209 }
+\protected\def\nleftarrow {\Umathchar "3"0"00219A }
+\protected\def\nLeftarrow {\Umathchar "3"0"0021CD }
+\protected\def\nleftrightarrow {\Umathchar "3"0"0021AE }
+\protected\def\nLeftrightarrow {\Umathchar "3"0"0021CE }
+\protected\def\nleq {\Umathchar "3"0"002270 }
+\protected\def\nless {\Umathchar "3"0"00226E }
+\protected\def\nlessgtr {\Umathchar "3"0"002278 }
+\protected\def\nlesssim {\Umathchar "3"0"002274 }
+\protected\def\nmid {\Umathchar "3"0"002224 }
+\protected\def\nni {\Umathchar "3"0"00220C }
+\protected\def\not {\Umathchar "3"0"000338 }
+\protected\def\notin {\Umathchar "3"0"002209 }
+\protected\def\nowns {\Umathchar "3"0"00220C }
+\protected\def\nparallel {\Umathchar "3"0"002226 }
+\protected\def\nprec {\Umathchar "3"0"002280 }
+\protected\def\npreccurlyeq {\Umathchar "3"0"0022E0 }
+\protected\def\nrightarrow {\Umathchar "3"0"00219B }
+\protected\def\nRightarrow {\Umathchar "3"0"0021CF }
+\protected\def\nsim {\Umathchar "3"0"002241 }
+\protected\def\nsimeq {\Umathchar "3"0"002244 }
+\protected\def\nsqsubseteq {\Umathchar "3"0"0022E2 }
+\protected\def\nsqsupseteq {\Umathchar "3"0"0022E3 }
+\protected\def\nsubset {\Umathchar "3"0"002284 }
+\protected\def\nsubseteq {\Umathchar "3"0"002288 }
+\protected\def\nsucc {\Umathchar "3"0"002281 }
+\protected\def\nsucccurlyeq {\Umathchar "3"0"0022E1 }
+\protected\def\nsupset {\Umathchar "3"0"002285 }
+\protected\def\nsupseteq {\Umathchar "3"0"002289 }
+\protected\def\ntriangleleft {\Umathchar "3"0"0022EB }
+\protected\def\ntrianglelefteq {\Umathchar "3"0"0022EC }
+\protected\def\ntriangleright {\Umathchar "3"0"0022EA }
+\protected\def\ntrianglerighteq {\Umathchar "3"0"0022ED }
+\protected\def\Nu {\Umathchar "0"0"00039D }
+\protected\def\nu {\Umathchar "0"0"0003BD }
+\protected\def\nvdash {\Umathchar "3"0"0022AC }
+\protected\def\nvDash {\Umathchar "3"0"0022AD }
+\protected\def\nVdash {\Umathchar "3"0"0022AE }
+\protected\def\nVDash {\Umathchar "3"0"0022AF }
+\protected\def\nvleftarrow {\Umathchar "3"0"0021F7 }
+\protected\def\nVleftarrow {\Umathchar "3"0"0021FA }
+\protected\def\nvleftrightarrow {\Umathchar "3"0"0021F9 }
+\protected\def\nVleftrightarrow {\Umathchar "3"0"0021FC }
+\protected\def\nvrightarrow {\Umathchar "3"0"0021F8 }
+\protected\def\nVrightarrow {\Umathchar "3"0"0021FB }
+\protected\def\nwarrow {\Umathchar "3"0"002196 }
+\protected\def\Nwarrow {\Umathchar "3"0"0021D6 }
+\protected\def\nwsearrow {\Umathchar "3"0"002921 }
+\protected\def\odot {\Umathchar "2"0"002299 }
+\protected\def\ohm {\Umathchar "0"0"002126 }
+\protected\def\oiiint {\Umathchar "1"0"002230 }
+\protected\def\oiint {\Umathchar "1"0"00222F }
+\protected\def\oint {\Umathchar "1"0"00222E }
+\protected\def\ointclockwise {\Umathchar "1"0"002232 }
+\protected\def\ointctrclockwise {\Umathchar "1"0"002233 }
+\protected\def\Omega {\Umathchar "0"0"0003A9 }
+\protected\def\omega {\Umathchar "0"0"0003C9 }
+\protected\def\Omicron {\Umathchar "0"0"00039F }
+\protected\def\omicron {\Umathchar "0"0"0003BF }
+\protected\def\ominus {\Umathchar "2"0"002296 }
+\protected\def\oplus {\Umathchar "2"0"002295 }
+\protected\def\oslash {\Umathchar "2"0"002298 }
+\protected\def\otimes {\Umathchar "2"0"002297 }
+\protected\def\overbar {\Umathaccent"0"0"00203E }
+\protected\def\overbrace {\Umathaccent"0"0"0023DE }
+\protected\def\overbracket {\Umathaccent"0"0"0023B4 }
+\protected\def\overparent {\Umathaccent"0"0"0023DC }
+\protected\def\owns {\Umathchar "3"0"00220B }
+\protected\def\P {\Umathchar "0"0"0000B6 }
+\protected\def\parallel {\Umathchar "3"0"002225 }
+\protected\def\partial {\Umathchar "0"0"002202 }
+\protected\def\perp {\Umathchar "3"0"0022A5 }
+\protected\def\Phi {\Umathchar "0"0"0003A6 }
+\protected\def\phi {\Umathchar "0"0"0003D5 }
+\protected\def\Pi {\Umathchar "0"0"0003A0 }
+\protected\def\pi {\Umathchar "0"0"0003C0 }
+\protected\def\pitchfork {\Umathchar "3"0"0022D4 }
+\protected\def\Plankconst {\Umathchar "0"0"00210E }
+\protected\def\pm {\Umathchar "2"0"0000B1 }
+\protected\def\positivesign {\Umathchar "2"0"00207A }
+\protected\def\prec {\Umathchar "3"0"00227A }
+\protected\def\precapprox {\Umathchar "3"0"002AB7 }
+\protected\def\preccurlyeq {\Umathchar "3"0"00227C }
+\protected\def\preceq {\Umathchar "3"0"002AAF }
+\protected\def\preceqq {\Umathchar "3"0"002AB3 }
+\protected\def\precnapprox {\Umathchar "3"0"002AB9 }
+\protected\def\precneq {\Umathchar "3"0"002AB1 }
+\protected\def\precneqq {\Umathchar "3"0"002AB5 }
+\protected\def\precnsim {\Umathchar "3"0"0022E8 }
+\protected\def\precsim {\Umathchar "3"0"00227E }
+\protected\def\prime {\Umathchar "0"0"002032 }
+\protected\def\primes {\Umathchar "0"0"002119 }
+\protected\def\prod {\Umathchar "1"0"00220F }
+\protected\def\PropertyLine {\Umathchar "0"0"00214A }
+\protected\def\propto {\Umathchar "3"0"00221D }
+\protected\def\Psi {\Umathchar "0"0"0003A8 }
+\protected\def\psi {\Umathchar "0"0"0003C8 }
+\protected\def\questionedeq {\Umathchar "3"0"00225F }
+\protected\def\rangle {\Udelimiter "5"0"0027E9 }
+\protected\def\rationals {\Umathchar "0"0"00211A }
+\protected\def\rbrace {\Udelimiter "5"0"00007D }
+\protected\def\rbrack {\Udelimiter "5"0"00005D }
+\protected\def\rceil {\Udelimiter "5"0"002309 }
+\protected\def\rceiling {\Udelimiter "5"0"002309 }
+\protected\def\Rdsh {\Umathchar "3"0"0021B3 }
+\protected\def\Re {\Umathchar "0"0"00211C }
+\protected\def\reals {\Umathchar "0"0"00211D }
+\protected\def\Relbar {\Umathchar "3"0"00003D }
+\protected\def\relbar {\Umathchar "3"0"002212 }
+\protected\def\restriction {\Umathchar "3"0"0021BE }
+\protected\def\rfloor {\Udelimiter "5"0"00230B }
+\protected\def\rgroup {\Udelimiter "5"0"0027EF }
+\protected\def\Rho {\Umathchar "0"0"0003A1 }
+\protected\def\rho {\Umathchar "0"0"0003C1 }
+\protected\def\rhook {\Umathchar "3"0"0FE323 }
+\protected\def\rhooknearrow {\Umathchar "3"0"002924 }
+\protected\def\rhookswarrow {\Umathchar "3"0"002926 }
+\protected\def\rightangle {\Umathchar "0"0"00221F }
+\protected\def\rightarrow {\Umathchar "3"0"002192 }
+\protected\def\Rightarrow {\Umathchar "3"0"0021D2 }
+\protected\def\rightarrowbar {\Umathchar "3"0"0021E5 }
+\protected\def\rightarrowtail {\Umathchar "3"0"0021A3 }
+\protected\def\rightarrowtriangle {\Umathchar "3"0"0021FE }
+\protected\def\rightdasharrow {\Umathchar "3"0"0021E2 }
+\protected\def\rightharpoondown {\Umathchar "3"0"0021C1 }
+\protected\def\rightharpoonup {\Umathchar "3"0"0021C0 }
+\protected\def\rightleftarrows {\Umathchar "3"0"0021C4 }
+\protected\def\rightleftharpoons {\Umathchar "3"0"0021CC }
+\protected\def\rightrightarrows {\Umathchar "3"0"0021C9 }
+\protected\def\rightsquigarrow {\Umathchar "3"0"0021DD }
+\protected\def\rightthreearrows {\Umathchar "3"0"0021F6 }
+\protected\def\rightthreetimes {\Umathchar "2"0"0022CC }
+\protected\def\rightwavearrow {\Umathchar "3"0"00219D }
+\protected\def\rightwhitearrow {\Umathchar "0"0"0021E8 }
+\protected\def\risingdotseq {\Umathchar "3"0"002253 }
+\protected\def\rmoustache {\Udelimiter "5"0"0023B1 }
+\protected\def\rneq {\Umathchar "3"0"002A88 }
+\protected\def\rparent {\Udelimiter "5"0"000029 }
+\protected\def\rrangle {\Udelimiter "5"0"0027EB }
+\protected\def\rrbracket {\Udelimiter "5"0"0027E7 }
+\protected\def\Rrightarrow {\Umathchar "3"0"0021DB }
+\protected\def\Rsh {\Umathchar "3"0"0021B1 }
+\protected\def\rtimes {\Umathchar "2"0"0022CA }
+\protected\def\rvert {\Udelimiter "5"0"00007C }
+\protected\def\rVert {\Udelimiter "5"0"002016 }
+\protected\def\S {\Umathchar "0"0"0000A7 }
+\protected\def\searrow {\Umathchar "3"0"002198 }
+\protected\def\Searrow {\Umathchar "3"0"0021D8 }
+\protected\def\setminus {\Umathchar "2"0"002216 }
+\protected\def\sharp {\Umathchar "0"0"00266F }
+\protected\def\Sigma {\Umathchar "0"0"0003A3 }
+\protected\def\sigma {\Umathchar "0"0"0003C3 }
+\protected\def\sim {\Umathchar "3"0"00223C }
+\protected\def\simeq {\Umathchar "3"0"002243 }
+\protected\def\slash {\Umathchar "0"0"002044 }
+\protected\def\smile {\Umathchar "3"0"002323 }
+\protected\def\solidus {\Udelimiter "5"0"002044 }
+\protected\def\spadesuit {\Umathchar "0"0"002660 }
+\protected\def\sphericalangle {\Umathchar "0"0"002222 }
+\protected\def\sqcap {\Umathchar "2"0"002293 }
+\protected\def\sqcup {\Umathchar "2"0"002294 }
+\protected\def\sqsubset {\Umathchar "3"0"00228F }
+\protected\def\sqsubseteq {\Umathchar "2"0"002291 }
+\protected\def\sqsubsetneq {\Umathchar "3"0"0022E4 }
+\protected\def\sqsupset {\Umathchar "3"0"002290 }
+\protected\def\sqsupseteq {\Umathchar "2"0"002292 }
+\protected\def\sqsupsetneq {\Umathchar "3"0"0022E5 }
+\protected\def\square {\Umathchar "0"0"0025A1 }
+\protected\def\squaredots {\Umathchar "3"0"002237 }
+\protected\def\star {\Umathchar "2"0"0022C6 }
+\protected\def\stareq {\Umathchar "3"0"00225B }
+\protected\def\subset {\Umathchar "3"0"002282 }
+\protected\def\Subset {\Umathchar "3"0"0022D0 }
+\protected\def\subseteq {\Umathchar "3"0"002286 }
+\protected\def\subseteqq {\Umathchar "3"0"002AC5 }
+\protected\def\subsetneq {\Umathchar "3"0"00228A }
+\protected\def\subsetneqq {\Umathchar "3"0"002ACB }
+\protected\def\succ {\Umathchar "3"0"00227B }
+\protected\def\succapprox {\Umathchar "3"0"002AB8 }
+\protected\def\succcurlyeq {\Umathchar "3"0"00227D }
+\protected\def\succeq {\Umathchar "3"0"002AB0 }
+\protected\def\succeqq {\Umathchar "3"0"002AB4 }
+\protected\def\succnapprox {\Umathchar "3"0"002ABA }
+\protected\def\succneq {\Umathchar "3"0"002AB2 }
+\protected\def\succneqq {\Umathchar "3"0"002AB6 }
+\protected\def\succnsim {\Umathchar "3"0"0022E9 }
+\protected\def\succsim {\Umathchar "3"0"00227F }
+\protected\def\sum {\Umathchar "1"0"002211 }
+\protected\def\supset {\Umathchar "3"0"002283 }
+\protected\def\Supset {\Umathchar "3"0"0022D1 }
+\protected\def\supseteq {\Umathchar "3"0"002287 }
+\protected\def\supseteqq {\Umathchar "3"0"002AC6 }
+\protected\def\supsetneq {\Umathchar "3"0"00228B }
+\protected\def\supsetneqq {\Umathchar "3"0"002ACC }
+\protected\def\surd {\Umathchar "2"0"00221A }
+\protected\def\swarrow {\Umathchar "3"0"002199 }
+\protected\def\Swarrow {\Umathchar "3"0"0021D9 }
+\protected\def\Tau {\Umathchar "0"0"0003A4 }
+\protected\def\tau {\Umathchar "0"0"0003C4 }
+\protected\def\therefore {\Umathchar "3"0"002234 }
+\protected\def\Theta {\Umathchar "0"0"000398 }
+\protected\def\theta {\Umathchar "0"0"0003B8 }
+\protected\def\tilde {\Umathaccent"0"0"0002DC }
+\protected\def\times {\Umathchar "2"0"0000D7 }
+\protected\def\to {\Umathchar "3"0"002192 }
+\protected\def\top {\Umathchar "0"0"0022A4 }
+\protected\def\triangle {\Umathchar "0"0"0025B3 }
+\protected\def\triangledown {\Umathchar "2"0"0025BD }
+\protected\def\triangleleft {\Umathchar "2"0"0025C1 }
+\protected\def\triangleq {\Umathchar "3"0"00225C }
+\protected\def\triangleright {\Umathchar "2"0"0025B7 }
+\protected\def\tripleprime {\Umathchar "0"0"002034 }
+\protected\def\turnediota {\Umathchar "0"0"002129 }
+\protected\def\twoheaddownarrow {\Umathchar "3"0"0021A1 }
+\protected\def\twoheadleftarrow {\Umathchar "3"0"00219E }
+\protected\def\twoheadrightarrow {\Umathchar "3"0"0021A0 }
+\protected\def\twoheadrightarrowtail {\Umathchar "3"0"002916 }
+\protected\def\twoheaduparrow {\Umathchar "3"0"00219F }
+\protected\def\udots {\Umathchar "0"0"0022F0 }
+\protected\def\ulcorner {\Udelimiter "4"0"00231C }
+\protected\def\underbar {\Umathaccent bottom "0"0"00203E }
+\protected\def\underbrace {\Umathaccent bottom "0"0"0023DF }
+\protected\def\underbracket {\Umathaccent bottom "0"0"0023B5 }
+\protected\def\underparent {\Umathaccent bottom "0"0"0023DD }
+\protected\def\upand {\Umathchar "2"0"00214B }
+\protected\def\uparrow {\Umathchar "3"0"002191 }
+\protected\def\Uparrow {\Umathchar "3"0"0021D1 }
+\protected\def\updasharrow {\Umathchar "3"0"0021E1 }
+\protected\def\updownarrow {\Umathchar "3"0"002195 }
+\protected\def\Updownarrow {\Umathchar "3"0"0021D5 }
+\protected\def\updownarrowbar {\Umathchar "0"0"0021A8 }
+\protected\def\updownarrows {\Umathchar "3"0"0021C5 }
+\protected\def\upharpoonleft {\Umathchar "3"0"0021BF }
+\protected\def\upharpoonright {\Umathchar "3"0"0021BE }
+\protected\def\uplus {\Umathchar "2"0"00228E }
+\protected\def\Upsilon {\Umathchar "0"0"0003A5 }
+\protected\def\upsilon {\Umathchar "0"0"0003C5 }
+\protected\def\upuparrows {\Umathchar "3"0"0021C8 }
+\protected\def\upwhitearrow {\Umathchar "0"0"0021E7 }
+\protected\def\urcorner {\Udelimiter "5"0"00231D }
+\protected\def\Uuparrow {\Umathchar "3"0"00290A }
+\protected\def\varepsilon {\Umathchar "0"0"0003B5 }
+\protected\def\varkappa {\Umathchar "0"0"0003F0 }
+\protected\def\varkappa {\Umathchar "0"0"0003F0 }
+\protected\def\varnothing {\Umathchar "0"0"002300 }
+\protected\def\varphi {\Umathchar "0"0"0003C6 }
+\protected\def\varpi {\Umathchar "0"0"0003D6 }
+\protected\def\varrho {\Umathchar "0"0"01D71A }
+\protected\def\varsigma {\Umathchar "0"0"0003C2 }
+\protected\def\vartheta {\Umathchar "0"0"01D717 }
+\protected\def\varTheta {\Umathchar "0"0"0003D1 }
+\protected\def\vdash {\Umathchar "3"0"0022A2 }
+\protected\def\vDash {\Umathchar "3"0"0022A8 }
+\protected\def\Vdash {\Umathchar "3"0"0022A9 }
+\protected\def\VDash {\Umathchar "3"0"0022AB }
+\protected\def\vdots {\Umathchar "0"0"0022EE }
+\protected\def\vec {\Umathaccent"0"0"0020D7 }
+\protected\def\vee {\Umathchar "2"0"002228 }
+\protected\def\veebar {\Umathchar "2"0"0022BB }
+\protected\def\veeeq {\Umathchar "3"0"00225A }
+\protected\def\vert {\Udelimiter "0"0"00007C }
+\protected\def\Vert {\Udelimiter "0"0"002016 }
+\protected\def\Vvdash {\Umathchar "3"0"0022AA }
+\protected\def\wedge {\Umathchar "2"0"002227 }
+\protected\def\wedgeeq {\Umathchar "3"0"002259 }
+\protected\def\whitearrowupfrombar {\Umathchar "0"0"0021EB }
+\protected\def\widehat {\Umathaccent"0"0"000302 }
+\protected\def\widetilde {\Umathaccent"0"0"000303 }
+\protected\def\wp {\Umathchar "0"0"002118 }
+\protected\def\wr {\Umathchar "2"0"002240 }
+\protected\def\Xi {\Umathchar "0"0"00039E }
+\protected\def\xi {\Umathchar "0"0"0003BE }
+\protected\def\yen {\Umathchar "0"0"0000A5 }
+\protected\def\Zeta {\Umathchar "0"0"000396 }
+\protected\def\zeta {\Umathchar "0"0"0003B6 }
%D The following are suggested by Bruno. As I don't use plain and as the above are
%D taken from text unicode greek I suppose his list is better:
-\def\alpha {\Umathchar "0"0"01D6FC }
-\def\beta {\Umathchar "0"0"01D6FD }
-\def\chi {\Umathchar "0"0"01D712 }
-\def\delta {\Umathchar "0"0"01D6FF }
-\def\digamma {\Umathchar "0"0"0003DC }
-\def\epsilon {\Umathchar "0"0"01D716 }
-\def\eta {\Umathchar "0"0"01D702 }
-\def\gamma {\Umathchar "0"0"01D6FE }
-\def\iota {\Umathchar "0"0"01D704 }
-\def\kappa {\Umathchar "0"0"01D705 }
-\def\lambda {\Umathchar "0"0"01D706 }
-\def\mu {\Umathchar "0"0"01D707 }
-\def\nu {\Umathchar "0"0"01D708 }
-\def\omega {\Umathchar "0"0"01D714 }
-\def\omicron {\Umathchar "0"0"01D70A }
-\def\phi {\Umathchar "0"0"01D719 }
-\def\pi {\Umathchar "0"0"01D70B }
-\def\psi {\Umathchar "0"0"01D713 }
-\def\rho {\Umathchar "0"0"01D70C }
-\def\sigma {\Umathchar "0"0"01D70E }
-\def\tau {\Umathchar "0"0"01D70F }
-\def\theta {\Umathchar "0"0"01D703 }
-\def\upsilon {\Umathchar "0"0"01D710 }
-\def\varepsilon {\Umathchar "0"0"01D700 }
-\def\varkappa {\Umathchar "0"0"01D718 }
-\def\varphi {\Umathchar "0"0"01D711 }
-\def\varpi {\Umathchar "0"0"01D71B }
-\def\varrho {\Umathchar "0"0"01D71A }
-\def\varsigma {\Umathchar "0"0"01D70D }
-\def\vartheta {\Umathchar "0"0"01D717 }
-\def\xi {\Umathchar "0"0"01D709 }
-\def\zeta {\Umathchar "0"0"01D701 }
+\protected\def\alpha {\Umathchar "0"0"01D6FC }
+\protected\def\beta {\Umathchar "0"0"01D6FD }
+\protected\def\chi {\Umathchar "0"0"01D712 }
+\protected\def\delta {\Umathchar "0"0"01D6FF }
+\protected\def\digamma {\Umathchar "0"0"0003DC }
+\protected\def\epsilon {\Umathchar "0"0"01D716 }
+\protected\def\eta {\Umathchar "0"0"01D702 }
+\protected\def\gamma {\Umathchar "0"0"01D6FE }
+\protected\def\iota {\Umathchar "0"0"01D704 }
+\protected\def\kappa {\Umathchar "0"0"01D705 }
+\protected\def\lambda {\Umathchar "0"0"01D706 }
+\protected\def\mu {\Umathchar "0"0"01D707 }
+\protected\def\nu {\Umathchar "0"0"01D708 }
+\protected\def\omega {\Umathchar "0"0"01D714 }
+\protected\def\omicron {\Umathchar "0"0"01D70A }
+\protected\def\phi {\Umathchar "0"0"01D719 }
+\protected\def\pi {\Umathchar "0"0"01D70B }
+\protected\def\psi {\Umathchar "0"0"01D713 }
+\protected\def\rho {\Umathchar "0"0"01D70C }
+\protected\def\sigma {\Umathchar "0"0"01D70E }
+\protected\def\tau {\Umathchar "0"0"01D70F }
+\protected\def\theta {\Umathchar "0"0"01D703 }
+\protected\def\upsilon {\Umathchar "0"0"01D710 }
+\protected\def\varepsilon {\Umathchar "0"0"01D700 }
+\protected\def\varkappa {\Umathchar "0"0"01D718 }
+\protected\def\varphi {\Umathchar "0"0"01D711 }
+\protected\def\varpi {\Umathchar "0"0"01D71B }
+\protected\def\varrho {\Umathchar "0"0"01D71A }
+\protected\def\varsigma {\Umathchar "0"0"01D70D }
+\protected\def\vartheta {\Umathchar "0"0"01D717 }
+\protected\def\xi {\Umathchar "0"0"01D709 }
+\protected\def\zeta {\Umathchar "0"0"01D701 }
-\def\varTheta {\Umathchar "0"0"0003F4 }
+\protected\def\varTheta {\Umathchar "0"0"0003F4 }
% a few definitions:
-\def\sqrt {\Uroot "0 "221A{}}
-\def\root#1\of{\Uroot "0 "221A{#1}}
+\protected\def\sqrt {\Uroot "0 "221A{}}
+\protected\def\root#1\of{\Uroot "0 "221A{#1}}
% \skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177
% \skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60
@@ -2280,25 +2282,25 @@
% just use utf
-\def\`#1{#1^^^^0300}
-\def\'#1{#1^^^^0301}
-\def\^#1{#1^^^^0302}
-\def\~#1{#1^^^^0303}
-\def\=#1{#1^^^^0304}
-\def\u#1{#1^^^^0306}
-\def\.#1{#1^^^^0307}
-\def\"#1{#1^^^^0308}
-\def\r#1{#1^^^^030a} % not in plain
-\def\H#1{#1^^^^030b}
-\def\v#1{#1^^^^030c}
-\def\d#1{#1^^^^0323}
-\def\c#1{#1^^^^0327}
-\def\k#1{#1^^^^0328} % not in plain
-\def\b#1{#1^^^^0331}
+\protected\def\`#1{#1^^^^0300}
+\protected\def\'#1{#1^^^^0301}
+\protected\def\^#1{#1^^^^0302}
+\protected\def\~#1{#1^^^^0303}
+\protected\def\=#1{#1^^^^0304}
+\protected\def\u#1{#1^^^^0306}
+\protected\def\.#1{#1^^^^0307}
+\protected\def\"#1{#1^^^^0308}
+\protected\def\r#1{#1^^^^030a} % not in plain
+\protected\def\H#1{#1^^^^030b}
+\protected\def\v#1{#1^^^^030c}
+\protected\def\d#1{#1^^^^0323}
+\protected\def\c#1{#1^^^^0327}
+\protected\def\k#1{#1^^^^0328} % not in plain
+\protected\def\b#1{#1^^^^0331}
-\def\*{\discretionary{\thinspace\the\textfont0\char"00D7}{}{}}
+\protected\def\*{\discretionary{\thinspace\the\textfont0\char"00D7}{}{}}
-\def\t#1{%
+\protected\def\t#1{%
%\quitvmode
\begingroup
\setbox0\hbox{#1}%
@@ -2342,9 +2344,9 @@
\catcode`@=11
- \def\sqrt{\Uradical "0 "221A }
+ \protected\def\sqrt{\Uradical "0 "221A }
- \def\root#1\of
+ \protected\def\root#1\of
{\setbox\rootbox\hbox\bgroup
$\m@th\scriptscriptstyle{#1}$%
\egroup
diff --git a/tex/generic/context/luatex/luatex-mplib.lua b/tex/generic/context/luatex/luatex-mplib.lua
index 976bb59f9..785bc707c 100644
--- a/tex/generic/context/luatex/luatex-mplib.lua
+++ b/tex/generic/context/luatex/luatex-mplib.lua
@@ -230,7 +230,14 @@ else
return ""
end
- function metapost.load(name)
+ local modes = {
+ scaled = true,
+ decimal = true,
+ binary = true,
+ double = true,
+ }
+
+ function metapost.load(name,mode)
local mpd = {
buffer = { },
verbatim = { }
@@ -241,6 +248,7 @@ else
make_text = function(...) return metapost.maketext (mpd,...) end,
run_script = function(...) return metapost.runscript(mpd,...) end,
extensions = 1,
+ math_mode = mode and modes[mode] and mode or "scaled",
}
local result
if not mpx then
@@ -283,9 +291,9 @@ else
return true
end
- function metapost.process(mpx, data)
+ function metapost.process(format,data,mode)
local converted, result = false, {}
- mpx = metapost.load(mpx)
+ local mpx = metapost.load(format,mode)
if mpx and data then
local result = mpx:execute(data)
if not result then
@@ -300,6 +308,8 @@ else
else
metapost.report("mp error: unknown error, maybe no beginfig/endfig")
end
+-- mpx:finish()
+-- mpx = nil
else
metapost.report("mp error: mem file not found")
end
diff --git a/tex/generic/context/luatex/luatex-mplib.tex b/tex/generic/context/luatex/luatex-mplib.tex
index f9de4b223..a99de37e4 100644
--- a/tex/generic/context/luatex/luatex-mplib.tex
+++ b/tex/generic/context/luatex/luatex-mplib.tex
@@ -29,6 +29,7 @@
%D \stoptyping
\def\setmplibformat#1{\def\mplibformat{#1}}
+\def\setmplibmode #1{\def\mplibmode {#1}}
\def\setupmplibcatcodes
{\catcode`\{=12 % could be optional .. not really needed
@@ -39,7 +40,8 @@
\catcode`\_=12
\catcode`\%=12
\catcode`\&=12
- \catcode`\$=12 }
+ \catcode`\$=12
+ \obeylines}
\def\mplibcode
{\bgroup
@@ -48,11 +50,12 @@
\long\def\domplibcode#1\endmplibcode
{\egroup
- \directlua{metapost.process('\mplibformat',[[#1]])}}
+ \directlua{metapost.process('\mplibformat',[[#1]],'\mplibmode')}}
%D We default to \type {plain} \METAPOST:
\def\mplibformat{plain}
+\def\mplibmode {scaled}
%D We use a dedicated scratchbox: