summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-09-19 22:02:28 +0000
committerKarl Berry <karl@freefriends.org>2017-09-19 22:02:28 +0000
commit435c95be6f25ed57497eb521c9885bc0712e17bf (patch)
tree83bc4b2a5535e959e1917265be06bcef908bcbaf
parent25f52d925614aa8433200addac102a4b9a2dffe3 (diff)
l3 (19sep17)
git-svn-id: svn://tug.org/texlive/trunk@45340 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdfbin438228 -> 438494 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdfbin374656 -> 374914 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdfbin376732 -> 376999 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdfbin389696 -> 389952 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdfbin285855 -> 286108 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/expl3.pdfbin543112 -> 543393 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.pdfbin1393689 -> 1396003 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdfbin263449 -> 263708 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdfbin275355 -> 275617 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdfbin215639 -> 215902 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.pdfbin3349581 -> 3358573 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdfbin328004 -> 328267 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdfbin298795 -> 302814 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdfbin476835 -> 477094 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdfbin475330 -> 475593 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdfbin421096 -> 421357 bytes
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx12
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx747
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx16
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3box.dtx62
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx28
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3clist.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3doc.dtx90
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx62
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3file.dtx14
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3final.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3flag.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx5
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx60
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx65
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx3
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx1771
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx12
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prop.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3quark.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3regex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3seq.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3skip.dtx103
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sort.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx14
-rw-r--r--Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx35
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx8
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex250
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls57
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def12
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def12
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def27
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def8
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty7
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty6
103 files changed, 2114 insertions, 1558 deletions
diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md
index 8357a8c9a95..369da481434 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/README.md
+++ b/Master/texmf-dist/doc/latex/l3experimental/README.md
@@ -1,7 +1,7 @@
Experimental LaTeX3 Concepts
============================
-Release 2017/07/19
+Release 2017/09/18
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
index 4c51d3a409d..3b0f003f84f 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
index 3e4c403e224..51e7fff2221 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
index 8c90b1c31d4..8a6686cf9bc 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
index f8fc65ee0fa..2de8fe1a3e6 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
index 5a379c5da2b..9919c5c4531 100644
--- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
+++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md
index d76033a8871..7c72c0069e5 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/README.md
+++ b/Master/texmf-dist/doc/latex/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2017/07/19
+Release 2017/09/18
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
index 8280d2538c3..b6e3d02a2f9 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
index 654f427e902..6c8e30b0232 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
index 58949528dc4..5d8913b0b41 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
@@ -63,7 +63,7 @@
{latex-team@latex-project.org}%
}%
}
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
\pagenumbering{roman}
\maketitle
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
index 563405032e0..357e015a315 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt b/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
index 4db8952ebe7..4aec455953d 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
@@ -18,6 +18,8 @@ Function Expires end
\c_minus_one 2018
\box_resize:cnn 2018
\box_resize:Nnn 2018
+\box_use_clear:c 2018
+\box_use_clear:N 2018
\file_add_path:nN 2018
\file_if_exist_input:nT 2017
\file_if_exist_input:nTF 2017
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
index 6dac1336d6b..ec66c75d00a 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
index e9772486846..066727fd6d7 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
@@ -30,7 +30,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
\begin{document}
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
index 81cb6d6f0be..520533091c3 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
index 422e7960e08..adb8f9cd704 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
@@ -30,7 +30,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
index 01b9baa2543..5aca44f1468 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex
index 2f02b61e46f..a5a3251f977 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex
@@ -62,7 +62,7 @@
{latex-team@latex-project.org}%
}%
}
-\date{Released 2017/07/19}
+\date{Released 2017/09/18}
\pagenumbering{roman}
\maketitle
diff --git a/Master/texmf-dist/doc/latex/l3packages/README.md b/Master/texmf-dist/doc/latex/l3packages/README.md
index 0ba406bc4ea..259dda0ffab 100644
--- a/Master/texmf-dist/doc/latex/l3packages/README.md
+++ b/Master/texmf-dist/doc/latex/l3packages/README.md
@@ -1,7 +1,7 @@
LaTeX3 High-Level Concepts
==========================
-Release 2017/07/19
+Release 2017/09/18
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
index 149e84f92a2..f246f3802dc 100644
--- a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf
index d002557a3a6..dfd5475b6e7 100644
--- a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
index 2749ab6017b..06cb233abff 100644
--- a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
index c722f5003b9..6817324c538 100644
--- a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
index 2a8eefc2c4c..43d2f84fa9b 100644
--- a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
+++ b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
index b2147969d79..6d903956cb1 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -252,7 +252,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3str-convert}{2017/07/19}{}
+\ProvidesExplPackage{l3str-convert}{2017/09/18}{}
{L3 Experimental string encoding conversions}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
index 2cbc3ae82ef..ebfbfe82542 100644
--- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -163,7 +163,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3str-format}{2017/07/19}{}
+\ProvidesExplPackage{l3str-format}{2017/09/18}{}
{L3 Experimental string formatting}
\RequirePackage{l3str}
%</package>
diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
index ad176e7a727..9bf6dc86f34 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
@@ -54,7 +54,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -673,7 +673,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2017/07/19}{}
+\ProvidesExplPackage{xcoffins}{2017/09/18}{}
{L3 Experimental design level coffins}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
index ca799677f59..57aa30fa328 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
@@ -24,8 +24,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
%<package> {}
%<package> {%
%<package> \PackageError{l3galley}{Support package l3kernel too old}
@@ -59,7 +59,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -685,7 +685,7 @@
%
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{l3galley}{2017/07/19}{}
+\ProvidesExplPackage{l3galley}{2017/09/18}{}
{L3 Experimental galley code}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
index f1c746e2aa8..6de00154467 100644
--- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
+++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -732,7 +732,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2017/07/19}{}
+\ProvidesExplPackage{xgalley}{2017/09/18}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 13ad6e42e04..d25bc734518 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -21,7 +21,7 @@
% for those people who are interested.
%
%<*driver|generic|package>
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -459,7 +459,7 @@
% Due to the nature of the underlying \TeX{} implementation, it is
% possible to assign values to token list variables and comma lists
% without first declaring them. However, this is \emph{not supported
-% behaviour}. The \LaTeX3 coding convention is that all variables must
+% behavior}. The \LaTeX3 coding convention is that all variables must
% be declared before use.
%
% The \pkg{expl3} package can be loaded with the \texttt{check-declarations}
@@ -563,7 +563,7 @@
%
% To denote that some argument to a function needs special treatment one
% just uses different letters in the arg-spec part of the function to
-% mark the desired behaviour. In the above example one would write
+% mark the desired behavior. In the above example one would write
% \begin{quote}
% \cs{seq_gpush:NV} |\g_ior_file_name_seq \l_ior_curr_file_tl|
% \end{quote}
@@ -949,6 +949,7 @@
% than \LaTeX3 code.
% \item[dvips] Use the \texttt{dvips} driver.
% \item[dvipdfmx] Use the \texttt{dvipdfmx} driver.
+% \item[dvisvgm] Use the \texttt{dvisvgm} driver.
% \item[pdfmode] Use the \texttt{pdfmode} driver (direct PDF output from
% \pdfTeX{} or \LuaTeX{}).
% \item[xdvipdfmx] Use the \texttt{xdvipdfmx} driver (\XeTeX{} only).
@@ -989,7 +990,8 @@
% \end{itemize}
% Any engine which defines |\pdfoutput| (\emph{i.e.}~allows direct production
% of a PDF file without a DVI intermediate) must also provide |\pdfcolorstack|,
-% |\pdfliteral|, |\pdfmatrix|, |\pdfrestore| and |\pdfsave|.
+% |\pdfliteral|, |\pdfmatrix|, |\pdfrestore| and |\pdfsave| or equivalent
+% functionality.
%
% Practically, these requirements are met by the engines
% \begin{itemize}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
index 74c0d275820..d2f9c6e42de 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 573b39c470f..7afc9938780 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -1233,6 +1233,23 @@
% \cs{cs_if_exist_p:N}, and if not raises a kernel-level error.
% \end{function}
%
+% \begin{function}{\__debug_chk_expr:nNnN}
+% \begin{syntax}
+% \cs{__debug_chk_expr:nNnN} \Arg{expr} \meta{eval} \Arg{convert} \meta{caller}
+% \end{syntax}
+% This function is only created if debugging is enabled. By default
+% it is equivalent to \cs{use_i:nnnn}. When expression checking is
+% enabled, it leaves in the input stream the result of \cs{tex_the:D}
+% \meta{eval} \meta{expr} \cs{tex_relax:D} after checking that no
+% token was left over. If any token was not taken as part of the
+% expression, there is an error message displaying the result of the
+% evaluation as well as the \meta{caller}. For instance \meta{eval}
+% can be \cs{__int_eval:w} and \meta{caller} can be \cs{int_eval:n} or
+% \cs{int_set:Nn}. The argument \meta{convert} is empty except for mu
+% expressions where it is \cs{etex_mutoglue:D}, used for internal
+% purposes.
+% \end{function}
+%
% \begin{function}{\__debug_chk_var_exist:N}
% \begin{syntax}
% \cs{__debug_chk_var_exist:N} \meta{var}
@@ -1307,7 +1324,7 @@
% \cs{cs_new:Npn} \cs{int_eval:n} |#1| \\
% ~~|{ \__int_value:w \__int_eval:w #1 \__int_eval_end: }|
% \end{quote}
-% replaces |#1| by |(#1)| in the definition of \cs{int_eval:n} when
+% would replace |#1| by |(#1)| in the definition of \cs{int_eval:n} when
% debugging is enabled. This fails if the \meta{code} contains~|##|.
% The \cs{__debug_patch_conditional_args:nNNpnn} function is for use
% before \cs{prg_new_conditional:Npnn} or its \texttt{_protected}
@@ -1446,11 +1463,15 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\if_int_compare:w, \__int_to_roman:w}
+% \begin{macrocode}
+%<@@=int>
+% \end{macrocode}
+%
+% \begin{macro}[EXP]{\if_int_compare:w, \@@_to_roman:w}
% For integers.
% \begin{macrocode}
\tex_let:D \if_int_compare:w \tex_ifnum:D
-\tex_let:D \__int_to_roman:w \tex_romannumeral:D
+\tex_let:D \@@_to_roman:w \tex_romannumeral:D
% \end{macrocode}
% \end{macro}
%
@@ -1583,12 +1604,16 @@
%
% \subsection{Selecting tokens}
%
-% \begin{variable}{\l__exp_internal_tl}
+% \begin{macrocode}
+%<@@=exp>
+% \end{macrocode}
+%
+% \begin{variable}{\l_@@_internal_tl}
% Scratch token list variable for \pkg{l3expan}, used by \cs{use:x},
% used in defining conditionals. We don't use |tl| methods because
% \pkg{l3basics} is loaded earlier.
% \begin{macrocode}
-\cs_set_nopar:Npn \l__exp_internal_tl { }
+\cs_set_nopar:Npn \l_@@_internal_tl { }
% \end{macrocode}
% \end{variable}
%
@@ -1601,12 +1626,12 @@
%
% \begin{macro}{\use:x}
% Fully expands its argument and passes it to the input stream. Uses
-% the reserved \cs{l__exp_internal_tl} which will be set up in \pkg{l3expan}.
+% the reserved \cs{l_@@_internal_tl} which will be set up in \pkg{l3expan}.
% \begin{macrocode}
\cs_set_protected:Npn \use:x #1
{
- \cs_set_nopar:Npx \l__exp_internal_tl {#1}
- \l__exp_internal_tl
+ \cs_set_nopar:Npx \l_@@_internal_tl {#1}
+ \l_@@_internal_tl
}
% \end{macrocode}
% \end{macro}
@@ -1715,7 +1740,11 @@
%
% \subsection{Debugging and patching later definitions}
%
-% \begin{macro}[int]{\__debug:TF}
+% \begin{macrocode}
+%<@@=debug>
+% \end{macrocode}
+%
+% \begin{macro}[int]{\@@:TF}
% A more meaningful test of whether debugging is enabled than messing
% up with guards. We can also more easily change the logic in one
% place then. At present, debugging is disabled in the format and in
@@ -1723,10 +1752,10 @@
% options \texttt{enable-debug}, \texttt{log-functions} or
% \texttt{check-declarations} was given.
% \begin{macrocode}
-\cs_set_protected:Npn \__debug:TF #1#2 {#2}
+\cs_set_protected:Npn \@@:TF #1#2 {#2}
%<*package>
\tex_ifodd:D \l@expl@enable@debug@bool
- \cs_set_protected:Npn \__debug:TF #1#2 {#1}
+ \cs_set_protected:Npn \@@:TF #1#2 {#1}
\fi:
%</package>
% \end{macrocode}
@@ -1735,13 +1764,13 @@
% \begin{macro}{\debug_on:n, \debug_off:n}
%
% \begin{macrocode}
-\__debug:TF
+\@@:TF
{
\cs_set_protected:Npn \debug_on:n #1
{
\exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} }
{
- \cs_if_exist_use:cF { __debug_##1_on: }
+ \cs_if_exist_use:cF { @@_##1_on: }
{ \__msg_kernel_error:nnn { kernel } { debug } {##1} }
}
}
@@ -1749,7 +1778,7 @@
{
\exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} }
{
- \cs_if_exist_use:cF { __debug_##1_off: }
+ \cs_if_exist_use:cF { @@_##1_off: }
{ \__msg_kernel_error:nnn { kernel } { debug } {##1} }
}
}
@@ -1770,20 +1799,20 @@
% \end{macro}
%
% \begin{macro}[aux]
-% {\__debug_check-declarations_on:, \__debug_check-declarations_off:}
-% \begin{macro}[int]{\__debug_chk_var_exist:N}
-% \begin{macro}[int]{\__debug_chk_cs_exist:N, \__debug_chk_cs_exist:c}
-% When debugging is not active these two functions produce an
-% error. Otherwise they set up \cs{__debug_chk_var_exist:N} and
-% \cs{__debug_chk_cs_exist:N}, two functions that test (when
+% {\@@_check-declarations_on:, \@@_check-declarations_off:}
+% \begin{macro}[int]{\@@_chk_var_exist:N}
+% \begin{macro}[int]{\@@_chk_cs_exist:N, \@@_chk_cs_exist:c}
+% When debugging is enabled these two functions
+% set up \cs{@@_chk_var_exist:N} and
+% \cs{@@_chk_cs_exist:N}, two functions that test (when
% \texttt{check-declarations} is active) that their argument is
% defined.
% \begin{macrocode}
-\__debug:TF
+\@@:TF
{
- \exp_args:Nc \cs_set_protected:Npn { __debug_check-declarations_on: }
+ \exp_args:Nc \cs_set_protected:Npn { @@_check-declarations_on: }
{
- \cs_set_protected:Npn \__debug_chk_var_exist:N ##1
+ \cs_set_protected:Npn \@@_chk_var_exist:N ##1
{
\cs_if_exist:NF ##1
{
@@ -1791,7 +1820,7 @@
{ \token_to_str:N ##1 }
}
}
- \cs_set_protected:Npn \__debug_chk_cs_exist:N ##1
+ \cs_set_protected:Npn \@@_chk_cs_exist:N ##1
{
\cs_if_exist:NF ##1
{
@@ -1800,17 +1829,17 @@
}
}
}
- \exp_args:Nc \cs_set_protected:Npn { __debug_check-declarations_off: }
+ \exp_args:Nc \cs_set_protected:Npn { @@_check-declarations_off: }
{
- \cs_set_protected:Npn \__debug_chk_var_exist:N ##1 { }
- \cs_set_protected:Npn \__debug_chk_cs_exist:N ##1 { }
+ \cs_set_protected:Npn \@@_chk_var_exist:N ##1 { }
+ \cs_set_protected:Npn \@@_chk_cs_exist:N ##1 { }
}
- \cs_set_protected:Npn \__debug_chk_cs_exist:c
- { \exp_args:Nc \__debug_chk_cs_exist:N }
+ \cs_set_protected:Npn \@@_chk_cs_exist:c
+ { \exp_args:Nc \@@_chk_cs_exist:N }
\tex_ifodd:D \l@expl@check@declarations@bool
- \use:c { __debug_check-declarations_on: }
+ \use:c { @@_check-declarations_on: }
\else:
- \use:c { __debug_check-declarations_off: }
+ \use:c { @@_check-declarations_off: }
\fi:
}
{ }
@@ -1819,52 +1848,110 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[aux]{\__debug_log-functions_on:, \__debug_log-functions_off:}
-% \begin{macro}[int]{\__debug_log:x, \__debug_suspend_log:, \__debug_resume_log:}
+% \begin{macro}[aux]
+% {\@@_check-expressions_on:, \@@_check-expressions_off:}
+% \begin{macro}[int]{\@@_chk_expr:nNnN}
+% \begin{macro}[aux]{\@@_chk_expr_aux:nNnN}
+% When debugging is enabled these two functions set
+% \cs{@@_chk_expr:nNnN} to test or not whether the given
+% expression is valid. The idea is to evaluate the expression within
+% a brace group (to catch trailing \cs{use_none:nn} or similar), then
+% test that the result is what we expect. This is done by turning it
+% to an integer and hitting that with \cs{tex_romannumeral:D} after
+% replacing the first character by |-0|. If all goes well, that
+% primitive finds a non-positive integer and gives an empty output.
+% If the original expression evaluation stopped early it leaves a
+% trailing \cs{tex_relax:D}, which stops the second evaluation (used
+% to convert to integer) before it encounters the final
+% \cs{tex_relax:D}. Since \cs{tex_romannumeral:D} does not absorb
+% \cs{tex_relax:D} the output will be nonempty. Note that |#3| is
+% empty except for mu expressions for which it is \cs{etex_mutoglue:D}
+% to avoid an \enquote{incompatible glue units} error. Note also that
+% if we had omitted the first \cs{tex_relax:D} then for instance
+% |1+2\relax+3| would incorrectly be accepted as a valid integer
+% expression.
+% \begin{macrocode}
+\@@:TF
+ {
+ \exp_args:Nc \cs_set_protected:Npn { @@_check-expressions_on: }
+ {
+ \cs_set:Npn \@@_chk_expr:nNnN ##1##2
+ {
+ \exp_after:wN \@@_chk_expr_aux:nNnN
+ \exp_after:wN { \tex_the:D ##2 ##1 \tex_relax:D }
+ ##2
+ }
+ }
+ \exp_args:Nc \cs_set_protected:Npn { @@_check-expressions_off: }
+ { \cs_set:Npn \@@_chk_expr:nNnN ##1##2##3##4 {##1} }
+ \use:c { @@_check-expressions_off: }
+ \cs_set:Npn \@@_chk_expr_aux:nNnN #1#2#3#4
+ {
+ \tl_if_empty:oF
+ {
+ \tex_romannumeral:D - 0
+ \exp_after:wN \use_none:n
+ \__int_value:w #3 #2 #1 \tex_relax:D
+ }
+ {
+ \__msg_kernel_expandable_error:nnnn
+ { kernel } { expr } {#4} {#1}
+ }
+ #1
+ }
+ }
+ { }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[aux]{\@@_log-functions_on:, \@@_log-functions_off:}
+% \begin{macro}[int]{\@@_log:x, \@@_suspend_log:, \@@_resume_log:}
% These two functions
% (corresponding to the \pkg{expl3} option \texttt{log-functions})
-% control whether \cs{__debug_log:x} writes to the log file or not.
+% control whether \cs{@@_log:x} writes to the log file or not.
% Since \cs{iow_log:x} does not yet have its final definition we do
% not use \cs{cs_set_eq:NN} (not defined yet anyway). The
-% \cs{__debug_suspend_log:} function disables \cs{__debug_log:x} until
-% the matching \cs{__debug_resume_log:}. These two commands are used
+% \cs{@@_suspend_log:} function disables \cs{@@_log:x} until
+% the matching \cs{@@_resume_log:}. These two commands are used
% to improve the logging for datatypes with multiple parts, currently
% only coffins. They should come in pairs, which can be nested (this
% complicates the code here and is currently unused). The function
% \cs{exp_not:o} is defined in \pkg{l3expan} later on but
-% \cs{__debug_suspend_log:} and \cs{__debug_resume_log:} are not used
+% \cs{@@_suspend_log:} and \cs{@@_resume_log:} are not used
% before that point. Once everything is defined, turn logging on or
% off depending on what option was given.
% When debugging is not enabled, simply produce an error.
% \begin{macrocode}
-\__debug:TF
+\@@:TF
{
- \exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_on: }
+ \exp_args:Nc \cs_set_protected:Npn { @@_log-functions_on: }
{
- \cs_set_protected:Npn \__debug_log:x { \iow_log:x }
- \cs_set_protected:Npn \__debug_suspend_log:
+ \cs_set_protected:Npn \@@_log:x { \iow_log:x }
+ \cs_set_protected:Npn \@@_suspend_log:
{
- \cs_set_protected:Npx \__debug_resume_log:
+ \cs_set_protected:Npx \@@_resume_log:
{
- \cs_set_protected:Npn \__debug_resume_log:
- { \exp_not:o { \__debug_resume_log: } }
- \cs_set_protected:Npn \__debug_log:x
- { \exp_not:o { \__debug_log:x } }
+ \cs_set_protected:Npn \@@_resume_log:
+ { \exp_not:o { \@@_resume_log: } }
+ \cs_set_protected:Npn \@@_log:x
+ { \exp_not:o { \@@_log:x } }
}
- \cs_set_protected:Npn \__debug_log:x { \use_none:n }
+ \cs_set_protected:Npn \@@_log:x { \use_none:n }
}
- \cs_set_protected:Npn \__debug_resume_log: { }
+ \cs_set_protected:Npn \@@_resume_log: { }
}
- \exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_off: }
+ \exp_args:Nc \cs_set_protected:Npn { @@_log-functions_off: }
{
- \cs_set_protected:Npn \__debug_log:x { \use_none:n }
- \cs_set_protected:Npn \__debug_suspend_log: { }
- \cs_set_protected:Npn \__debug_resume_log: { }
+ \cs_set_protected:Npn \@@_log:x { \use_none:n }
+ \cs_set_protected:Npn \@@_suspend_log: { }
+ \cs_set_protected:Npn \@@_resume_log: { }
}
\tex_ifodd:D \l@expl@log@functions@bool
- \use:c { __debug_log-functions_on: }
+ \use:c { @@_log-functions_on: }
\else:
- \use:c { __debug_log-functions_off: }
+ \use:c { @@_log-functions_off: }
\fi:
}
{ }
@@ -1872,33 +1959,33 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\__debug_deprecation_on:, \__debug_deprecation_off:}
-% \begin{variable}{\g__debug_deprecation_on_tl, \g__debug_deprecation_off_tl}
+% \begin{macro}{\@@_deprecation_on:, \@@_deprecation_off:}
+% \begin{variable}{\g_@@_deprecation_on_tl, \g_@@_deprecation_off_tl}
% Some commands were more recently deprecated and not yet removed;
% only make these into errors if the user requests it. This relies on
% two token lists, filled up by calls to
-% \cs{__debug_deprecation:nnNNpn} in each module.
+% \cs{@@_deprecation:nnNNpn} in each module.
% \begin{macrocode}
-\__debug:TF
+\@@:TF
{
- \cs_set_protected:Npn \__debug_deprecation_on:
- { \g__debug_deprecation_on_tl }
- \cs_set_protected:Npn \__debug_deprecation_off:
- { \g__debug_deprecation_off_tl }
- \cs_set_nopar:Npn \g__debug_deprecation_on_tl { }
- \cs_set_nopar:Npn \g__debug_deprecation_off_tl { }
+ \cs_set_protected:Npn \@@_deprecation_on:
+ { \g_@@_deprecation_on_tl }
+ \cs_set_protected:Npn \@@_deprecation_off:
+ { \g_@@_deprecation_off_tl }
+ \cs_set_nopar:Npn \g_@@_deprecation_on_tl { }
+ \cs_set_nopar:Npn \g_@@_deprecation_off_tl { }
}
{ }
% \end{macrocode}
% \end{variable}
% \end{macro}
%
-% \begin{macro}[int]{\__debug_deprecation:nnNNpn}
-% \begin{macro}[aux]{\__debug_deprecation_aux:nnNnn}
+% \begin{macro}[int]{\@@_deprecation:nnNNpn}
+% \begin{macro}[aux]{\@@_deprecation_aux:nnNnn}
% Grab a definition (at present, must be \cs{cs_new_protected:Npn}).
-% Add to \cs{g__debug_deprecation_on_tl} some code that makes the
+% Add to \cs{g_@@_deprecation_on_tl} some code that makes the
% defined macro |#3| outer (and defines it as an error). Add to
-% \cs{g__debug_deprecation_off_tl} the definition itself. In both
+% \cs{g_@@_deprecation_off_tl} the definition itself. In both
% cases we undefine the token with \cs{tex_let:D} to avoid taking a
% potentially outer macro as the argument of some \pkg{expl3}
% function. Finally define the macro itself to produce a warning then
@@ -1906,28 +1993,28 @@
% together with the \texttt{x}-expanding assignment and \cs{exp_not:n}
% this gives a convenient way of storing the macro's definition in
% itself in order to only produce the warning once for each macro.
-% If debugging is disabled, \cs{__debug_deprecation:nnNNpn} lets the
+% If debugging is disabled, \cs{@@_deprecation:nnNNpn} lets the
% definition happen.
% \begin{macrocode}
-\__debug:TF
+\@@:TF
{
- \cs_set_protected:Npn \__debug_deprecation:nnNNpn #1#2#3#4#5#
+ \cs_set_protected:Npn \@@_deprecation:nnNNpn #1#2#3#4#5#
{
\if_meaning:w \cs_new_protected:Npn #3
\else:
\__msg_kernel_error:nnx { kernel } { debug-unpatchable }
{ \token_to_str:N #3 ~(for~deprecation) }
\fi:
- \__debug_deprecation_aux:nnNnn {#1} {#2} #4 {#5}
+ \@@_deprecation_aux:nnNnn {#1} {#2} #4 {#5}
}
- \cs_set_protected:Npn \__debug_deprecation_aux:nnNnn #1#2#3#4#5
+ \cs_set_protected:Npn \@@_deprecation_aux:nnNnn #1#2#3#4#5
{
- \tl_gput_right:Nn \g__debug_deprecation_on_tl
+ \tl_gput_right:Nn \g_@@_deprecation_on_tl
{
\tex_let:D #3 \scan_stop:
\__deprecation_error:Nnn #3 {#2} {#1}
}
- \tl_gput_right:Nn \g__debug_deprecation_off_tl
+ \tl_gput_right:Nn \g_@@_deprecation_off_tl
{
\tex_let:D #3 \scan_stop:
\cs_set_protected:Npn #3 #4 {#5}
@@ -1942,50 +2029,50 @@
}
}
}
- { \cs_set_protected:Npn \__debug_deprecation:nnNNpn #1#2 { } }
+ { \cs_set_protected:Npn \@@_deprecation:nnNNpn #1#2 { } }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}[int]
-% {\__debug_patch:nnNNpn, \__debug_patch_conditional:nNNpnn}
+% {\@@_patch:nnNNpn, \@@_patch_conditional:nNNpnn}
% \begin{macro}[aux]
-% {\__debug_patch_aux:nnNNnn, \__debug_patch_aux:nNNnnn}
-% When debugging is not enabled, \cs{__debug_patch:nnNNpn} and
-% \cs{__debug_patch_conditional:nNNpnn} throw the patch away.
+% {\@@_patch_aux:nnNNnn, \@@_patch_aux:nNNnnn}
+% When debugging is not enabled, \cs{@@_patch:nnNNpn} and
+% \cs{@@_patch_conditional:nNNpnn} throw the patch away.
% Otherwise they can be followed by \cs{cs_new:Npn} (or similar), and
% \cs{prg_new_conditional:Npnn} (or similar), respectively. In each
% case, grab the name of the function to be defined and its parameters
% then insert tokens before and/or after the definition.
% \begin{macrocode}
-\__debug:TF
+\@@:TF
{
- \cs_set_protected:Npn \__debug_patch:nnNNpn #1#2#3#4#5#
- { \__debug_patch_aux:nnNNnn {#1} {#2} #3 #4 {#5} }
- \cs_set_protected:Npn \__debug_patch_conditional:nNNpnn #1#2#3#4#
- { \__debug_patch_aux:nNNnnn {#1} #2 #3 {#4} }
- \cs_set_protected:Npn \__debug_patch_aux:nnNNnn #1#2#3#4#5#6
+ \cs_set_protected:Npn \@@_patch:nnNNpn #1#2#3#4#5#
+ { \@@_patch_aux:nnNNnn {#1} {#2} #3 #4 {#5} }
+ \cs_set_protected:Npn \@@_patch_conditional:nNNpnn #1#2#3#4#
+ { \@@_patch_aux:nNNnnn {#1} #2 #3 {#4} }
+ \cs_set_protected:Npn \@@_patch_aux:nnNNnn #1#2#3#4#5#6
{ #3 #4 #5 { #1 #6 #2 } }
- \cs_set_protected:Npn \__debug_patch_aux:nNNnnn #1#2#3#4#5#6
+ \cs_set_protected:Npn \@@_patch_aux:nNNnnn #1#2#3#4#5#6
{ #2 #3 #4 {#5} { #1 #6 } }
}
{
- \cs_set_protected:Npn \__debug_patch:nnNNpn #1#2 { }
- \cs_set_protected:Npn \__debug_patch_conditional:nNNpnn #1 { }
+ \cs_set_protected:Npn \@@_patch:nnNNpn #1#2 { }
+ \cs_set_protected:Npn \@@_patch_conditional:nNNpnn #1 { }
}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}[int]
-% {\__debug_patch_args:nNNpn, \__debug_patch_conditional_args:nNNpnn}
+% {\@@_patch_args:nNNpn, \@@_patch_conditional_args:nNNpnn}
% \begin{macro}[aux]
% {
-% \__debug_tmp:w,
-% \__debug_patch_args_aux:nNNnn,
-% \__debug_patch_args_aux:nNNnnn
+% \@@_tmp:w,
+% \@@_patch_args_aux:nNNnn,
+% \@@_patch_args_aux:nNNnnn
% }
-% See \cs{__debug_patch:nnNNpn}. The first argument is something like
+% See \cs{@@_patch:nnNNpn}. The first argument is something like
% |{#1}{(#2)}|. Define a temporary macro using the \meta{parameters}
% and \meta{code} of the definition that follows, then expand that
% temporary macro in front of the first argument to obtain new
@@ -1993,28 +2080,28 @@
% was directly typed in the file. To make it easy to expand in the
% definition, treat it as a \enquote{pre}-code to an empty definition.
% \begin{macrocode}
-\__debug:TF
+\@@:TF
{
- \cs_set_protected:Npn \__debug_patch_args:nNNpn #1#2#3#4#
- { \__debug_patch_args_aux:nNNnn {#1} #2 #3 {#4} }
- \cs_set_protected:Npn \__debug_patch_conditional_args:nNNpnn #1#2#3#4#
- { \__debug_patch_args_aux:nNNnnn {#1} #2 #3 {#4} }
- \cs_set_protected:Npn \__debug_patch_args_aux:nNNnn #1#2#3#4#5
+ \cs_set_protected:Npn \@@_patch_args:nNNpn #1#2#3#4#
+ { \@@_patch_args_aux:nNNnn {#1} #2 #3 {#4} }
+ \cs_set_protected:Npn \@@_patch_conditional_args:nNNpnn #1#2#3#4#
+ { \@@_patch_args_aux:nNNnnn {#1} #2 #3 {#4} }
+ \cs_set_protected:Npn \@@_patch_args_aux:nNNnn #1#2#3#4#5
{
- \cs_set:Npn \__debug_tmp:w #4 {#5}
- \exp_after:wN \__debug_patch_aux:nnNNnn \exp_after:wN
- { \__debug_tmp:w #1 } { } #2 #3 {#4} { }
+ \cs_set:Npn \@@_tmp:w #4 {#5}
+ \exp_after:wN \@@_patch_aux:nnNNnn \exp_after:wN
+ { \@@_tmp:w #1 } { } #2 #3 {#4} { }
}
- \cs_set_protected:Npn \__debug_patch_args_aux:nNNnnn #1#2#3#4#5#6
+ \cs_set_protected:Npn \@@_patch_args_aux:nNNnnn #1#2#3#4#5#6
{
- \cs_set:Npn \__debug_tmp:w #4 {#6}
- \exp_after:wN \__debug_patch_aux:nNNnnn \exp_after:wN
- { \__debug_tmp:w #1 } #2 #3 {#4} {#5} { }
+ \cs_set:Npn \@@_tmp:w #4 {#6}
+ \exp_after:wN \@@_patch_aux:nNNnnn \exp_after:wN
+ { \@@_tmp:w #1 } #2 #3 {#4} {#5} { }
}
}
{
- \cs_set_protected:Npn \__debug_patch_args:nNNpn #1 { }
- \cs_set_protected:Npn \__debug_patch_conditional_args:nNNpnn #1 { }
+ \cs_set_protected:Npn \@@_patch_args:nNNpn #1 { }
+ \cs_set_protected:Npn \@@_patch_conditional_args:nNNpnn #1 { }
}
% \end{macrocode}
% \end{macro}
@@ -2022,6 +2109,10 @@
%
% \subsection{Conditional processing and definitions}
%
+% \begin{macrocode}
+%<@@=prg>
+% \end{macrocode}
+%
% Underneath any predicate function (|_p|) or other conditional forms
% (|TF|, etc.) is a built-in logic saying that it after all of the
% testing and processing must return the \meta{state} this leaves
@@ -2070,7 +2161,7 @@
% \prg_set_protected_conditional:Npnn ,
% \prg_new_protected_conditional:Npnn ,
% }
-% \begin{macro}[aux]{\__prg_generate_conditional_parm:nnNpnn}
+% \begin{macro}[aux]{\@@_generate_conditional_parm:nnNpnn}
% The user functions for the types using parameter text from the
% programmer. The various functions only differ by which function is
% used for the assignment. For those |Npnn| type functions, we must
@@ -2082,16 +2173,16 @@
% conditionals.
% \begin{macrocode}
\cs_set_protected:Npn \prg_set_conditional:Npnn
- { \__prg_generate_conditional_parm:nnNpnn { set } { } }
+ { \@@_generate_conditional_parm:nnNpnn { set } { } }
\cs_set_protected:Npn \prg_new_conditional:Npnn
- { \__prg_generate_conditional_parm:nnNpnn { new } { } }
+ { \@@_generate_conditional_parm:nnNpnn { new } { } }
\cs_set_protected:Npn \prg_set_protected_conditional:Npnn
- { \__prg_generate_conditional_parm:nnNpnn { set } { _protected } }
+ { \@@_generate_conditional_parm:nnNpnn { set } { _protected } }
\cs_set_protected:Npn \prg_new_protected_conditional:Npnn
- { \__prg_generate_conditional_parm:nnNpnn { new } { _protected } }
-\cs_set_protected:Npn \__prg_generate_conditional_parm:nnNpnn #1#2#3#4#
+ { \@@_generate_conditional_parm:nnNpnn { new } { _protected } }
+\cs_set_protected:Npn \@@_generate_conditional_parm:nnNpnn #1#2#3#4#
{
- \__cs_split_function:NN #3 \__prg_generate_conditional:nnNnnnnn
+ \__cs_split_function:NN #3 \@@_generate_conditional:nnNnnnnn
{#1} {#2} {#4}
}
% \end{macrocode}
@@ -2107,8 +2198,8 @@
% }
% \begin{macro}[aux]
% {
-% \__prg_generate_conditional_count:nnNnn ,
-% \__prg_generate_conditional_count:nnNnnnn
+% \@@_generate_conditional_count:nnNnn ,
+% \@@_generate_conditional_count:nnNnnnn
% }
% The user functions for the types automatically inserting the correct
% parameter text based on the signature. The various functions only
@@ -2124,22 +2215,22 @@
% later.
% \begin{macrocode}
\cs_set_protected:Npn \prg_set_conditional:Nnn
- { \__prg_generate_conditional_count:nnNnn { set } { } }
+ { \@@_generate_conditional_count:nnNnn { set } { } }
\cs_set_protected:Npn \prg_new_conditional:Nnn
- { \__prg_generate_conditional_count:nnNnn { new } { } }
+ { \@@_generate_conditional_count:nnNnn { new } { } }
\cs_set_protected:Npn \prg_set_protected_conditional:Nnn
- { \__prg_generate_conditional_count:nnNnn { set } { _protected } }
+ { \@@_generate_conditional_count:nnNnn { set } { _protected } }
\cs_set_protected:Npn \prg_new_protected_conditional:Nnn
- { \__prg_generate_conditional_count:nnNnn { new } { _protected } }
-\cs_set_protected:Npn \__prg_generate_conditional_count:nnNnn #1#2#3
+ { \@@_generate_conditional_count:nnNnn { new } { _protected } }
+\cs_set_protected:Npn \@@_generate_conditional_count:nnNnn #1#2#3
{
- \__cs_split_function:NN #3 \__prg_generate_conditional_count:nnNnnnn
+ \__cs_split_function:NN #3 \@@_generate_conditional_count:nnNnnnn
{#1} {#2}
}
-\cs_set_protected:Npn \__prg_generate_conditional_count:nnNnnnn #1#2#3#4#5
+\cs_set_protected:Npn \@@_generate_conditional_count:nnNnnnn #1#2#3#4#5
{
\__cs_parm_from_arg_count:nnF
- { \__prg_generate_conditional:nnNnnnnn {#1} {#2} #3 {#4} {#5} }
+ { \@@_generate_conditional:nnNnnnnn {#1} {#2} #3 {#4} {#5} }
{ \tl_count:n {#2} }
{
\__msg_kernel_error:nnxx { kernel } { bad-number-of-arguments }
@@ -2154,8 +2245,8 @@
%
% \begin{macro}[aux]
% {
-% \__prg_generate_conditional:nnNnnnnn,
-% \__prg_generate_conditional:nnnnnnw
+% \@@_generate_conditional:nnNnnnnn,
+% \@@_generate_conditional:nnnnnnw
% }
% The workhorse here is going through a list of desired forms, \emph{i.e.},
% |p|, |TF|, |T| and |F|. The first three arguments come from splitting up
@@ -2168,7 +2259,7 @@
% replacement text which we will augment when defining the forms.
% The use of \cs{tl_to_str:n} makes the later loop more robust.
% \begin{macrocode}
-\cs_set_protected:Npn \__prg_generate_conditional:nnNnnnnn #1#2#3#4#5#6#7#8
+\cs_set_protected:Npn \@@_generate_conditional:nnNnnnnn #1#2#3#4#5#6#7#8
{
\if_meaning:w \c_false_bool #3
\__msg_kernel_error:nnx { kernel } { missing-colon }
@@ -2177,7 +2268,7 @@
\fi:
\use:x
{
- \exp_not:N \__prg_generate_conditional:nnnnnnw
+ \exp_not:N \@@_generate_conditional:nnnnnnw
\exp_not:n { {#4} {#5} {#1} {#2} {#6} {#8} }
\tl_to_str:n {#7}
\exp_not:n { , \q_recursion_tail , \q_recursion_stop }
@@ -2192,12 +2283,12 @@
% then \cs{use_none:nnnnnnn} cleans up. Otherwise, the
% error message is removed by the variant form.
% \begin{macrocode}
-\cs_set_protected:Npn \__prg_generate_conditional:nnnnnnw #1#2#3#4#5#6#7 ,
+\cs_set_protected:Npn \@@_generate_conditional:nnnnnnw #1#2#3#4#5#6#7 ,
{
\if_meaning:w \q_recursion_tail #7
\exp_after:wN \use_none_delimit_by_q_recursion_stop:w
\fi:
- \use:c { __prg_generate_ #7 _form:wnnnnnn }
+ \use:c { @@_generate_ #7 _form:wnnnnnn }
\tl_if_empty:nF {#7}
{
\__msg_kernel_error:nnxx
@@ -2207,17 +2298,17 @@
\use_none:nnnnnnn
\q_stop
{#1} {#2} {#3} {#4} {#5} {#6}
- \__prg_generate_conditional:nnnnnnw {#1} {#2} {#3} {#4} {#5} {#6}
+ \@@_generate_conditional:nnnnnnw {#1} {#2} {#3} {#4} {#5} {#6}
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}[aux]
% {
-% \__prg_generate_p_form:wnnnnnn,
-% \__prg_generate_TF_form:wnnnnnn,
-% \__prg_generate_T_form:wnnnnnn,
-% \__prg_generate_F_form:wnnnnnn
+% \@@_generate_p_form:wnnnnnn,
+% \@@_generate_TF_form:wnnnnnn,
+% \@@_generate_T_form:wnnnnnn,
+% \@@_generate_F_form:wnnnnnn
% }
% How to generate the various forms. Those functions take the
% following arguments: 1: \texttt{set} or \texttt{new}, 2: empty or
@@ -2229,7 +2320,7 @@
% version. The |p| form is only valid for expandable tests, we check
% for that by making sure that the second argument is empty.
% \begin{macrocode}
-\cs_set_protected:Npn \__prg_generate_p_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_p_form:wnnnnnn
#1 \q_stop #2#3#4#5#6#7
{
\if_meaning:w \scan_stop: #3 \scan_stop:
@@ -2246,19 +2337,19 @@
{ \token_to_str:c { #4 _p: #5 } }
}
}
-\cs_set_protected:Npn \__prg_generate_T_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_T_form:wnnnnnn
#1 \q_stop #2#3#4#5#6#7
{
\exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 T } #6
{ #7 \exp_end: \use:n \use_none:n }
}
-\cs_set_protected:Npn \__prg_generate_F_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_F_form:wnnnnnn
#1 \q_stop #2#3#4#5#6#7
{
\exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 F } #6
{ #7 \exp_end: { } }
}
-\cs_set_protected:Npn \__prg_generate_TF_form:wnnnnnn
+\cs_set_protected:Npn \@@_generate_TF_form:wnnnnnn
#1 \q_stop #2#3#4#5#6#7
{
\exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 TF } #6
@@ -2268,7 +2359,7 @@
% \end{macro}
%
% \begin{macro}{\prg_set_eq_conditional:NNn, \prg_new_eq_conditional:NNn}
-% \begin{macro}[aux]{\__prg_set_eq_conditional:NNNn}
+% \begin{macro}[aux]{\@@_set_eq_conditional:NNNn}
% The setting-equal functions. Split both functions and feed
% \Arg{name_1} \Arg{signature_1} \meta{boolean_1}
% \Arg{name_2} \Arg{signature_2} \meta{boolean_2}
@@ -2277,14 +2368,14 @@
% to a first auxiliary.
% \begin{macrocode}
\cs_set_protected:Npn \prg_set_eq_conditional:NNn
- { \__prg_set_eq_conditional:NNNn \cs_set_eq:cc }
+ { \@@_set_eq_conditional:NNNn \cs_set_eq:cc }
\cs_set_protected:Npn \prg_new_eq_conditional:NNn
- { \__prg_set_eq_conditional:NNNn \cs_new_eq:cc }
-\cs_set_protected:Npn \__prg_set_eq_conditional:NNNn #1#2#3#4
+ { \@@_set_eq_conditional:NNNn \cs_new_eq:cc }
+\cs_set_protected:Npn \@@_set_eq_conditional:NNNn #1#2#3#4
{
\use:x
{
- \exp_not:N \__prg_set_eq_conditional:nnNnnNNw
+ \exp_not:N \@@_set_eq_conditional:nnNnnNNw
\__cs_split_function:NN #2 \prg_do_nothing:
\__cs_split_function:NN #3 \prg_do_nothing:
\exp_not:N #1
@@ -2298,15 +2389,15 @@
%
% \begin{macro}[aux]
% {
-% \__prg_set_eq_conditional:nnNnnNNw ,
-% \__prg_set_eq_conditional_loop:nnnnNw
+% \@@_set_eq_conditional:nnNnnNNw ,
+% \@@_set_eq_conditional_loop:nnnnNw
% }
% \begin{macro}[aux, EXP]
% {
-% \__prg_set_eq_conditional_p_form:nnn ,
-% \__prg_set_eq_conditional_TF_form:nnn ,
-% \__prg_set_eq_conditional_T_form:nnn ,
-% \__prg_set_eq_conditional_F_form:nnn ,
+% \@@_set_eq_conditional_p_form:nnn ,
+% \@@_set_eq_conditional_TF_form:nnn ,
+% \@@_set_eq_conditional_T_form:nnn ,
+% \@@_set_eq_conditional_F_form:nnn ,
% }
% Split the function to be defined, and setup a manual clist loop over
% argument |#6| of the first auxiliary. The second auxiliary receives
@@ -2319,7 +2410,7 @@
% step in the loop, make sure that the conditional form we copy is
% defined, and copy it, otherwise abort.
% \begin{macrocode}
-\cs_set_protected:Npn \__prg_set_eq_conditional:nnNnnNNw #1#2#3#4#5#6
+\cs_set_protected:Npn \@@_set_eq_conditional:nnNnnNNw #1#2#3#4#5#6
{
\if_meaning:w \c_false_bool #3
\__msg_kernel_error:nnx { kernel } { missing-colon }
@@ -2331,14 +2422,14 @@
{ \token_to_str:c {#4} }
\exp_after:wN \use_none_delimit_by_q_recursion_stop:w
\fi:
- \__prg_set_eq_conditional_loop:nnnnNw {#1} {#2} {#4} {#5}
+ \@@_set_eq_conditional_loop:nnnnNw {#1} {#2} {#4} {#5}
}
-\cs_set_protected:Npn \__prg_set_eq_conditional_loop:nnnnNw #1#2#3#4#5#6 ,
+\cs_set_protected:Npn \@@_set_eq_conditional_loop:nnnnNw #1#2#3#4#5#6 ,
{
\if_meaning:w \q_recursion_tail #6
\exp_after:wN \use_none_delimit_by_q_recursion_stop:w
\fi:
- \use:c { __prg_set_eq_conditional_ #6 _form:wNnnnn }
+ \use:c { @@_set_eq_conditional_ #6 _form:wNnnnn }
\tl_if_empty:nF {#6}
{
\__msg_kernel_error:nnxx
@@ -2348,23 +2439,23 @@
\use_none:nnnnnn
\q_stop
#5 {#1} {#2} {#3} {#4}
- \__prg_set_eq_conditional_loop:nnnnNw {#1} {#2} {#3} {#4} #5
+ \@@_set_eq_conditional_loop:nnnnNw {#1} {#2} {#3} {#4} #5
}
\__debug_patch:nnNNpn
{ \__debug_chk_cs_exist:c { #5 _p : #6 } } { }
-\cs_set:Npn \__prg_set_eq_conditional_p_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_p_form:wNnnnn #1 \q_stop #2#3#4#5#6
{ #2 { #3 _p : #4 } { #5 _p : #6 } }
\__debug_patch:nnNNpn
{ \__debug_chk_cs_exist:c { #5 : #6 TF } } { }
-\cs_set:Npn \__prg_set_eq_conditional_TF_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_TF_form:wNnnnn #1 \q_stop #2#3#4#5#6
{ #2 { #3 : #4 TF } { #5 : #6 TF } }
\__debug_patch:nnNNpn
{ \__debug_chk_cs_exist:c { #5 : #6 T } } { }
-\cs_set:Npn \__prg_set_eq_conditional_T_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_T_form:wNnnnn #1 \q_stop #2#3#4#5#6
{ #2 { #3 : #4 T } { #5 : #6 T } }
\__debug_patch:nnNNpn
{ \__debug_chk_cs_exist:c { #5 : #6 F } } { }
-\cs_set:Npn \__prg_set_eq_conditional_F_form:wNnnnn #1 \q_stop #2#3#4#5#6
+\cs_set:Npn \@@_set_eq_conditional_F_form:wNnnnn #1 \q_stop #2#3#4#5#6
{ #2 { #3 : #4 F } { #5 : #6 F } }
% \end{macrocode}
% \end{macro}
@@ -2389,8 +2480,12 @@
%
% \subsection{Dissecting a control sequence}
%
+% \begin{macrocode}
+%<@@=cs>
+% \end{macrocode}
+%
% \begin{macro}[EXP]{\cs_to_str:N}
-% \begin{macro}[aux, EXP]{\__cs_to_str:N, \__cs_to_str:w}
+% \begin{macro}[aux, EXP]{\@@_to_str:N, \@@_to_str:w}
% This converts a control sequence into the character string of its
% name, removing the leading escape character. This turns out to be
% a non-trivial matter as there a different cases:
@@ -2411,17 +2506,17 @@
% a little more intricate still. When the escape character is printable,
% \verb*|\token_to_str:N \ | yields the escape character itself and a space.
% The character codes are different, thus the \cs{if:w} test is false,
-% and \TeX{} reads \cs{__cs_to_str:N} after turning the following
+% and \TeX{} reads \cs{@@_to_str:N} after turning the following
% control sequence into a string; this auxiliary removes the escape
% character, and stops the expansion of the initial \cs{tex_romannumeral:D}.
% The second case is that the escape character is not printable. Then
% the \cs{if:w} test is unfinished after reading a the space from
-% \verb*|\token_to_str:N \ |, and the auxiliary \cs{__cs_to_str:w}
+% \verb*|\token_to_str:N \ |, and the auxiliary \cs{@@_to_str:w}
% is expanded, feeding |-| as a second character for the test;
% the test is false, and \TeX{} skips to \cs{fi:}, then performs
% \cs{token_to_str:N}, and stops the \cs{tex_romannumeral:D} with \cs{c_zero}.
% The last case is that the escape character is itself a space. In this
-% case, the \cs{if:w} test is true, and the auxiliary \cs{__cs_to_str:w}
+% case, the \cs{if:w} test is true, and the auxiliary \cs{@@_to_str:w}
% comes into play, inserting |-\__int_value:w|, which expands \cs{c_zero}
% to the character |0|. The initial \cs{tex_romannumeral:D} then sees
% |0|, which is not a terminated number, followed by the escape character,
@@ -2440,11 +2535,11 @@
% we make this dependency explicit.
% \begin{macrocode}
\tex_romannumeral:D
- \if:w \token_to_str:N \ \__cs_to_str:w \fi:
- \exp_after:wN \__cs_to_str:N \token_to_str:N
+ \if:w \token_to_str:N \ \@@_to_str:w \fi:
+ \exp_after:wN \@@_to_str:N \token_to_str:N
}
-\cs_set:Npn \__cs_to_str:N #1 { \c_zero }
-\cs_set:Npn \__cs_to_str:w #1 \__cs_to_str:N
+\cs_set:Npn \@@_to_str:N #1 { \c_zero }
+\cs_set:Npn \@@_to_str:w #1 \@@_to_str:N
{ - \__int_value:w \fi: \exp_after:wN \c_zero }
% \end{macrocode}
% If speed is a concern we could use \tn{csstring} in \LuaTeX{}. For
@@ -2454,18 +2549,18 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}[EXP, int]{\__cs_split_function:NN}
+% \begin{macro}[EXP, int]{\@@_split_function:NN}
% \begin{macro}[aux, EXP]
-% {\__cs_split_function_auxi:w, \__cs_split_function_auxii:w}
+% {\@@_split_function_auxi:w, \@@_split_function_auxii:w}
% This function takes a function name and splits it into name with
% the escape char removed and argument specification. In addition to
% this, a third argument, a boolean \meta{true} or \meta{false} is
% returned with \meta{true} for when there is a colon in the function
% and \meta{false} if there is not. Lastly, the second argument of
-% \cs{__cs_split_function:NN} is supposed to be a function
+% \cs{@@_split_function:NN} is supposed to be a function
% taking three variables, one for name, one for signature, and one
% for the boolean. For example,
-% |\__cs_split_function:NN \foo_bar:cnx \use_i:nnn| as input
+% |\@@_split_function:NN \foo_bar:cnx \use_i:nnn| as input
% becomes |\use_i:nnn {foo_bar} {cnx} \c_true_bool|.
%
% We cannot use |:| directly as it has the wrong category code so
@@ -2482,34 +2577,34 @@
% auxiliary trims the trailing \cs{q_mark} from the function name if
% present (that is, if the original function had no colon).
% \begin{macrocode}
-\cs_set:Npx \__cs_split_function:NN #1
+\cs_set:Npx \@@_split_function:NN #1
{
\exp_not:N \exp_after:wN \exp_not:N \exp_after:wN
- \exp_not:N \exp_after:wN \exp_not:N \__cs_split_function_auxi:w
+ \exp_not:N \exp_after:wN \exp_not:N \@@_split_function_auxi:w
\exp_not:N \cs_to_str:N #1 \exp_not:N \q_mark \c_true_bool
\token_to_str:N : \exp_not:N \q_mark \c_false_bool
\exp_not:N \q_stop
}
\use:x
{
- \cs_set:Npn \exp_not:N \__cs_split_function_auxi:w
+ \cs_set:Npn \exp_not:N \@@_split_function_auxi:w
##1 \token_to_str:N : ##2 \exp_not:N \q_mark ##3##4 \exp_not:N \q_stop ##5
}
- { \__cs_split_function_auxii:w #5 #1 \q_mark \q_stop {#2} #3 }
-\cs_set:Npn \__cs_split_function_auxii:w #1#2 \q_mark #3 \q_stop
+ { \@@_split_function_auxii:w #5 #1 \q_mark \q_stop {#2} #3 }
+\cs_set:Npn \@@_split_function_auxii:w #1#2 \q_mark #3 \q_stop
{ #1 {#2} }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}[EXP, int]
-% {\__cs_get_function_name:N, \__cs_get_function_signature:N}
+% {\@@_get_function_name:N, \@@_get_function_signature:N}
% Simple wrappers.
% \begin{macrocode}
-\cs_set:Npn \__cs_get_function_name:N #1
- { \__cs_split_function:NN #1 \use_i:nnn }
-\cs_set:Npn \__cs_get_function_signature:N #1
- { \__cs_split_function:NN #1 \use_ii:nnn }
+\cs_set:Npn \@@_get_function_name:N #1
+ { \@@_split_function:NN #1 \use_i:nnn }
+\cs_set:Npn \@@_get_function_signature:N #1
+ { \@@_split_function:NN #1 \use_ii:nnn }
% \end{macrocode}
% \end{macro}
%
@@ -2715,6 +2810,10 @@
%
% \subsection{Defining new functions}
%
+% \begin{macrocode}
+%<@@=cs>
+% \end{macrocode}
+%
% \begin{macro}
% {
% \cs_new_nopar:Npn , \cs_new_nopar:Npx ,
@@ -2722,11 +2821,11 @@
% \cs_new_protected_nopar:Npn , \cs_new_protected_nopar:Npx ,
% \cs_new_protected:Npn , \cs_new_protected:Npx
% }
-% \begin{macro}[int]{\__cs_tmp:w}
+% \begin{macro}[int]{\@@_tmp:w}
% Function which check that the control sequence is free before
% defining it.
% \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2
+\cs_set:Npn \@@_tmp:w #1#2
{
\cs_set_protected:Npn #1 ##1
{
@@ -2734,14 +2833,14 @@
#2 ##1
}
}
-\__cs_tmp:w \cs_new_nopar:Npn \cs_gset_nopar:Npn
-\__cs_tmp:w \cs_new_nopar:Npx \cs_gset_nopar:Npx
-\__cs_tmp:w \cs_new:Npn \cs_gset:Npn
-\__cs_tmp:w \cs_new:Npx \cs_gset:Npx
-\__cs_tmp:w \cs_new_protected_nopar:Npn \cs_gset_protected_nopar:Npn
-\__cs_tmp:w \cs_new_protected_nopar:Npx \cs_gset_protected_nopar:Npx
-\__cs_tmp:w \cs_new_protected:Npn \cs_gset_protected:Npn
-\__cs_tmp:w \cs_new_protected:Npx \cs_gset_protected:Npx
+\@@_tmp:w \cs_new_nopar:Npn \cs_gset_nopar:Npn
+\@@_tmp:w \cs_new_nopar:Npx \cs_gset_nopar:Npx
+\@@_tmp:w \cs_new:Npn \cs_gset:Npn
+\@@_tmp:w \cs_new:Npx \cs_gset:Npx
+\@@_tmp:w \cs_new_protected_nopar:Npn \cs_gset_protected_nopar:Npn
+\@@_tmp:w \cs_new_protected_nopar:Npx \cs_gset_protected_nopar:Npx
+\@@_tmp:w \cs_new_protected:Npn \cs_gset_protected:Npn
+\@@_tmp:w \cs_new_protected:Npx \cs_gset_protected:Npx
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2763,14 +2862,14 @@
% \cs{cs_set_nopar:Npn}. This means that there might be a parameter
% string between the two arguments.
% \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2
+\cs_set:Npn \@@_tmp:w #1#2
{ \cs_new_protected_nopar:Npn #1 { \exp_args:Nc #2 } }
-\__cs_tmp:w \cs_set_nopar:cpn \cs_set_nopar:Npn
-\__cs_tmp:w \cs_set_nopar:cpx \cs_set_nopar:Npx
-\__cs_tmp:w \cs_gset_nopar:cpn \cs_gset_nopar:Npn
-\__cs_tmp:w \cs_gset_nopar:cpx \cs_gset_nopar:Npx
-\__cs_tmp:w \cs_new_nopar:cpn \cs_new_nopar:Npn
-\__cs_tmp:w \cs_new_nopar:cpx \cs_new_nopar:Npx
+\@@_tmp:w \cs_set_nopar:cpn \cs_set_nopar:Npn
+\@@_tmp:w \cs_set_nopar:cpx \cs_set_nopar:Npx
+\@@_tmp:w \cs_gset_nopar:cpn \cs_gset_nopar:Npn
+\@@_tmp:w \cs_gset_nopar:cpx \cs_gset_nopar:Npx
+\@@_tmp:w \cs_new_nopar:cpn \cs_new_nopar:Npn
+\@@_tmp:w \cs_new_nopar:cpx \cs_new_nopar:Npx
% \end{macrocode}
% \end{macro}
%
@@ -2783,12 +2882,12 @@
% Variants of the \cs{cs_set:Npn} versions which make a csname out
% of the first arguments. We may also do this globally.
% \begin{macrocode}
-\__cs_tmp:w \cs_set:cpn \cs_set:Npn
-\__cs_tmp:w \cs_set:cpx \cs_set:Npx
-\__cs_tmp:w \cs_gset:cpn \cs_gset:Npn
-\__cs_tmp:w \cs_gset:cpx \cs_gset:Npx
-\__cs_tmp:w \cs_new:cpn \cs_new:Npn
-\__cs_tmp:w \cs_new:cpx \cs_new:Npx
+\@@_tmp:w \cs_set:cpn \cs_set:Npn
+\@@_tmp:w \cs_set:cpx \cs_set:Npx
+\@@_tmp:w \cs_gset:cpn \cs_gset:Npn
+\@@_tmp:w \cs_gset:cpx \cs_gset:Npx
+\@@_tmp:w \cs_new:cpn \cs_new:Npn
+\@@_tmp:w \cs_new:cpx \cs_new:Npx
% \end{macrocode}
% \end{macro}
%
@@ -2801,12 +2900,12 @@
% Variants of the \cs{cs_set_protected_nopar:Npn} versions which make
% a csname out of the first arguments. We may also do this globally.
% \begin{macrocode}
-\__cs_tmp:w \cs_set_protected_nopar:cpn \cs_set_protected_nopar:Npn
-\__cs_tmp:w \cs_set_protected_nopar:cpx \cs_set_protected_nopar:Npx
-\__cs_tmp:w \cs_gset_protected_nopar:cpn \cs_gset_protected_nopar:Npn
-\__cs_tmp:w \cs_gset_protected_nopar:cpx \cs_gset_protected_nopar:Npx
-\__cs_tmp:w \cs_new_protected_nopar:cpn \cs_new_protected_nopar:Npn
-\__cs_tmp:w \cs_new_protected_nopar:cpx \cs_new_protected_nopar:Npx
+\@@_tmp:w \cs_set_protected_nopar:cpn \cs_set_protected_nopar:Npn
+\@@_tmp:w \cs_set_protected_nopar:cpx \cs_set_protected_nopar:Npx
+\@@_tmp:w \cs_gset_protected_nopar:cpn \cs_gset_protected_nopar:Npn
+\@@_tmp:w \cs_gset_protected_nopar:cpx \cs_gset_protected_nopar:Npx
+\@@_tmp:w \cs_new_protected_nopar:cpn \cs_new_protected_nopar:Npn
+\@@_tmp:w \cs_new_protected_nopar:cpx \cs_new_protected_nopar:Npx
% \end{macrocode}
% \end{macro}
%
@@ -2819,12 +2918,12 @@
% Variants of the \cs{cs_set_protected:Npn} versions which make a csname
% out of the first arguments. We may also do this globally.
% \begin{macrocode}
-\__cs_tmp:w \cs_set_protected:cpn \cs_set_protected:Npn
-\__cs_tmp:w \cs_set_protected:cpx \cs_set_protected:Npx
-\__cs_tmp:w \cs_gset_protected:cpn \cs_gset_protected:Npn
-\__cs_tmp:w \cs_gset_protected:cpx \cs_gset_protected:Npx
-\__cs_tmp:w \cs_new_protected:cpn \cs_new_protected:Npn
-\__cs_tmp:w \cs_new_protected:cpx \cs_new_protected:Npx
+\@@_tmp:w \cs_set_protected:cpn \cs_set_protected:Npn
+\@@_tmp:w \cs_set_protected:cpx \cs_set_protected:Npx
+\@@_tmp:w \cs_gset_protected:cpn \cs_gset_protected:Npn
+\@@_tmp:w \cs_gset_protected:cpx \cs_gset_protected:Npx
+\@@_tmp:w \cs_new_protected:cpn \cs_new_protected:Npn
+\@@_tmp:w \cs_new_protected:cpx \cs_new_protected:Npx
% \end{macrocode}
% \end{macro}
%
@@ -2893,8 +2992,12 @@
%
% \subsection{Generating parameter text from argument count}
%
-% \begin{macro}[int]{\__cs_parm_from_arg_count:nnF}
-% \begin{macro}[aux]{\__cs_parm_from_arg_count_test:nnF}
+% \begin{macrocode}
+%<@@=cs>
+% \end{macrocode}
+%
+% \begin{macro}[int]{\@@_parm_from_arg_count:nnF}
+% \begin{macro}[aux]{\@@_parm_from_arg_count_test:nnF}
% \LaTeX3 provides shorthands to define control sequences and
% conditionals with a simple parameter text, derived directly from the
% signature, or more generally from knowing the number of arguments,
@@ -2907,9 +3010,9 @@
% the functions use here are not defined yet, but will be defined
% before this function is called.
% \begin{macrocode}
-\cs_set_protected:Npn \__cs_parm_from_arg_count:nnF #1#2
+\cs_set_protected:Npn \@@_parm_from_arg_count:nnF #1#2
{
- \exp_args:Nx \__cs_parm_from_arg_count_test:nnF
+ \exp_args:Nx \@@_parm_from_arg_count_test:nnF
{
\exp_after:wN \exp_not:n
\if_case:w \__int_eval:w (#2) \__int_eval_end:
@@ -2928,7 +3031,7 @@
}
{#1}
}
-\cs_set_protected:Npn \__cs_parm_from_arg_count_test:nnF #1#2
+\cs_set_protected:Npn \@@_parm_from_arg_count_test:nnF #1#2
{
\if_meaning:w \c_false_bool #1
\exp_after:wN \use_ii:nn
@@ -2943,17 +3046,21 @@
%
% \subsection{Defining functions from a given number of arguments}
%
-% \begin{macro}[EXP, int]{\__cs_count_signature:N, \__cs_count_signature:c}
-% \begin{macro}[aux, EXP]{\__cs_count_signature:nnN}
+% \begin{macrocode}
+%<@@=cs>
+% \end{macrocode}
+%
+% \begin{macro}[EXP, int]{\@@_count_signature:N, \@@_count_signature:c}
+% \begin{macro}[aux, EXP]{\@@_count_signature:nnN}
% Counting the number of tokens in the signature, \emph{i.e.}, the
% number of arguments the function should take. Since this is not
% used in any time-critical function, we simply use \cs{tl_count:n} if
% there is a signature, otherwise $-1$ arguments to signal an error.
% We need a variant form right away.
% \begin{macrocode}
-\cs_new:Npn \__cs_count_signature:N #1
- { \int_eval:n { \__cs_split_function:NN #1 \__cs_count_signature:nnN } }
-\cs_new:Npn \__cs_count_signature:nnN #1#2#3
+\cs_new:Npn \@@_count_signature:N #1
+ { \int_eval:n { \@@_split_function:NN #1 \@@_count_signature:nnN } }
+\cs_new:Npn \@@_count_signature:nnN #1#2#3
{
\if_meaning:w \c_true_bool #3
\tl_count:n {#2}
@@ -2961,8 +3068,8 @@
-1
\fi:
}
-\cs_new:Npn \__cs_count_signature:c
- { \exp_args:Nc \__cs_count_signature:N }
+\cs_new:Npn \@@_count_signature:c
+ { \exp_args:Nc \@@_count_signature:N }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2986,7 +3093,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \cs_generate_from_arg_count:NNnn #1#2#3#4
{
- \__cs_parm_from_arg_count:nnF { \use:nnn #2 #1 } {#3}
+ \@@_parm_from_arg_count:nnF { \use:nnn #2 #1 } {#3}
{
\__msg_kernel_error:nnxx { kernel } { bad-number-of-arguments }
{ \token_to_str:N #1 } { \int_eval:n {#3} }
@@ -3007,6 +3114,10 @@
%
% \subsection{Using the signature to define functions}
%
+% \begin{macrocode}
+%<@@=cs>
+% \end{macrocode}
+%
% We can now combine some of the tools we have to provide a simple
% interface for defining functions, where the number of arguments is
% read from the signature. For instance,
@@ -3040,25 +3151,25 @@
% make it simpler by temporarily defining a function to do this for
% us.
% \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2#3
+\cs_set:Npn \@@_tmp:w #1#2#3
{
\cs_new_protected:cpx { cs_ #1 : #2 }
{
- \exp_not:N \__cs_generate_from_signature:NNn
+ \exp_not:N \@@_generate_from_signature:NNn
\exp_after:wN \exp_not:N \cs:w cs_ #1 : #3 \cs_end:
}
}
-\cs_new_protected:Npn \__cs_generate_from_signature:NNn #1#2
+\cs_new_protected:Npn \@@_generate_from_signature:NNn #1#2
{
- \__cs_split_function:NN #2 \__cs_generate_from_signature:nnNNNn
+ \@@_split_function:NN #2 \@@_generate_from_signature:nnNNNn
#1 #2
}
-\cs_new_protected:Npn \__cs_generate_from_signature:nnNNNn #1#2#3#4#5#6
+\cs_new_protected:Npn \@@_generate_from_signature:nnNNNn #1#2#3#4#5#6
{
\bool_if:NTF #3
{
\str_if_eq_x:nnF { }
- { \tl_map_function:nN {#2} \__cs_generate_from_signature:n }
+ { \tl_map_function:nN {#2} \@@_generate_from_signature:n }
{
\__msg_kernel_error:nnx { kernel } { non-base-function }
{ \token_to_str:N #5 }
@@ -3071,7 +3182,7 @@
{ \token_to_str:N #5 }
}
}
-\cs_new:Npn \__cs_generate_from_signature:n #1
+\cs_new:Npn \@@_generate_from_signature:n #1
{
\if:w n #1 \else: \if:w N #1 \else:
\if:w T #1 \else: \if:w F #1 \else: #1 \fi: \fi: \fi: \fi:
@@ -3079,30 +3190,30 @@
% \end{macrocode}
% Then we define the 24 variants beginning with |N|.
% \begin{macrocode}
-\__cs_tmp:w { set } { Nn } { Npn }
-\__cs_tmp:w { set } { Nx } { Npx }
-\__cs_tmp:w { set_nopar } { Nn } { Npn }
-\__cs_tmp:w { set_nopar } { Nx } { Npx }
-\__cs_tmp:w { set_protected } { Nn } { Npn }
-\__cs_tmp:w { set_protected } { Nx } { Npx }
-\__cs_tmp:w { set_protected_nopar } { Nn } { Npn }
-\__cs_tmp:w { set_protected_nopar } { Nx } { Npx }
-\__cs_tmp:w { gset } { Nn } { Npn }
-\__cs_tmp:w { gset } { Nx } { Npx }
-\__cs_tmp:w { gset_nopar } { Nn } { Npn }
-\__cs_tmp:w { gset_nopar } { Nx } { Npx }
-\__cs_tmp:w { gset_protected } { Nn } { Npn }
-\__cs_tmp:w { gset_protected } { Nx } { Npx }
-\__cs_tmp:w { gset_protected_nopar } { Nn } { Npn }
-\__cs_tmp:w { gset_protected_nopar } { Nx } { Npx }
-\__cs_tmp:w { new } { Nn } { Npn }
-\__cs_tmp:w { new } { Nx } { Npx }
-\__cs_tmp:w { new_nopar } { Nn } { Npn }
-\__cs_tmp:w { new_nopar } { Nx } { Npx }
-\__cs_tmp:w { new_protected } { Nn } { Npn }
-\__cs_tmp:w { new_protected } { Nx } { Npx }
-\__cs_tmp:w { new_protected_nopar } { Nn } { Npn }
-\__cs_tmp:w { new_protected_nopar } { Nx } { Npx }
+\@@_tmp:w { set } { Nn } { Npn }
+\@@_tmp:w { set } { Nx } { Npx }
+\@@_tmp:w { set_nopar } { Nn } { Npn }
+\@@_tmp:w { set_nopar } { Nx } { Npx }
+\@@_tmp:w { set_protected } { Nn } { Npn }
+\@@_tmp:w { set_protected } { Nx } { Npx }
+\@@_tmp:w { set_protected_nopar } { Nn } { Npn }
+\@@_tmp:w { set_protected_nopar } { Nx } { Npx }
+\@@_tmp:w { gset } { Nn } { Npn }
+\@@_tmp:w { gset } { Nx } { Npx }
+\@@_tmp:w { gset_nopar } { Nn } { Npn }
+\@@_tmp:w { gset_nopar } { Nx } { Npx }
+\@@_tmp:w { gset_protected } { Nn } { Npn }
+\@@_tmp:w { gset_protected } { Nx } { Npx }
+\@@_tmp:w { gset_protected_nopar } { Nn } { Npn }
+\@@_tmp:w { gset_protected_nopar } { Nx } { Npx }
+\@@_tmp:w { new } { Nn } { Npn }
+\@@_tmp:w { new } { Nx } { Npx }
+\@@_tmp:w { new_nopar } { Nn } { Npn }
+\@@_tmp:w { new_nopar } { Nx } { Npx }
+\@@_tmp:w { new_protected } { Nn } { Npn }
+\@@_tmp:w { new_protected } { Nx } { Npx }
+\@@_tmp:w { new_protected_nopar } { Nn } { Npn }
+\@@_tmp:w { new_protected_nopar } { Nx } { Npx }
% \end{macrocode}
% \end{macro}
%
@@ -3123,7 +3234,7 @@
% }
% The 24 |c| variants simply use \cs{exp_args:Nc}.
% \begin{macrocode}
-\cs_set:Npn \__cs_tmp:w #1#2
+\cs_set:Npn \@@_tmp:w #1#2
{
\cs_new_protected:cpx { cs_ #1 : c #2 }
{
@@ -3131,30 +3242,30 @@
\exp_after:wN \exp_not:N \cs:w cs_ #1 : N #2 \cs_end:
}
}
-\__cs_tmp:w { set } { n }
-\__cs_tmp:w { set } { x }
-\__cs_tmp:w { set_nopar } { n }
-\__cs_tmp:w { set_nopar } { x }
-\__cs_tmp:w { set_protected } { n }
-\__cs_tmp:w { set_protected } { x }
-\__cs_tmp:w { set_protected_nopar } { n }
-\__cs_tmp:w { set_protected_nopar } { x }
-\__cs_tmp:w { gset } { n }
-\__cs_tmp:w { gset } { x }
-\__cs_tmp:w { gset_nopar } { n }
-\__cs_tmp:w { gset_nopar } { x }
-\__cs_tmp:w { gset_protected } { n }
-\__cs_tmp:w { gset_protected } { x }
-\__cs_tmp:w { gset_protected_nopar } { n }
-\__cs_tmp:w { gset_protected_nopar } { x }
-\__cs_tmp:w { new } { n }
-\__cs_tmp:w { new } { x }
-\__cs_tmp:w { new_nopar } { n }
-\__cs_tmp:w { new_nopar } { x }
-\__cs_tmp:w { new_protected } { n }
-\__cs_tmp:w { new_protected } { x }
-\__cs_tmp:w { new_protected_nopar } { n }
-\__cs_tmp:w { new_protected_nopar } { x }
+\@@_tmp:w { set } { n }
+\@@_tmp:w { set } { x }
+\@@_tmp:w { set_nopar } { n }
+\@@_tmp:w { set_nopar } { x }
+\@@_tmp:w { set_protected } { n }
+\@@_tmp:w { set_protected } { x }
+\@@_tmp:w { set_protected_nopar } { n }
+\@@_tmp:w { set_protected_nopar } { x }
+\@@_tmp:w { gset } { n }
+\@@_tmp:w { gset } { x }
+\@@_tmp:w { gset_nopar } { n }
+\@@_tmp:w { gset_nopar } { x }
+\@@_tmp:w { gset_protected } { n }
+\@@_tmp:w { gset_protected } { x }
+\@@_tmp:w { gset_protected_nopar } { n }
+\@@_tmp:w { gset_protected_nopar } { x }
+\@@_tmp:w { new } { n }
+\@@_tmp:w { new } { x }
+\@@_tmp:w { new_nopar } { n }
+\@@_tmp:w { new_nopar } { x }
+\@@_tmp:w { new_protected } { n }
+\@@_tmp:w { new_protected } { x }
+\@@_tmp:w { new_protected_nopar } { n }
+\@@_tmp:w { new_protected_nopar } { x }
% \end{macrocode}
% \end{macro}
%
@@ -3186,8 +3297,12 @@
%
% \subsection{Diagnostic functions}
%
-% \begin{macro}[int]{\__kernel_register_show:N, \__kernel_register_show:c}
-% \begin{macro}[aux]{\__kernel_register_show_aux:n}
+% \begin{macrocode}
+%<@@=kernel>
+% \end{macrocode}
+%
+% \begin{macro}[int]{\@@_register_show:N, \@@_register_show:c}
+% \begin{macro}[aux]{\@@_register_show_aux:n}
% Simply using the \tn{showthe} primitive does not allow for
% line-wrapping, so instead use \cs{__msg_show_variable:NNNnn} (defined
% in \pkg{l3msg}). This checks that the variable exists (using
@@ -3197,26 +3312,26 @@
% \tn{currentgrouptype}) altered by the line-wrapping code would show
% wrong values.
% \begin{macrocode}
-\cs_new_protected:Npn \__kernel_register_show:N #1
- { \exp_args:No \__kernel_register_show_aux:nN { \tex_the:D #1 } #1 }
-\cs_new_protected:Npn \__kernel_register_show_aux:nN #1#2
+\cs_new_protected:Npn \@@_register_show:N #1
+ { \exp_args:No \@@_register_show_aux:nN { \tex_the:D #1 } #1 }
+\cs_new_protected:Npn \@@_register_show_aux:nN #1#2
{
\__msg_show_variable:NNNnn #2 \cs_if_exist:NTF ? { }
{ > ~ \token_to_str:N #2 = #1 }
}
-\cs_new_protected:Npn \__kernel_register_show:c
- { \exp_args:Nc \__kernel_register_show:N }
+\cs_new_protected:Npn \@@_register_show:c
+ { \exp_args:Nc \@@_register_show:N }
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}[int]{\__kernel_register_log:N, \__kernel_register_log:c}
-% Redirect the output of \cs{__kernel_register_show:N} to the log.
+% \begin{macro}[int]{\@@_register_log:N, \@@_register_log:c}
+% Redirect the output of \cs{@@_register_show:N} to the log.
% \begin{macrocode}
-\cs_new_protected:Npn \__kernel_register_log:N
- { \__msg_log_next: \__kernel_register_show:N }
-\cs_new_protected:Npn \__kernel_register_log:c
- { \exp_args:Nc \__kernel_register_log:N }
+\cs_new_protected:Npn \@@_register_log:N
+ { \__msg_log_next: \@@_register_show:N }
+\cs_new_protected:Npn \@@_register_log:c
+ { \exp_args:Nc \@@_register_log:N }
% \end{macrocode}
% \end{macro}
%
@@ -3269,38 +3384,42 @@
%
% \subsection{Breaking out of mapping functions}
%
-% \begin{macro}[EXP]{\__prg_break_point:Nn, \__prg_map_break:Nn}
+% \begin{macrocode}
+%<@@=prg>
+% \end{macrocode}
+%
+% \begin{macro}[EXP]{\@@_break_point:Nn, \@@_map_break:Nn}
% In inline mappings, the nesting level must be reset
% at the end of the mapping, even when the user decides
% to break out. This is done by putting the code that
-% must be performed as an argument of \cs{__prg_break_point:Nn}.
+% must be performed as an argument of \cs{@@_break_point:Nn}.
% The breaking functions are then defined to jump to
-% that point and perform the argument of \cs{__prg_break_point:Nn},
+% that point and perform the argument of \cs{@@_break_point:Nn},
% before the user's code (if any). There is a check that we close the
% correct loop, otherwise we continue breaking.
% \begin{macrocode}
-\cs_new_eq:NN \__prg_break_point:Nn \use_ii:nn
-\cs_new:Npn \__prg_map_break:Nn #1#2#3 \__prg_break_point:Nn #4#5
+\cs_new_eq:NN \@@_break_point:Nn \use_ii:nn
+\cs_new:Npn \@@_map_break:Nn #1#2#3 \@@_break_point:Nn #4#5
{
#5
\if_meaning:w #1 #4
\exp_after:wN \use_iii:nnn
\fi:
- \__prg_map_break:Nn #1 {#2}
+ \@@_map_break:Nn #1 {#2}
}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\__prg_break_point:}
-% \begin{macro}{\__prg_break:, \__prg_break:n}
-% Very simple analogues of \cs{__prg_break_point:Nn} and
-% \cs{__prg_map_break:Nn}, for use in fast short-term recursions which
+% \begin{macro}{\@@_break_point:}
+% \begin{macro}{\@@_break:, \@@_break:n}
+% Very simple analogues of \cs{@@_break_point:Nn} and
+% \cs{@@_map_break:Nn}, for use in fast short-term recursions which
% are not mappings, do not need to support nesting, and in which
% nothing has to be done at the end of the loop.
% \begin{macrocode}
-\cs_new_eq:NN \__prg_break_point: \prg_do_nothing:
-\cs_new:Npn \__prg_break: #1 \__prg_break_point: { }
-\cs_new:Npn \__prg_break:n #1#2 \__prg_break_point: {#1}
+\cs_new_eq:NN \@@_break_point: \prg_do_nothing:
+\cs_new:Npn \@@_break: #1 \@@_break_point: { }
+\cs_new:Npn \@@_break:n #1#2 \@@_break_point: {#1}
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index a1a14e30bdf..f0ed38dd901 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -138,7 +138,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -227,7 +227,7 @@
%
% \begin{macrocode}
%<*initex|package>
-%<@@=expl>
+%<@@=kernel>
% \end{macrocode}
%
% \subsection{Format-specific code}
@@ -597,7 +597,7 @@
\catcode 124 = \the\catcode 124\relax
\catcode 126 = \the\catcode 126\relax
\endlinechar = \the\endlinechar\relax
- \chardef\csname\detokenize{l__kernel_expl_bool}\endcsname = 0\relax
+ \chardef\csname\detokenize{l_@@_expl_bool}\endcsname = 0\relax
}%
%</package>
% \end{macrocode}
@@ -617,10 +617,10 @@
\endlinechar = 32\relax
% \end{macrocode}
%
-% \begin{variable}{\l__kernel_expl_bool}
+% \begin{variable}{\l_@@_expl_bool}
% The status for experimental code syntax: this is on at present.
% \begin{macrocode}
-\chardef\l__kernel_expl_bool = 1\relax
+\chardef\l_@@_expl_bool = 1\relax
% \end{macrocode}
%\end{variable}
%
@@ -634,7 +634,7 @@
% \begin{macrocode}
\protected \def \ExplSyntaxOn
{
- \bool_if:NF \l__kernel_expl_bool
+ \bool_if:NF \l_@@_expl_bool
{
\cs_set_protected:Npx \ExplSyntaxOff
{
@@ -649,7 +649,7 @@
\char_set_catcode:nn { 126 } { \char_value_catcode:n { 126 } }
\tex_endlinechar:D =
\tex_the:D \tex_endlinechar:D \scan_stop:
- \bool_set_false:N \l__kernel_expl_bool
+ \bool_set_false:N \l_@@_expl_bool
\cs_set_protected:Npn \ExplSyntaxOff { }
}
}
@@ -663,7 +663,7 @@
\char_set_catcode_other:n { 124 } % pipe
\char_set_catcode_space:n { 126 } % tilde
\tex_endlinechar:D = 32 \scan_stop:
- \bool_set_true:N \l__kernel_expl_bool
+ \bool_set_true:N \l_@@_expl_bool
}
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 4a1d1b34627..d864dc55b4c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -67,7 +67,7 @@
% \cs{box_clear:N} \meta{box}
% \end{syntax}
% Clears the content of the \meta{box} by setting the box equal to
-% \cs{c_void_box}.
+% \cs{c_empty_box}.
% \end{function}
%
% \begin{function}
@@ -139,13 +139,34 @@
% \end{texnote}
% \end{function}
%
-% \begin{function}{\box_use_clear:N, \box_use_clear:c}
+% \begin{function}{\box_use_drop:N, \box_use_drop:c}
% \begin{syntax}
-% \cs{box_use_clear:N} \meta{box}
+% \cs{box_use_drop:N} \meta{box}
% \end{syntax}
% Inserts the current content of the \meta{box} onto the current
-% list for typesetting, then globally clears the content of the
-% \meta{box}.
+% list for typesetting. The \meta{box} is then cleared at the group level the
+% box was set at, \emph{i.e.}~the current content is \enquote{dropped} entirely.
+% For example, with
+% \begin{verbatim}
+% \hbox_set:Nn \l_tmpa_box { A }
+% \group_begin:
+% \hbox_set:Nn \l_tmpa_box { B }
+% \group_begin:
+% \box_use_drop:N \l_tmpa_box
+% \group_end:
+% \box_show:N \l_tmpa_box
+% \group_end:
+% \box_show:N \l_tmpa_box
+% \end{verbatim}
+% the first use of |\box_show:N| will show an entirely cleared (void) box, and the
+% second will show the letter |A| in the box.
+%
+% This function is useful as boxes can contain an open-ended amount of material. As
+% such, they can have a significant memory impact on \TeX{}. At the same time, it is
+% often the case that once a box has been inserted, it is no longer needed at all.
+% Using |\box_use_drop:N| in these circumstances therefore offers improved memory
+% use and performance. It should therefore be preferred over \cs{box_use:N} where
+% it is clear that the content is no longer needed in the variable.
% \begin{texnote}
% This is the \TeX{} primitive \tn{box}.
% \end{texnote}
@@ -170,7 +191,7 @@
% \end{syntax}
% This function operates in horizontal mode, and inserts the
% material specified by the \meta{box function}
-% such that its reference point is displaced vertical by the given
+% such that its reference point is displaced vertically by the given
% \meta{dimexpr} from the reference point for typesetting, up
% or down as appropriate. The \meta{box function} should be
% a box operation such as |\box_use:N \<box>| or a \enquote{raw}
@@ -283,6 +304,9 @@
% \begin{variable}[updated = 2012-11-04]{\c_empty_box}
% This is a permanently empty box, which is neither set as horizontal
% nor vertical.
+% \begin{texnote}
+% At the \TeX{} level this is a void box.
+% \end{texnote}
% \end{variable}
%
% \section{Scratch boxes}
@@ -604,7 +628,7 @@
% \end{texnote}
% \end{function}
%
-% \subsection{Affine transformations}
+% \section{Affine transformations}
%
% Affine transformations are changes which (informally) preserve straight
% lines. Simple translations are affine transformations, but are better handled
@@ -968,14 +992,14 @@
%
% \subsection{Using boxes}
%
-% \begin{macro}{\box_use_clear:N, \box_use_clear:c}
+% \begin{macro}{\box_use_drop:N, \box_use_drop:c}
% \begin{macro}{\box_use:N, \box_use:c}
% Using a \meta{box}. These are just \TeX{} primitives with meaningful
% names.
% \begin{macrocode}
-\cs_new_eq:NN \box_use_clear:N \tex_box:D
+\cs_new_eq:NN \box_use_drop:N \tex_box:D
\cs_new_eq:NN \box_use:N \tex_copy:D
-\cs_generate_variant:Nn \box_use_clear:N { c }
+\cs_generate_variant:Nn \box_use_drop:N { c }
\cs_generate_variant:Nn \box_use:N { c }
% \end{macrocode}
% \end{macro}
@@ -1166,7 +1190,7 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{Horizontal mode boxes}
+% \subsection{Horizontal mode boxes}
%
% \begin{macro}{\hbox:n}
% \testfile{m3box002.lvt}
@@ -1629,7 +1653,7 @@
\box_set_dp:Nn \l_@@_internal_box { -\l_@@_bottom_new_dim }
\box_set_wd:Nn \l_@@_internal_box
{ \l_@@_right_new_dim - \l_@@_left_new_dim }
- \box_use:N \l_@@_internal_box
+ \box_use_drop:N \l_@@_internal_box
}
% \end{macrocode}
% \end{macro}
@@ -1982,7 +2006,7 @@
\hbox_to_wd:nn { \l_@@_right_new_dim }
{
\tex_kern:D \l_@@_right_new_dim
- \box_use:N \l_@@_internal_box
+ \box_use_drop:N \l_@@_internal_box
\tex_hss:D
}
}
@@ -1991,7 +2015,7 @@
\hbox:n
{
\tex_kern:D \c_zero_dim
- \box_use:N \l_@@_internal_box
+ \box_use_drop:N \l_@@_internal_box
\tex_hss:D
}
}
@@ -2002,6 +2026,7 @@
% \subsection{Deprecated functions}
%
% \begin{macro}[deprecated = 2018-12-31]{\box_resize:Nnn, \box_resize:cnn}
+% \begin{macro}[deprecated = 2018-12-31]{\box_use_clear:N, \box_use_clear:c}
% \begin{macrocode}
\__debug_deprecation:nnNNpn
{ 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:Nnn }
@@ -2011,8 +2036,15 @@
{ 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:cnn }
\cs_new_protected:Npn \box_resize:cnn
{ \box_resize_to_wd_and_ht_plus_dp:cnn }
+\__debug_deprecation:nnNNpn
+ { 2018-12-31 } { \box_use_clear:N }
+\cs_new_protected:Npn \box_use_clear:N { \box_use_drop:N }
+\__debug_deprecation:nnNNpn
+ { 2018-12-31 } { \box_use_clear:c }
+\cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c }
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macrocode}
%</initex|package>
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index fd489351898..69e62bdd4f6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -84,7 +84,7 @@
%
% \section{Additions to \pkg{l3basics}}
%
-% \begin{function}[added = 2017-07-16]{\debug_on:n, \debug_off:n}
+% \begin{function}[added = 2017-07-16, updated = 2017-08-02]{\debug_on:n, \debug_off:n}
% \begin{syntax}
% \cs{debug_on:n} |{| \meta{comma-separated list} |}|
% \cs{debug_off:n} |{| \meta{comma-separated list} |}|
@@ -95,6 +95,8 @@
% \begin{itemize}
% \item \texttt{check-declarations} that checks all \pkg{expl3}
% variables used were previously declared;
+% \item \texttt{check-expressions} that checks integer, dimension,
+% skip, and muskip expressions are not terminated prematurely;
% \item \texttt{deprecation} that makes soon-to-be-deprecated commands produce errors;
% \item \texttt{log-functions} that logs function definitions;
% \end{itemize}
@@ -935,6 +937,11 @@
%
% \section{Additions to \pkg{l3token}}
%
+% \begin{variable}[added = 2017-08-07]{\c_catcode_active_space_tl}
+% Token list containing one character with category code $13$,
+% (\enquote{active}), and character code $32$ (space).
+% \end{variable}
+%
% \begin{function}[TF, updated = 2012-12-20]{\peek_N_type:}
% \begin{syntax}
% \cs{peek_N_type:TF} \Arg{true code} \Arg{false code}
@@ -2151,6 +2158,8 @@
% Unpack the primitive.
% \begin{macrocode}
\cs_new:Npn \sys_rand_seed: { \tex_the:D \pdftex_randomseed:D }
+\cs_if_exist:NF \pdftex_randomseed:D
+ { \cs_set:Npn \sys_rand_seed: { 0 } }
% \end{macrocode}
% \end{macro}
%
@@ -4060,6 +4069,21 @@
%
% \subsection{Additions to \pkg{l3token}}
%
+% \begin{variable}{\c_catcode_active_space_tl}
+% While \cs{__char_generate:nn} can produce active characters in some
+% engines it cannot in general. It would be possible to simply change
+% the catcode of space but then the code would need to avoid all
+% spaces, making it quite unreadable. Instead we use the primitive
+% \cs{tex_lowercase:D} trick.
+% \begin{macrocode}
+\group_begin:
+ \char_set_catcode_active:N *
+ \char_set_lccode:nn { `* } { `\ }
+ \tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } }
+\group_end:
+% \end{macrocode}
+% \end{variable}
+%
% \begin{macrocode}
%<@@=peek>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index 12ab4c124e7..ba3b678a69d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index 3ac5cea4fb7..e54553b75b9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -1352,7 +1352,7 @@
\mode_leave_vertical:
\@@_align:NnnNnnnnN \c_empty_coffin { H } { l }
#1 {#2} {#3} {#4} {#5} \l_@@_aligned_coffin
- \box_use:N \l_@@_aligned_coffin
+ \box_use_drop:N \l_@@_aligned_coffin
}
\cs_generate_variant:Nn \coffin_typeset:Nnnnn { c }
% \end{macrocode}
@@ -1565,7 +1565,7 @@
\prop_remove:Nn \l_@@_display_poles_prop {##1}
\@@_display_handles_aux:nnnnnn {##1} ##2 {#2}
}
- \box_use:N \l_@@_display_coffin
+ \box_use_drop:N \l_@@_display_coffin
}
% \end{macrocode}
% For each pole there is a check for an intersection, which here does
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
index 22ed6f1d24e..607189ea12a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index e6adade9d42..d4bec2770ee 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index 985518e71e4..7bf43aa7933 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
@@ -70,14 +70,14 @@ and all files in that bundle must be distributed together.
% This isn't included in the typeset documentation because it's a bit
% ugly:
%<*class>
-\ProvidesExplClass{l3doc}{2017/07/19}{}
+\ProvidesExplClass{l3doc}{2017/09/18}{}
{L3 Experimental documentation class}
%</class>
% \fi
%
% \title{The \cls{l3doc} class}
% \author{\Team}
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
% \maketitle
% \tableofcontents
%
@@ -564,6 +564,19 @@ and all files in that bundle must be distributed together.
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}[int]{\l_@@_detect_internals_bool, \l_@@_detect_internals_tl}
+% If \texttt{true}, \pkg{l3doc} will check for use of internal
+% commands \cs[no-index]{__\meta{pkg}_\ldots{}} from other packages in
+% \texttt{macrocode} environments and in~\cs{cs}. Also a token list
+% to store temporary data for this purpose.
+% \begin{macrocode}
+\bool_new:N \l_@@_detect_internals_bool
+\bool_set_true:N \l_@@_detect_internals_bool
+\tl_new:N \l_@@_detect_internals_tl
+\tl_new:N \l_@@_detect_internals_cs_tl
+% \end{macrocode}
+% \end{variable}
+%
% \begin{variable}[int]{\l_@@_output_coffin}
% The \env{function} environment is typeset by combining coffins
% containing various pieces (function names, description, \emph{etc.})
@@ -968,9 +981,23 @@ and all files in that bundle must be distributed together.
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}[int]{\@@_trim_right:Nn, \@@_trim_right:No}
+% Removes all material after |#2| in the token list variable~|#1|.
+% Perhaps combine with \cs{@@_key_trim_module:n}?
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_trim_right:Nn #1#2
+ {
+ \cs_set:Npn \@@_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} }
+ \tl_set:Nx #1 { \exp_after:wN \@@_tmp:w #1 #2 \q_stop }
+ }
+\cs_generate_variant:Nn \@@_trim_right:Nn { No }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[int]{\@@_replace_at_at:N}
% \begin{macro}[aux]{\@@_replace_at_at_aux:Nn}
-% The goal is to replace |@@| by the current module name. If there is
+% The goal is to replace |@@| by the current module name. We take
+% advantage of this function to also detect internal macros. If there is
% no \meta{module~name}, do nothing. Otherwise, sanitize the catcodes
% of |@| and~|_|, temporarily change |@@@@| to |aa| with different catcodes and later to |@@|, and replace |__@@| and |_@@| and |@@| by
% |__|\meta{module~name}. The result contains |_| with category
@@ -982,6 +1009,11 @@ and all files in that bundle must be distributed together.
% \begin{macrocode}
\cs_new_protected:Npn \@@_replace_at_at:N #1
{
+ \bool_if:NT \l_@@_in_implementation_bool
+ {
+ \bool_if:NT \l_@@_detect_internals_bool
+ { \@@_detect_internals:N #1 }
+ }
\tl_if_empty:NF \g_@@_module_name_tl
{
\exp_args:NNo \@@_replace_at_at_aux:Nn
@@ -1002,6 +1034,48 @@ and all files in that bundle must be distributed together.
% \end{macro}
% \end{macro}
%
+% \begin{macro}[aux]{\@@_detect_internals:N}
+% After splitting at each |__| and removing the leading item from the
+% sequence (since it does not follow |__|), remove everything after
+% any space or end-of-line to get a good approximation of the control
+% sequence (for the warning message), then remove anything after any
+% |_| or |:| (with either catcode) to get the module name. If that
+% name is not empty and differs from the current |@@| name then
+% complain.
+% \begin{macrocode}
+\group_begin:
+ \char_set_catcode_active:N \^^M
+ \cs_new_protected:Npn \@@_detect_internals:N #1
+ {
+ \tl_set_eq:NN \l_@@_detect_internals_tl #1
+ \tl_replace_all:Non \l_@@_detect_internals_tl { \token_to_str:N _ } { _ }
+ \seq_set_split:NnV \l_@@_tmpa_seq { _ _ } \l_@@_detect_internals_tl
+ \seq_pop_left:NN \l_@@_tmpa_seq \l_@@_detect_internals_tl
+ \seq_map_variable:NNn \l_@@_tmpa_seq \l_@@_detect_internals_tl
+ {
+ \@@_trim_right:No \l_@@_detect_internals_tl
+ \c_catcode_active_space_tl
+ \@@_trim_right:Nn \l_@@_detect_internals_tl ^^M
+ \tl_set_eq:NN \l_@@_detect_internals_cs_tl \l_@@_detect_internals_tl
+ \@@_trim_right:Nn \l_@@_detect_internals_tl _
+ \@@_trim_right:Nn \l_@@_detect_internals_tl :
+ \@@_trim_right:No \l_@@_detect_internals_tl { \token_to_str:N : }
+ \tl_if_empty:NF \l_@@_detect_internals_tl
+ {
+ \str_if_eq:NNF \l_@@_detect_internals_tl \g_@@_module_name_tl
+ {
+ \msg_warning:nnxxx { l3doc } { foreign-internal }
+ { \tl_to_str:N \l_@@_detect_internals_cs_tl }
+ { \tl_to_str:N \l_@@_detect_internals_tl }
+ { \tl_to_str:N \g_@@_module_name_tl }
+ }
+ }
+ }
+ }
+\group_end:
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[aux,rEXP]{\@@_signature_base_form:n}
% \begin{macro}[aux]
% {\@@_signature_base_form_aux:n, \@@_signature_base_form_aux:w}
@@ -1244,6 +1318,12 @@ and all files in that bundle must be distributed together.
The~'syntax'~environment~should~only~be~used~once~in~
a~'function'~environment.
}
+\msg_new:nnn { l3doc } { foreign-internal }
+ {
+ A~control~sequence~of~the~form~'...__#1'~was~used.~
+ It~should~only~be~used~in~the~module~'#2'
+ \tl_if_empty:nF {#3} { ,~not~in~'#3' } .
+ }
% \end{macrocode}
%
% \subsection{Options and configuration}
@@ -2355,7 +2435,7 @@ and all files in that bundle must be distributed together.
\cs_new_protected:Npn \@@_function_assemble:
{
\hcoffin_set:Nn \l_@@_syntax_coffin
- { \box_use_clear:N \g_@@_syntax_box }
+ { \box_use_drop:N \g_@@_syntax_box }
\bool_if:NTF \l_@@_long_name_bool
{
\coffin_join:NnnNnnnn
@@ -2568,7 +2648,7 @@ and all files in that bundle must be distributed together.
{
\begin{quote}
\mode_leave_vertical:
- \box_use_clear:N \g_@@_syntax_box
+ \box_use_drop:N \g_@@_syntax_box
\end{quote}
}
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 90b78be08e2..4a0838811a6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
index ff1503c1200..0ec3f3bd451 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -519,7 +519,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \@@_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \@@_color_pickup: { } }
}
@@ -555,10 +555,13 @@
% \end{macrocode}
%
% \begin{macro}[aux]{\@@_color_pickup:}
-% \begin{macro}[aux]{\@@_color_pickup_aux:}
+% \begin{macro}[aux]{\@@_color_pickup_aux:w}
% The current color in driver-dependent format: pick up the package-mode
% data if available. We end up converting back and forward in this route as
% we store our color data in \texttt{dvips} format.
+% The \tn{current@color} needs to be \texttt{x}-expanded before
+% \cs{@@_color_pickup_aux:w} breaks it apart, because for instance
+% \pkg{xcolor} sets it to be instructions to generate a colour
% \begin{macrocode}
%<*package>
\AtBeginDocument
@@ -567,24 +570,23 @@
{
\cs_new_protected:Npn \@@_color_pickup:
{
- \tl_set:Nx \l__color_current_tl
- {
- \exp_after:wN \exp_after:wN\exp_after:wN
- \@@_color_pickup_aux:w \exp_after:wN
- \current@color \c_space_tl 0 ~ 0 ~ 0 \q_stop
- }
+ \exp_last_unbraced:Nx \@@_color_pickup_aux:w
+ { \current@color } ~ 0 ~ 0 ~ 0 \q_stop
}
\cs_new:Npn \@@_color_pickup_aux:w #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop
{
- \str_if_eq:nnTF {#2} { g }
- { gray ~ #1 }
+ \tl_set:Nx \l__color_current_tl
{
- \str_if_eq:nnTF {#4} { rg }
- { rgb ~ #1 ~ #2 ~ #3 }
+ \str_if_eq:nnTF {#2} { g }
+ { gray ~ #1 }
{
- \str_if_eq:nnTF {#5} { k }
- { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
- { gray ~ #1 }
+ \str_if_eq:nnTF {#4} { rg }
+ { rgb ~ #1 ~ #2 ~ #3 }
+ {
+ \str_if_eq:nnTF {#5} { k }
+ { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
+ { gray ~ #1 }
+ }
}
}
}
@@ -1218,12 +1220,10 @@
\tex_special:D { ps::~72~Resolution~div~72~VResolution~div~neg~scale }
\tex_special:D { ps::~magscale~{1~DVImag~div~dup~scale}~if }
\tex_special:D { ps::~l3x~neg~l3y~neg~translate }
- \group_begin:
- \box_set_wd:Nn #1 { 0pt }
- \box_set_ht:Nn #1 { 0pt }
- \box_set_dp:Nn #1 { 0pt }
- \box_use:N #1
- \group_end:
+ \box_set_wd:Nn #1 { 0pt }
+ \box_set_ht:Nn #1 { 0pt }
+ \box_set_dp:Nn #1 { 0pt }
+ \box_use:N #1
\tex_special:D { ps::[begin] }
\@@_scope_end:
}
@@ -1339,7 +1339,7 @@
\cs_new_protected:Npn \@@_box_use_rotate:Nn #1#2
{
\@@_scope_begin:
- \box_set_wd:Nn #1 \c_zero_dim
+ \box_set_wd:Nn #1 { 0pt }
\fp_set:Nn \l_@@_cos_fp { round ( cosd ( #2 ) , 5 ) }
\fp_compare:nNnT \l_@@_cos_fp = \c_zero_fp
{ \fp_zero:N \l_@@_cos_fp }
@@ -1733,11 +1733,11 @@
(#1)
\bool_lazy_or:nnT
{ \l__image_interpolate_bool }
- { ! \tl_if_empty_p:N \l__imge_decode_tl }
+ { ! \tl_if_empty_p:N \l__image_decode_tl }
{
<<
- \tl_if_empty:NF \l__imge_decode_tl
- { /Decode~[ \l__imge_decode_tl ] }
+ \tl_if_empty:NF \l__image_decode_tl
+ { /Decode~[ \l__image_decode_tl ] }
\bool_if:NT \l__image_interpolate_bool
{ /Interpolate~true> }
>>
@@ -2849,12 +2849,10 @@
transform="scale(-1,1)~translate({?x},{?y})~scale(-1,-1)"
>
}
- \group_begin:
- \box_set_wd:Nn #1 { 0pt }
- \box_set_ht:Nn #1 { 0pt }
- \box_set_dp:Nn #1 { 0pt }
- \box_use:N #1
- \group_end:
+ \box_set_wd:Nn #1 { 0pt }
+ \box_set_ht:Nn #1 { 0pt }
+ \box_set_dp:Nn #1 { 0pt }
+ \box_use:N #1
\@@_literal:n { </g> }
\@@_scope_end:
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 0dda580c27d..e827abfe9fb 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index c81711dcf85..0e77624c53e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -600,11 +600,6 @@
% and MiK\TeX{} systems.
% \end{variable}
%
-% \begin{variable}[added = 2011-09-05]{\c_catcode_other_space_tl}
-% Token list containing one character with category code $12$,
-% (\enquote{other}), and character code $32$ (space).
-% \end{variable}
-%
% \subsection{Constant input--output streams}
%
% \begin{variable}{\c_term_ior}
@@ -1754,13 +1749,6 @@
% used by the messaging system, but is designed such that it is
% available for other uses.
%
-% \begin{macro}{\c_catcode_other_space_tl}
-% Create a space with category code $12$: an \enquote{other} space.
-% \begin{macrocode}
-\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } }
-% \end{macrocode}
-% \end{macro}
-%
% \begin{variable}{\l_iow_line_count_int}
% This is the \enquote{raw} number of characters in a line which
% can be written to the terminal.
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
index 6cfa0e15a21..68cbf77b5f1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index e53a8a9093f..4bc2f1f4743 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index 2721cac127b..274d2f750b6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
index 8bfe95207c5..2ea5e64ce04 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -703,8 +703,9 @@
% \[
% \left(
% \sum_{i=1}^{4} \meta{X_i} \cdot 10^{-4i} \cdot 10^{-\meta{shift}}
-% - \meta{X'_1} \cdot 10^{-8} + \meta{X'_2} \cdot 10^{-16}
% \right)
+% - \bigl( \meta{X'_1} \cdot 10^{-8} + \meta{X'_2} \cdot 10^{-16} \bigr)
+% = 0.\meta{extra-digits} \cdot 10^{-16}
% \in [0,10^{-16}).
% \]
% To round properly later, we need to remember some information
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index 10b3b57f62b..10cf0931ff1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index 5ba88f3c664..78d31ec345e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index edbfdcc57d6..e348db5a2f1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -868,24 +868,22 @@
% Raising a number $a$ to a power $b$ leads to many distinct situations.
% \begin{center}\def\abs#1{\lvert #1\rvert}
% \begin{tabular}{>{$}c<{$}|*8{>{$}l<{$}}}
-% a^b &-\infty &(-\infty,-0) &-p/5^k &\pm 0 &+p/5^k &(0,\infty) &+\infty &\nan \\ \hline
+% a^b &-\infty &(-\infty,-0) &-\text{integer} &\pm 0 &+\text{integer} &(0,\infty) &+\infty &\nan \\ \hline
% +\infty &+0 &\multicolumn{2}{c}{$+0$} &+1 &\multicolumn{2}{c}{$+\infty$} &+\infty &\nan \\
% (1,\infty) &+0 &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+1 &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+\infty &\nan \\
% +1 &+1 &\multicolumn{2}{c}{$+1$} &+1 &\multicolumn{2}{c}{$+1$} &+1 &+1 \\
% (0,1) &+\infty &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+1 &\multicolumn{2}{c}{$+\abs{a}^{b}$} &+0 &\nan \\
% +0 &+\infty &\multicolumn{2}{c}{$+\infty$} &+1 &\multicolumn{2}{c}{$+0$} &+0 &\nan \\
-% -0 &+\infty &\nan &(-1)^p\infty &+1 &(-1)^p 0 &+0 &+0 &\nan \\
-% (-1,0) &+\infty &\nan &(-1)^p\abs{a}^{b} &+1 &(-1)^p\abs{a}^{b} &\nan &+0 &\nan \\
-% -1 &+1 &\nan &(-1)^p &+1 &(-1)^p &\nan &+1 &\nan \\
-% (-\infty,-1) &+0 &\nan &(-1)^p\abs{a}^{b} &+1 &(-1)^p\abs{a}^{b} &\nan &+\infty &\nan \\
-% -\infty &+0 &+0 &(-1)^p 0 &+1 &(-1)^p\infty &\nan &+\infty &\nan \\
+% -0 &+\infty &\nan &(-1)^b\infty &+1 &(-1)^b 0 &+0 &+0 &\nan \\
+% (-1,0) &+\infty &\nan &(-1)^b\abs{a}^{b} &+1 &(-1)^b\abs{a}^{b} &\nan &+0 &\nan \\
+% -1 &+1 &\nan &(-1)^b &+1 &(-1)^b &\nan &+1 &\nan \\
+% (-\infty,-1) &+0 &\nan &(-1)^b\abs{a}^{b} &+1 &(-1)^b\abs{a}^{b} &\nan &+\infty &\nan \\
+% -\infty &+0 &+0 &(-1)^b 0 &+1 &(-1)^b\infty &\nan &+\infty &\nan \\
% \nan &\nan &\nan &\nan &+1 &\nan &\nan &\nan &\nan \\
% \end{tabular}
% \end{center}
% We distinguished in this table the cases of finite (positive or
-% negative) exponents of the form $b=p/q$ with $q$~odd (hence
-% necessarily a power of~$5$), as $(-1)^{p/q}=(-1)^p$ is defined in that
-% case.
+% negative) integer exponents, as $(-1)^b$ is defined in that case.
% One peculiarity of this operation is that $\nan^0 = 1^\nan = 1$,
% because this relation is obeyed for any number, even $\pm\infty$.
%
@@ -1189,22 +1187,18 @@
% \begin{macro}[aux, rEXP]
% {
% \@@_pow_neg_case:w, \@@_pow_neg_case_aux:nnnnn,
-% \@@_pow_neg_case_aux:w
+% \@@_pow_neg_case_aux:Nnnw
% }
% This function expects a floating point number, and determines its
% \enquote{parity}. It should be used after \cs{if_case:w} or in an
-% integer expression. It gives $-1$ if the number is an even integer
-% divided by some power of~$5$, $0$~if the number is an odd integer
-% divided by some power of~$5$, and $1$~otherwise. Zeros and
+% integer expression. It gives $-1$ if the number is an even integer,
+% $0$~if the number is an odd integer, and $1$~otherwise. Zeros and
% $\pm\infty$ are even (because very large finite floating points are
% even), while \texttt{nan} is a non-integer. The sign of normal
-% numbers is irrelevant to parity. The idea is to repeatedly multiply
-% the number by~$5$ (by halving the mantissa and shifting the
-% exponent) until the mantissa is odd (this can only happen at most
-% $53$ times since $2^{54}>10^{16}$): if the resulting exponent is
-% larger than $16$ the parity is even, if it is exactly $16$ the
-% parity is odd, and otherwise we should return~$1$. Of course there
-% is a shortcut: we stop as soon as the exponent exceeds~$16$.
+% numbers is irrelevant to parity. After \cs{@@_decimate:nNnnnn} the
+% argument |#1| of \cs{@@_pow_neg_case_aux:Nnnw} is a rounding digit,
+% |0|~if and only if the number was an integer, and |#3| is the $8$
+% least significant digits of that integer.
% \begin{macrocode}
\cs_new:Npn \@@_pow_neg_case:w \s_@@ \@@_chk:w #1#2#3;
{
@@ -1217,25 +1211,25 @@
\exp_stop_f:
}
\cs_new:Npn \@@_pow_neg_case_aux:nnnnn #1#2#3#4#5
- { \@@_pow_neg_case_aux:w #1 ; #2 #3 ; #4 #5 ; }
-\cs_new:Npn \@@_pow_neg_case_aux:w #1 ; #2 ; #3 ;
{
\if_int_compare:w #1 > \c_@@_prec_int
-1
\else:
+ \@@_decimate:nNnnnn { \c_@@_prec_int - #1 }
+ \@@_pow_neg_case_aux:Nnnw
+ {#2} {#3} {#4} {#5}
+ \fi:
+ }
+\cs_new:Npn \@@_pow_neg_case_aux:Nnnw #1#2#3#4 ;
+ {
+ \if_meaning:w 0 #1
\if_int_odd:w #3 \exp_stop_f:
- \if_int_compare:w #1 = \c_@@_prec_int
- 0
- \else:
- 1
- \fi:
+ 0
\else:
- \exp_after:wN \@@_pow_neg_case_aux:w
- \__int_value:w \__int_eval:w #1 + 1 \exp_after:wN ;
- \__int_value:w \__int_eval:w (#2 + 1) / 2 - 1 \exp_after:wN ;
- \__int_value:w \__int_eval:w
- \if_int_odd:w #2 \exp_stop_f: 5000 0000 + \fi: #3 / 2 ;
+ -1
\fi:
+ \else:
+ 1
\fi:
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index 5553fc4c5cb..7164feefe1e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index 26f18c3c1e2..c29dd3dc182 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index cd0bf745c9d..bbc9101c4b6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index 28e006e3a19..2497c281e3c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index 87a59147606..a8717cdb21c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index 15834540953..301b665bc18 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
index 0af1408ec84..8e01ee8fe91 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index e4e0e69724d..dd852a596d8 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -932,8 +932,8 @@
% operation is right associative, hence \texttt{2 ** 2 ** 3} equals
% $2^{2^{3}} = 256$. If \meta{operand_1} is negative or $-0$ then:
% the result's sign is $+$ if the \meta{operand_2} is infinite and
-% $(-1)^p$ if the \meta{operand_2} is $p/q$ with $p$ integer and $q$
-% odd; the result is $+0$ if
+% $(-1)^p$ if the \meta{operand_2} is $p/5^q$ with $p$, $q$ integers;
+% the result is $+0$ if
% |abs(|\meta{operand_1}|)^|\meta{operand_2} evaluates to zero; in
% other cases the \enquote{invalid operation} exception occurs because
% the sign cannot be determined. \enquote{Division by zero} occurs
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index 26155d7526d..96ee0d939f1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -1010,7 +1010,8 @@
% or directly in the input stream.
% When debugging, use parentheses to catch early termination.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_eval:n } }
\cs_new:Npn \int_eval:n #1
{ \@@_value:w \@@_eval:w #1 \@@_eval_end: }
% \end{macrocode}
@@ -1028,7 +1029,8 @@
% evaluation. The absolute value is obtained by removing a leading
% sign if any. All three functions expand in two steps.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_abs:n } }
\cs_new:Npn \int_abs:n #1
{
\@@_value:w \exp_after:wN \@@_abs:N
@@ -1037,7 +1039,11 @@
}
\cs_new:Npn \@@_abs:N #1
{ \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_max:nn }
+ { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_max:nn }
+ }
\cs_set:Npn \int_max:nn #1#2
{
\@@_value:w \exp_after:wN \@@_maxmin:wwN
@@ -1046,7 +1052,11 @@
>
\exp_stop_f:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_min:nn }
+ { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_min:nn }
+ }
\cs_set:Npn \int_min:nn #1#2
{
\@@_value:w \exp_after:wN \@@_maxmin:wwN
@@ -1091,7 +1101,11 @@
% truncating behaviour that we want. The details are thanks to Heiko
% Oberdiek: getting things right in all cases is not so easy.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_div_truncate:nn }
+ { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_div_truncate:nn }
+ }
\cs_new:Npn \int_div_truncate:nn #1#2
{
\@@_value:w \@@_eval:w
@@ -1121,7 +1135,11 @@
% \end{macrocode}
% Finally there's the modulus operation.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_mod:nn }
+ { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_mod:nn }
+ }
\cs_new:Npn \int_mod:nn #1#2
{
\@@_value:w \@@_eval:w \exp_after:wN \@@_mod:ww
@@ -1168,6 +1186,8 @@
% set up code to determine what can be done. No full engine testing just yet
% so everything is a little awkward.
% \begin{macrocode}
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_const:Nn } }
\cs_new_protected:Npn \int_const:Nn #1#2
{
\int_compare:nNnTF {#2} < \c_zero
@@ -1184,7 +1204,7 @@
{
\__chk_if_free_cs:N #1
\tex_global:D \@@_constdef:Nw #1 =
- \@@_eval:w (#2) \@@_eval_end:
+ \@@_eval:w #2 \@@_eval_end:
}
}
}
@@ -1274,10 +1294,12 @@
% \UnitTested
% Adding and subtracting to and from a counter \ldots
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_add:Nn } }
\cs_new_protected:Npn \int_add:Nn #1#2
{ \tex_advance:D #1 by \@@_eval:w #2 \@@_eval_end: }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_sub:Nn } }
\cs_new_protected:Npn \int_sub:Nn #1#2
{ \tex_advance:D #1 by - \@@_eval:w #2 \@@_eval_end: }
\cs_new_protected:Npn \int_gadd:Nn
@@ -1331,7 +1353,8 @@
% if they are not defined. Thus there is no need for the checking
% code seen with token list variables.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_set:Nn } }
\cs_new_protected:Npn \int_set:Nn #1#2
{ #1 ~ \@@_eval:w #2 \@@_eval_end: }
\cs_new_protected:Npn \int_gset:Nn { \tex_global:D \int_set:Nn }
@@ -1536,7 +1559,12 @@
% \UnitTested
% More efficient but less natural in typing.
% \begin{macrocode}
-\__debug_patch_conditional_args:nNNpnn { { (#1) \@@_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_compare:nNn }
+ { \@@_eval_end: #2 }
+ { \__debug_chk_expr:nNnN {#3} \@@_eval:w { } \int_compare:nNn }
+ }
\prg_new_conditional:Npnn \int_compare:nNn #1#2#3 { p , T , F , TF }
{
\if_int_compare:w \@@_eval:w #1 #2 \@@_eval:w #3 \@@_eval_end:
@@ -1595,7 +1623,8 @@
% \UnitTested
% A predicate function.
% \begin{macrocode}
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_if_odd:n } }
\prg_new_conditional:Npnn \int_if_odd:n #1 { p , T , F , TF}
{
\if_int_odd:w \@@_eval:w #1 \@@_eval_end:
@@ -1604,7 +1633,8 @@
\prg_return_false:
\fi:
}
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_if_even:n } }
\prg_new_conditional:Npnn \int_if_even:n #1 { p , T , F , TF}
{
\if_int_odd:w \@@_eval:w #1 \@@_eval_end:
@@ -1720,7 +1750,12 @@
% step size of zero before checking the sign, but we optimize for the
% most frequent case (positive step).
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } { (#3) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \int_step_function:nnnN }
+ { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \int_step_function:nnnN }
+ { \__debug_chk_expr:nNnN {#3} \@@_eval:w { } \int_step_function:nnnN }
+ }
\cs_new:Npn \int_step_function:nnnN #1#2#3
{
\exp_after:wN \@@_step:wwwN
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index 19c924b2018..0117e34f979 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index f1a5202abad..5d3fa1a6cef 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index c0b66d51732..9841a478ea6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index 582db1433c5..25333097495 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -1959,6 +1959,7 @@
'\iow_char:N\\debug_off:n'~only~accept~the~arguments~
'check-declarations',~'deprecation',~'log-functions',~not~'#1'.
}
+ \@@_kernel_new:nnn { kernel } { expr } { '#2'~in~#1 }
\@@_kernel_new:nnnn { kernel } { non-declared-variable }
{ The~variable~#1~has~not~been~declared~\msg_line_context:. }
{
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index c540774860c..751b4dea1b2 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -85,9 +85,10 @@
%<*initex|package>
% \end{macrocode}
%
-% No prefix substitution here.
+% The prefix here is \texttt{kernel}. A few places need |@@| to be left
+% as is; this is obtained as |@@@@|.
% \begin{macrocode}
-%<@@=>
+%<@@=kernel>
% \end{macrocode}
%
% The code here simply renames all of the primitives to new, internal,
@@ -109,16 +110,16 @@
% \end{macrocode}
%
% Everything is inside a (rather long) group, which keeps
-% \cs{__kernel_primitive:NN} trapped.
+% \cs{@@_primitive:NN} trapped.
% \begin{macrocode}
\begingroup
% \end{macrocode}
%
-% \begin{macro}[aux]{\__kernel_primitive:NN}
+% \begin{macro}[aux]{\@@_primitive:NN}
% A temporary function to actually do the renaming. This also allows the
% original names to be removed in format mode.
% \begin{macrocode}
- \long \def \__kernel_primitive:NN #1#2
+ \long \def \@@_primitive:NN #1#2
{
\tex_global:D \tex_let:D #2 #1
%<*initex>
@@ -140,406 +141,406 @@
% These are given modified new names, so that they may be entered
% without catcode tricks.
% \begin{macrocode}
- \__kernel_primitive:NN \ \tex_space:D
- \__kernel_primitive:NN \/ \tex_italiccorrection:D
- \__kernel_primitive:NN \- \tex_hyphen:D
+ \@@_primitive:NN \ \tex_space:D
+ \@@_primitive:NN \/ \tex_italiccorrection:D
+ \@@_primitive:NN \- \tex_hyphen:D
% \end{macrocode}
%
% Now all the other primitives.
% \begin{macrocode}
- \__kernel_primitive:NN \above \tex_above:D
- \__kernel_primitive:NN \abovedisplayshortskip \tex_abovedisplayshortskip:D
- \__kernel_primitive:NN \abovedisplayskip \tex_abovedisplayskip:D
- \__kernel_primitive:NN \abovewithdelims \tex_abovewithdelims:D
- \__kernel_primitive:NN \accent \tex_accent:D
- \__kernel_primitive:NN \adjdemerits \tex_adjdemerits:D
- \__kernel_primitive:NN \advance \tex_advance:D
- \__kernel_primitive:NN \afterassignment \tex_afterassignment:D
- \__kernel_primitive:NN \aftergroup \tex_aftergroup:D
- \__kernel_primitive:NN \atop \tex_atop:D
- \__kernel_primitive:NN \atopwithdelims \tex_atopwithdelims:D
- \__kernel_primitive:NN \badness \tex_badness:D
- \__kernel_primitive:NN \baselineskip \tex_baselineskip:D
- \__kernel_primitive:NN \batchmode \tex_batchmode:D
- \__kernel_primitive:NN \begingroup \tex_begingroup:D
- \__kernel_primitive:NN \belowdisplayshortskip \tex_belowdisplayshortskip:D
- \__kernel_primitive:NN \belowdisplayskip \tex_belowdisplayskip:D
- \__kernel_primitive:NN \binoppenalty \tex_binoppenalty:D
- \__kernel_primitive:NN \botmark \tex_botmark:D
- \__kernel_primitive:NN \box \tex_box:D
- \__kernel_primitive:NN \boxmaxdepth \tex_boxmaxdepth:D
- \__kernel_primitive:NN \brokenpenalty \tex_brokenpenalty:D
- \__kernel_primitive:NN \catcode \tex_catcode:D
- \__kernel_primitive:NN \char \tex_char:D
- \__kernel_primitive:NN \chardef \tex_chardef:D
- \__kernel_primitive:NN \cleaders \tex_cleaders:D
- \__kernel_primitive:NN \closein \tex_closein:D
- \__kernel_primitive:NN \closeout \tex_closeout:D
- \__kernel_primitive:NN \clubpenalty \tex_clubpenalty:D
- \__kernel_primitive:NN \copy \tex_copy:D
- \__kernel_primitive:NN \count \tex_count:D
- \__kernel_primitive:NN \countdef \tex_countdef:D
- \__kernel_primitive:NN \cr \tex_cr:D
- \__kernel_primitive:NN \crcr \tex_crcr:D
- \__kernel_primitive:NN \csname \tex_csname:D
- \__kernel_primitive:NN \day \tex_day:D
- \__kernel_primitive:NN \deadcycles \tex_deadcycles:D
- \__kernel_primitive:NN \def \tex_def:D
- \__kernel_primitive:NN \defaulthyphenchar \tex_defaulthyphenchar:D
- \__kernel_primitive:NN \defaultskewchar \tex_defaultskewchar:D
- \__kernel_primitive:NN \delcode \tex_delcode:D
- \__kernel_primitive:NN \delimiter \tex_delimiter:D
- \__kernel_primitive:NN \delimiterfactor \tex_delimiterfactor:D
- \__kernel_primitive:NN \delimitershortfall \tex_delimitershortfall:D
- \__kernel_primitive:NN \dimen \tex_dimen:D
- \__kernel_primitive:NN \dimendef \tex_dimendef:D
- \__kernel_primitive:NN \discretionary \tex_discretionary:D
- \__kernel_primitive:NN \displayindent \tex_displayindent:D
- \__kernel_primitive:NN \displaylimits \tex_displaylimits:D
- \__kernel_primitive:NN \displaystyle \tex_displaystyle:D
- \__kernel_primitive:NN \displaywidowpenalty \tex_displaywidowpenalty:D
- \__kernel_primitive:NN \displaywidth \tex_displaywidth:D
- \__kernel_primitive:NN \divide \tex_divide:D
- \__kernel_primitive:NN \doublehyphendemerits \tex_doublehyphendemerits:D
- \__kernel_primitive:NN \dp \tex_dp:D
- \__kernel_primitive:NN \dump \tex_dump:D
- \__kernel_primitive:NN \edef \tex_edef:D
- \__kernel_primitive:NN \else \tex_else:D
- \__kernel_primitive:NN \emergencystretch \tex_emergencystretch:D
- \__kernel_primitive:NN \end \tex_end:D
- \__kernel_primitive:NN \endcsname \tex_endcsname:D
- \__kernel_primitive:NN \endgroup \tex_endgroup:D
- \__kernel_primitive:NN \endinput \tex_endinput:D
- \__kernel_primitive:NN \endlinechar \tex_endlinechar:D
- \__kernel_primitive:NN \eqno \tex_eqno:D
- \__kernel_primitive:NN \errhelp \tex_errhelp:D
- \__kernel_primitive:NN \errmessage \tex_errmessage:D
- \__kernel_primitive:NN \errorcontextlines \tex_errorcontextlines:D
- \__kernel_primitive:NN \errorstopmode \tex_errorstopmode:D
- \__kernel_primitive:NN \escapechar \tex_escapechar:D
- \__kernel_primitive:NN \everycr \tex_everycr:D
- \__kernel_primitive:NN \everydisplay \tex_everydisplay:D
- \__kernel_primitive:NN \everyhbox \tex_everyhbox:D
- \__kernel_primitive:NN \everyjob \tex_everyjob:D
- \__kernel_primitive:NN \everymath \tex_everymath:D
- \__kernel_primitive:NN \everypar \tex_everypar:D
- \__kernel_primitive:NN \everyvbox \tex_everyvbox:D
- \__kernel_primitive:NN \exhyphenpenalty \tex_exhyphenpenalty:D
- \__kernel_primitive:NN \expandafter \tex_expandafter:D
- \__kernel_primitive:NN \fam \tex_fam:D
- \__kernel_primitive:NN \fi \tex_fi:D
- \__kernel_primitive:NN \finalhyphendemerits \tex_finalhyphendemerits:D
- \__kernel_primitive:NN \firstmark \tex_firstmark:D
- \__kernel_primitive:NN \floatingpenalty \tex_floatingpenalty:D
- \__kernel_primitive:NN \font \tex_font:D
- \__kernel_primitive:NN \fontdimen \tex_fontdimen:D
- \__kernel_primitive:NN \fontname \tex_fontname:D
- \__kernel_primitive:NN \futurelet \tex_futurelet:D
- \__kernel_primitive:NN \gdef \tex_gdef:D
- \__kernel_primitive:NN \global \tex_global:D
- \__kernel_primitive:NN \globaldefs \tex_globaldefs:D
- \__kernel_primitive:NN \halign \tex_halign:D
- \__kernel_primitive:NN \hangafter \tex_hangafter:D
- \__kernel_primitive:NN \hangindent \tex_hangindent:D
- \__kernel_primitive:NN \hbadness \tex_hbadness:D
- \__kernel_primitive:NN \hbox \tex_hbox:D
- \__kernel_primitive:NN \hfil \tex_hfil:D
- \__kernel_primitive:NN \hfill \tex_hfill:D
- \__kernel_primitive:NN \hfilneg \tex_hfilneg:D
- \__kernel_primitive:NN \hfuzz \tex_hfuzz:D
- \__kernel_primitive:NN \hoffset \tex_hoffset:D
- \__kernel_primitive:NN \holdinginserts \tex_holdinginserts:D
- \__kernel_primitive:NN \hrule \tex_hrule:D
- \__kernel_primitive:NN \hsize \tex_hsize:D
- \__kernel_primitive:NN \hskip \tex_hskip:D
- \__kernel_primitive:NN \hss \tex_hss:D
- \__kernel_primitive:NN \ht \tex_ht:D
- \__kernel_primitive:NN \hyphenation \tex_hyphenation:D
- \__kernel_primitive:NN \hyphenchar \tex_hyphenchar:D
- \__kernel_primitive:NN \hyphenpenalty \tex_hyphenpenalty:D
- \__kernel_primitive:NN \if \tex_if:D
- \__kernel_primitive:NN \ifcase \tex_ifcase:D
- \__kernel_primitive:NN \ifcat \tex_ifcat:D
- \__kernel_primitive:NN \ifdim \tex_ifdim:D
- \__kernel_primitive:NN \ifeof \tex_ifeof:D
- \__kernel_primitive:NN \iffalse \tex_iffalse:D
- \__kernel_primitive:NN \ifhbox \tex_ifhbox:D
- \__kernel_primitive:NN \ifhmode \tex_ifhmode:D
- \__kernel_primitive:NN \ifinner \tex_ifinner:D
- \__kernel_primitive:NN \ifmmode \tex_ifmmode:D
- \__kernel_primitive:NN \ifnum \tex_ifnum:D
- \__kernel_primitive:NN \ifodd \tex_ifodd:D
- \__kernel_primitive:NN \iftrue \tex_iftrue:D
- \__kernel_primitive:NN \ifvbox \tex_ifvbox:D
- \__kernel_primitive:NN \ifvmode \tex_ifvmode:D
- \__kernel_primitive:NN \ifvoid \tex_ifvoid:D
- \__kernel_primitive:NN \ifx \tex_ifx:D
- \__kernel_primitive:NN \ignorespaces \tex_ignorespaces:D
- \__kernel_primitive:NN \immediate \tex_immediate:D
- \__kernel_primitive:NN \indent \tex_indent:D
- \__kernel_primitive:NN \input \tex_input:D
- \__kernel_primitive:NN \inputlineno \tex_inputlineno:D
- \__kernel_primitive:NN \insert \tex_insert:D
- \__kernel_primitive:NN \insertpenalties \tex_insertpenalties:D
- \__kernel_primitive:NN \interlinepenalty \tex_interlinepenalty:D
- \__kernel_primitive:NN \jobname \tex_jobname:D
- \__kernel_primitive:NN \kern \tex_kern:D
- \__kernel_primitive:NN \language \tex_language:D
- \__kernel_primitive:NN \lastbox \tex_lastbox:D
- \__kernel_primitive:NN \lastkern \tex_lastkern:D
- \__kernel_primitive:NN \lastpenalty \tex_lastpenalty:D
- \__kernel_primitive:NN \lastskip \tex_lastskip:D
- \__kernel_primitive:NN \lccode \tex_lccode:D
- \__kernel_primitive:NN \leaders \tex_leaders:D
- \__kernel_primitive:NN \left \tex_left:D
- \__kernel_primitive:NN \lefthyphenmin \tex_lefthyphenmin:D
- \__kernel_primitive:NN \leftskip \tex_leftskip:D
- \__kernel_primitive:NN \leqno \tex_leqno:D
- \__kernel_primitive:NN \let \tex_let:D
- \__kernel_primitive:NN \limits \tex_limits:D
- \__kernel_primitive:NN \linepenalty \tex_linepenalty:D
- \__kernel_primitive:NN \lineskip \tex_lineskip:D
- \__kernel_primitive:NN \lineskiplimit \tex_lineskiplimit:D
- \__kernel_primitive:NN \long \tex_long:D
- \__kernel_primitive:NN \looseness \tex_looseness:D
- \__kernel_primitive:NN \lower \tex_lower:D
- \__kernel_primitive:NN \lowercase \tex_lowercase:D
- \__kernel_primitive:NN \mag \tex_mag:D
- \__kernel_primitive:NN \mark \tex_mark:D
- \__kernel_primitive:NN \mathaccent \tex_mathaccent:D
- \__kernel_primitive:NN \mathbin \tex_mathbin:D
- \__kernel_primitive:NN \mathchar \tex_mathchar:D
- \__kernel_primitive:NN \mathchardef \tex_mathchardef:D
- \__kernel_primitive:NN \mathchoice \tex_mathchoice:D
- \__kernel_primitive:NN \mathclose \tex_mathclose:D
- \__kernel_primitive:NN \mathcode \tex_mathcode:D
- \__kernel_primitive:NN \mathinner \tex_mathinner:D
- \__kernel_primitive:NN \mathop \tex_mathop:D
- \__kernel_primitive:NN \mathopen \tex_mathopen:D
- \__kernel_primitive:NN \mathord \tex_mathord:D
- \__kernel_primitive:NN \mathpunct \tex_mathpunct:D
- \__kernel_primitive:NN \mathrel \tex_mathrel:D
- \__kernel_primitive:NN \mathsurround \tex_mathsurround:D
- \__kernel_primitive:NN \maxdeadcycles \tex_maxdeadcycles:D
- \__kernel_primitive:NN \maxdepth \tex_maxdepth:D
- \__kernel_primitive:NN \meaning \tex_meaning:D
- \__kernel_primitive:NN \medmuskip \tex_medmuskip:D
- \__kernel_primitive:NN \message \tex_message:D
- \__kernel_primitive:NN \mkern \tex_mkern:D
- \__kernel_primitive:NN \month \tex_month:D
- \__kernel_primitive:NN \moveleft \tex_moveleft:D
- \__kernel_primitive:NN \moveright \tex_moveright:D
- \__kernel_primitive:NN \mskip \tex_mskip:D
- \__kernel_primitive:NN \multiply \tex_multiply:D
- \__kernel_primitive:NN \muskip \tex_muskip:D
- \__kernel_primitive:NN \muskipdef \tex_muskipdef:D
- \__kernel_primitive:NN \newlinechar \tex_newlinechar:D
- \__kernel_primitive:NN \noalign \tex_noalign:D
- \__kernel_primitive:NN \noboundary \tex_noboundary:D
- \__kernel_primitive:NN \noexpand \tex_noexpand:D
- \__kernel_primitive:NN \noindent \tex_noindent:D
- \__kernel_primitive:NN \nolimits \tex_nolimits:D
- \__kernel_primitive:NN \nonscript \tex_nonscript:D
- \__kernel_primitive:NN \nonstopmode \tex_nonstopmode:D
- \__kernel_primitive:NN \nulldelimiterspace \tex_nulldelimiterspace:D
- \__kernel_primitive:NN \nullfont \tex_nullfont:D
- \__kernel_primitive:NN \number \tex_number:D
- \__kernel_primitive:NN \omit \tex_omit:D
- \__kernel_primitive:NN \openin \tex_openin:D
- \__kernel_primitive:NN \openout \tex_openout:D
- \__kernel_primitive:NN \or \tex_or:D
- \__kernel_primitive:NN \outer \tex_outer:D
- \__kernel_primitive:NN \output \tex_output:D
- \__kernel_primitive:NN \outputpenalty \tex_outputpenalty:D
- \__kernel_primitive:NN \over \tex_over:D
- \__kernel_primitive:NN \overfullrule \tex_overfullrule:D
- \__kernel_primitive:NN \overline \tex_overline:D
- \__kernel_primitive:NN \overwithdelims \tex_overwithdelims:D
- \__kernel_primitive:NN \pagedepth \tex_pagedepth:D
- \__kernel_primitive:NN \pagefilllstretch \tex_pagefilllstretch:D
- \__kernel_primitive:NN \pagefillstretch \tex_pagefillstretch:D
- \__kernel_primitive:NN \pagefilstretch \tex_pagefilstretch:D
- \__kernel_primitive:NN \pagegoal \tex_pagegoal:D
- \__kernel_primitive:NN \pageshrink \tex_pageshrink:D
- \__kernel_primitive:NN \pagestretch \tex_pagestretch:D
- \__kernel_primitive:NN \pagetotal \tex_pagetotal:D
- \__kernel_primitive:NN \par \tex_par:D
- \__kernel_primitive:NN \parfillskip \tex_parfillskip:D
- \__kernel_primitive:NN \parindent \tex_parindent:D
- \__kernel_primitive:NN \parshape \tex_parshape:D
- \__kernel_primitive:NN \parskip \tex_parskip:D
- \__kernel_primitive:NN \patterns \tex_patterns:D
- \__kernel_primitive:NN \pausing \tex_pausing:D
- \__kernel_primitive:NN \penalty \tex_penalty:D
- \__kernel_primitive:NN \postdisplaypenalty \tex_postdisplaypenalty:D
- \__kernel_primitive:NN \predisplaypenalty \tex_predisplaypenalty:D
- \__kernel_primitive:NN \predisplaysize \tex_predisplaysize:D
- \__kernel_primitive:NN \pretolerance \tex_pretolerance:D
- \__kernel_primitive:NN \prevdepth \tex_prevdepth:D
- \__kernel_primitive:NN \prevgraf \tex_prevgraf:D
- \__kernel_primitive:NN \radical \tex_radical:D
- \__kernel_primitive:NN \raise \tex_raise:D
- \__kernel_primitive:NN \read \tex_read:D
- \__kernel_primitive:NN \relax \tex_relax:D
- \__kernel_primitive:NN \relpenalty \tex_relpenalty:D
- \__kernel_primitive:NN \right \tex_right:D
- \__kernel_primitive:NN \righthyphenmin \tex_righthyphenmin:D
- \__kernel_primitive:NN \rightskip \tex_rightskip:D
- \__kernel_primitive:NN \romannumeral \tex_romannumeral:D
- \__kernel_primitive:NN \scriptfont \tex_scriptfont:D
- \__kernel_primitive:NN \scriptscriptfont \tex_scriptscriptfont:D
- \__kernel_primitive:NN \scriptscriptstyle \tex_scriptscriptstyle:D
- \__kernel_primitive:NN \scriptspace \tex_scriptspace:D
- \__kernel_primitive:NN \scriptstyle \tex_scriptstyle:D
- \__kernel_primitive:NN \scrollmode \tex_scrollmode:D
- \__kernel_primitive:NN \setbox \tex_setbox:D
- \__kernel_primitive:NN \setlanguage \tex_setlanguage:D
- \__kernel_primitive:NN \sfcode \tex_sfcode:D
- \__kernel_primitive:NN \shipout \tex_shipout:D
- \__kernel_primitive:NN \show \tex_show:D
- \__kernel_primitive:NN \showbox \tex_showbox:D
- \__kernel_primitive:NN \showboxbreadth \tex_showboxbreadth:D
- \__kernel_primitive:NN \showboxdepth \tex_showboxdepth:D
- \__kernel_primitive:NN \showlists \tex_showlists:D
- \__kernel_primitive:NN \showthe \tex_showthe:D
- \__kernel_primitive:NN \skewchar \tex_skewchar:D
- \__kernel_primitive:NN \skip \tex_skip:D
- \__kernel_primitive:NN \skipdef \tex_skipdef:D
- \__kernel_primitive:NN \spacefactor \tex_spacefactor:D
- \__kernel_primitive:NN \spaceskip \tex_spaceskip:D
- \__kernel_primitive:NN \span \tex_span:D
- \__kernel_primitive:NN \special \tex_special:D
- \__kernel_primitive:NN \splitbotmark \tex_splitbotmark:D
- \__kernel_primitive:NN \splitfirstmark \tex_splitfirstmark:D
- \__kernel_primitive:NN \splitmaxdepth \tex_splitmaxdepth:D
- \__kernel_primitive:NN \splittopskip \tex_splittopskip:D
- \__kernel_primitive:NN \string \tex_string:D
- \__kernel_primitive:NN \tabskip \tex_tabskip:D
- \__kernel_primitive:NN \textfont \tex_textfont:D
- \__kernel_primitive:NN \textstyle \tex_textstyle:D
- \__kernel_primitive:NN \the \tex_the:D
- \__kernel_primitive:NN \thickmuskip \tex_thickmuskip:D
- \__kernel_primitive:NN \thinmuskip \tex_thinmuskip:D
- \__kernel_primitive:NN \time \tex_time:D
- \__kernel_primitive:NN \toks \tex_toks:D
- \__kernel_primitive:NN \toksdef \tex_toksdef:D
- \__kernel_primitive:NN \tolerance \tex_tolerance:D
- \__kernel_primitive:NN \topmark \tex_topmark:D
- \__kernel_primitive:NN \topskip \tex_topskip:D
- \__kernel_primitive:NN \tracingcommands \tex_tracingcommands:D
- \__kernel_primitive:NN \tracinglostchars \tex_tracinglostchars:D
- \__kernel_primitive:NN \tracingmacros \tex_tracingmacros:D
- \__kernel_primitive:NN \tracingonline \tex_tracingonline:D
- \__kernel_primitive:NN \tracingoutput \tex_tracingoutput:D
- \__kernel_primitive:NN \tracingpages \tex_tracingpages:D
- \__kernel_primitive:NN \tracingparagraphs \tex_tracingparagraphs:D
- \__kernel_primitive:NN \tracingrestores \tex_tracingrestores:D
- \__kernel_primitive:NN \tracingstats \tex_tracingstats:D
- \__kernel_primitive:NN \uccode \tex_uccode:D
- \__kernel_primitive:NN \uchyph \tex_uchyph:D
- \__kernel_primitive:NN \underline \tex_underline:D
- \__kernel_primitive:NN \unhbox \tex_unhbox:D
- \__kernel_primitive:NN \unhcopy \tex_unhcopy:D
- \__kernel_primitive:NN \unkern \tex_unkern:D
- \__kernel_primitive:NN \unpenalty \tex_unpenalty:D
- \__kernel_primitive:NN \unskip \tex_unskip:D
- \__kernel_primitive:NN \unvbox \tex_unvbox:D
- \__kernel_primitive:NN \unvcopy \tex_unvcopy:D
- \__kernel_primitive:NN \uppercase \tex_uppercase:D
- \__kernel_primitive:NN \vadjust \tex_vadjust:D
- \__kernel_primitive:NN \valign \tex_valign:D
- \__kernel_primitive:NN \vbadness \tex_vbadness:D
- \__kernel_primitive:NN \vbox \tex_vbox:D
- \__kernel_primitive:NN \vcenter \tex_vcenter:D
- \__kernel_primitive:NN \vfil \tex_vfil:D
- \__kernel_primitive:NN \vfill \tex_vfill:D
- \__kernel_primitive:NN \vfilneg \tex_vfilneg:D
- \__kernel_primitive:NN \vfuzz \tex_vfuzz:D
- \__kernel_primitive:NN \voffset \tex_voffset:D
- \__kernel_primitive:NN \vrule \tex_vrule:D
- \__kernel_primitive:NN \vsize \tex_vsize:D
- \__kernel_primitive:NN \vskip \tex_vskip:D
- \__kernel_primitive:NN \vsplit \tex_vsplit:D
- \__kernel_primitive:NN \vss \tex_vss:D
- \__kernel_primitive:NN \vtop \tex_vtop:D
- \__kernel_primitive:NN \wd \tex_wd:D
- \__kernel_primitive:NN \widowpenalty \tex_widowpenalty:D
- \__kernel_primitive:NN \write \tex_write:D
- \__kernel_primitive:NN \xdef \tex_xdef:D
- \__kernel_primitive:NN \xleaders \tex_xleaders:D
- \__kernel_primitive:NN \xspaceskip \tex_xspaceskip:D
- \__kernel_primitive:NN \year \tex_year:D
+ \@@_primitive:NN \above \tex_above:D
+ \@@_primitive:NN \abovedisplayshortskip \tex_abovedisplayshortskip:D
+ \@@_primitive:NN \abovedisplayskip \tex_abovedisplayskip:D
+ \@@_primitive:NN \abovewithdelims \tex_abovewithdelims:D
+ \@@_primitive:NN \accent \tex_accent:D
+ \@@_primitive:NN \adjdemerits \tex_adjdemerits:D
+ \@@_primitive:NN \advance \tex_advance:D
+ \@@_primitive:NN \afterassignment \tex_afterassignment:D
+ \@@_primitive:NN \aftergroup \tex_aftergroup:D
+ \@@_primitive:NN \atop \tex_atop:D
+ \@@_primitive:NN \atopwithdelims \tex_atopwithdelims:D
+ \@@_primitive:NN \badness \tex_badness:D
+ \@@_primitive:NN \baselineskip \tex_baselineskip:D
+ \@@_primitive:NN \batchmode \tex_batchmode:D
+ \@@_primitive:NN \begingroup \tex_begingroup:D
+ \@@_primitive:NN \belowdisplayshortskip \tex_belowdisplayshortskip:D
+ \@@_primitive:NN \belowdisplayskip \tex_belowdisplayskip:D
+ \@@_primitive:NN \binoppenalty \tex_binoppenalty:D
+ \@@_primitive:NN \botmark \tex_botmark:D
+ \@@_primitive:NN \box \tex_box:D
+ \@@_primitive:NN \boxmaxdepth \tex_boxmaxdepth:D
+ \@@_primitive:NN \brokenpenalty \tex_brokenpenalty:D
+ \@@_primitive:NN \catcode \tex_catcode:D
+ \@@_primitive:NN \char \tex_char:D
+ \@@_primitive:NN \chardef \tex_chardef:D
+ \@@_primitive:NN \cleaders \tex_cleaders:D
+ \@@_primitive:NN \closein \tex_closein:D
+ \@@_primitive:NN \closeout \tex_closeout:D
+ \@@_primitive:NN \clubpenalty \tex_clubpenalty:D
+ \@@_primitive:NN \copy \tex_copy:D
+ \@@_primitive:NN \count \tex_count:D
+ \@@_primitive:NN \countdef \tex_countdef:D
+ \@@_primitive:NN \cr \tex_cr:D
+ \@@_primitive:NN \crcr \tex_crcr:D
+ \@@_primitive:NN \csname \tex_csname:D
+ \@@_primitive:NN \day \tex_day:D
+ \@@_primitive:NN \deadcycles \tex_deadcycles:D
+ \@@_primitive:NN \def \tex_def:D
+ \@@_primitive:NN \defaulthyphenchar \tex_defaulthyphenchar:D
+ \@@_primitive:NN \defaultskewchar \tex_defaultskewchar:D
+ \@@_primitive:NN \delcode \tex_delcode:D
+ \@@_primitive:NN \delimiter \tex_delimiter:D
+ \@@_primitive:NN \delimiterfactor \tex_delimiterfactor:D
+ \@@_primitive:NN \delimitershortfall \tex_delimitershortfall:D
+ \@@_primitive:NN \dimen \tex_dimen:D
+ \@@_primitive:NN \dimendef \tex_dimendef:D
+ \@@_primitive:NN \discretionary \tex_discretionary:D
+ \@@_primitive:NN \displayindent \tex_displayindent:D
+ \@@_primitive:NN \displaylimits \tex_displaylimits:D
+ \@@_primitive:NN \displaystyle \tex_displaystyle:D
+ \@@_primitive:NN \displaywidowpenalty \tex_displaywidowpenalty:D
+ \@@_primitive:NN \displaywidth \tex_displaywidth:D
+ \@@_primitive:NN \divide \tex_divide:D
+ \@@_primitive:NN \doublehyphendemerits \tex_doublehyphendemerits:D
+ \@@_primitive:NN \dp \tex_dp:D
+ \@@_primitive:NN \dump \tex_dump:D
+ \@@_primitive:NN \edef \tex_edef:D
+ \@@_primitive:NN \else \tex_else:D
+ \@@_primitive:NN \emergencystretch \tex_emergencystretch:D
+ \@@_primitive:NN \end \tex_end:D
+ \@@_primitive:NN \endcsname \tex_endcsname:D
+ \@@_primitive:NN \endgroup \tex_endgroup:D
+ \@@_primitive:NN \endinput \tex_endinput:D
+ \@@_primitive:NN \endlinechar \tex_endlinechar:D
+ \@@_primitive:NN \eqno \tex_eqno:D
+ \@@_primitive:NN \errhelp \tex_errhelp:D
+ \@@_primitive:NN \errmessage \tex_errmessage:D
+ \@@_primitive:NN \errorcontextlines \tex_errorcontextlines:D
+ \@@_primitive:NN \errorstopmode \tex_errorstopmode:D
+ \@@_primitive:NN \escapechar \tex_escapechar:D
+ \@@_primitive:NN \everycr \tex_everycr:D
+ \@@_primitive:NN \everydisplay \tex_everydisplay:D
+ \@@_primitive:NN \everyhbox \tex_everyhbox:D
+ \@@_primitive:NN \everyjob \tex_everyjob:D
+ \@@_primitive:NN \everymath \tex_everymath:D
+ \@@_primitive:NN \everypar \tex_everypar:D
+ \@@_primitive:NN \everyvbox \tex_everyvbox:D
+ \@@_primitive:NN \exhyphenpenalty \tex_exhyphenpenalty:D
+ \@@_primitive:NN \expandafter \tex_expandafter:D
+ \@@_primitive:NN \fam \tex_fam:D
+ \@@_primitive:NN \fi \tex_fi:D
+ \@@_primitive:NN \finalhyphendemerits \tex_finalhyphendemerits:D
+ \@@_primitive:NN \firstmark \tex_firstmark:D
+ \@@_primitive:NN \floatingpenalty \tex_floatingpenalty:D
+ \@@_primitive:NN \font \tex_font:D
+ \@@_primitive:NN \fontdimen \tex_fontdimen:D
+ \@@_primitive:NN \fontname \tex_fontname:D
+ \@@_primitive:NN \futurelet \tex_futurelet:D
+ \@@_primitive:NN \gdef \tex_gdef:D
+ \@@_primitive:NN \global \tex_global:D
+ \@@_primitive:NN \globaldefs \tex_globaldefs:D
+ \@@_primitive:NN \halign \tex_halign:D
+ \@@_primitive:NN \hangafter \tex_hangafter:D
+ \@@_primitive:NN \hangindent \tex_hangindent:D
+ \@@_primitive:NN \hbadness \tex_hbadness:D
+ \@@_primitive:NN \hbox \tex_hbox:D
+ \@@_primitive:NN \hfil \tex_hfil:D
+ \@@_primitive:NN \hfill \tex_hfill:D
+ \@@_primitive:NN \hfilneg \tex_hfilneg:D
+ \@@_primitive:NN \hfuzz \tex_hfuzz:D
+ \@@_primitive:NN \hoffset \tex_hoffset:D
+ \@@_primitive:NN \holdinginserts \tex_holdinginserts:D
+ \@@_primitive:NN \hrule \tex_hrule:D
+ \@@_primitive:NN \hsize \tex_hsize:D
+ \@@_primitive:NN \hskip \tex_hskip:D
+ \@@_primitive:NN \hss \tex_hss:D
+ \@@_primitive:NN \ht \tex_ht:D
+ \@@_primitive:NN \hyphenation \tex_hyphenation:D
+ \@@_primitive:NN \hyphenchar \tex_hyphenchar:D
+ \@@_primitive:NN \hyphenpenalty \tex_hyphenpenalty:D
+ \@@_primitive:NN \if \tex_if:D
+ \@@_primitive:NN \ifcase \tex_ifcase:D
+ \@@_primitive:NN \ifcat \tex_ifcat:D
+ \@@_primitive:NN \ifdim \tex_ifdim:D
+ \@@_primitive:NN \ifeof \tex_ifeof:D
+ \@@_primitive:NN \iffalse \tex_iffalse:D
+ \@@_primitive:NN \ifhbox \tex_ifhbox:D
+ \@@_primitive:NN \ifhmode \tex_ifhmode:D
+ \@@_primitive:NN \ifinner \tex_ifinner:D
+ \@@_primitive:NN \ifmmode \tex_ifmmode:D
+ \@@_primitive:NN \ifnum \tex_ifnum:D
+ \@@_primitive:NN \ifodd \tex_ifodd:D
+ \@@_primitive:NN \iftrue \tex_iftrue:D
+ \@@_primitive:NN \ifvbox \tex_ifvbox:D
+ \@@_primitive:NN \ifvmode \tex_ifvmode:D
+ \@@_primitive:NN \ifvoid \tex_ifvoid:D
+ \@@_primitive:NN \ifx \tex_ifx:D
+ \@@_primitive:NN \ignorespaces \tex_ignorespaces:D
+ \@@_primitive:NN \immediate \tex_immediate:D
+ \@@_primitive:NN \indent \tex_indent:D
+ \@@_primitive:NN \input \tex_input:D
+ \@@_primitive:NN \inputlineno \tex_inputlineno:D
+ \@@_primitive:NN \insert \tex_insert:D
+ \@@_primitive:NN \insertpenalties \tex_insertpenalties:D
+ \@@_primitive:NN \interlinepenalty \tex_interlinepenalty:D
+ \@@_primitive:NN \jobname \tex_jobname:D
+ \@@_primitive:NN \kern \tex_kern:D
+ \@@_primitive:NN \language \tex_language:D
+ \@@_primitive:NN \lastbox \tex_lastbox:D
+ \@@_primitive:NN \lastkern \tex_lastkern:D
+ \@@_primitive:NN \lastpenalty \tex_lastpenalty:D
+ \@@_primitive:NN \lastskip \tex_lastskip:D
+ \@@_primitive:NN \lccode \tex_lccode:D
+ \@@_primitive:NN \leaders \tex_leaders:D
+ \@@_primitive:NN \left \tex_left:D
+ \@@_primitive:NN \lefthyphenmin \tex_lefthyphenmin:D
+ \@@_primitive:NN \leftskip \tex_leftskip:D
+ \@@_primitive:NN \leqno \tex_leqno:D
+ \@@_primitive:NN \let \tex_let:D
+ \@@_primitive:NN \limits \tex_limits:D
+ \@@_primitive:NN \linepenalty \tex_linepenalty:D
+ \@@_primitive:NN \lineskip \tex_lineskip:D
+ \@@_primitive:NN \lineskiplimit \tex_lineskiplimit:D
+ \@@_primitive:NN \long \tex_long:D
+ \@@_primitive:NN \looseness \tex_looseness:D
+ \@@_primitive:NN \lower \tex_lower:D
+ \@@_primitive:NN \lowercase \tex_lowercase:D
+ \@@_primitive:NN \mag \tex_mag:D
+ \@@_primitive:NN \mark \tex_mark:D
+ \@@_primitive:NN \mathaccent \tex_mathaccent:D
+ \@@_primitive:NN \mathbin \tex_mathbin:D
+ \@@_primitive:NN \mathchar \tex_mathchar:D
+ \@@_primitive:NN \mathchardef \tex_mathchardef:D
+ \@@_primitive:NN \mathchoice \tex_mathchoice:D
+ \@@_primitive:NN \mathclose \tex_mathclose:D
+ \@@_primitive:NN \mathcode \tex_mathcode:D
+ \@@_primitive:NN \mathinner \tex_mathinner:D
+ \@@_primitive:NN \mathop \tex_mathop:D
+ \@@_primitive:NN \mathopen \tex_mathopen:D
+ \@@_primitive:NN \mathord \tex_mathord:D
+ \@@_primitive:NN \mathpunct \tex_mathpunct:D
+ \@@_primitive:NN \mathrel \tex_mathrel:D
+ \@@_primitive:NN \mathsurround \tex_mathsurround:D
+ \@@_primitive:NN \maxdeadcycles \tex_maxdeadcycles:D
+ \@@_primitive:NN \maxdepth \tex_maxdepth:D
+ \@@_primitive:NN \meaning \tex_meaning:D
+ \@@_primitive:NN \medmuskip \tex_medmuskip:D
+ \@@_primitive:NN \message \tex_message:D
+ \@@_primitive:NN \mkern \tex_mkern:D
+ \@@_primitive:NN \month \tex_month:D
+ \@@_primitive:NN \moveleft \tex_moveleft:D
+ \@@_primitive:NN \moveright \tex_moveright:D
+ \@@_primitive:NN \mskip \tex_mskip:D
+ \@@_primitive:NN \multiply \tex_multiply:D
+ \@@_primitive:NN \muskip \tex_muskip:D
+ \@@_primitive:NN \muskipdef \tex_muskipdef:D
+ \@@_primitive:NN \newlinechar \tex_newlinechar:D
+ \@@_primitive:NN \noalign \tex_noalign:D
+ \@@_primitive:NN \noboundary \tex_noboundary:D
+ \@@_primitive:NN \noexpand \tex_noexpand:D
+ \@@_primitive:NN \noindent \tex_noindent:D
+ \@@_primitive:NN \nolimits \tex_nolimits:D
+ \@@_primitive:NN \nonscript \tex_nonscript:D
+ \@@_primitive:NN \nonstopmode \tex_nonstopmode:D
+ \@@_primitive:NN \nulldelimiterspace \tex_nulldelimiterspace:D
+ \@@_primitive:NN \nullfont \tex_nullfont:D
+ \@@_primitive:NN \number \tex_number:D
+ \@@_primitive:NN \omit \tex_omit:D
+ \@@_primitive:NN \openin \tex_openin:D
+ \@@_primitive:NN \openout \tex_openout:D
+ \@@_primitive:NN \or \tex_or:D
+ \@@_primitive:NN \outer \tex_outer:D
+ \@@_primitive:NN \output \tex_output:D
+ \@@_primitive:NN \outputpenalty \tex_outputpenalty:D
+ \@@_primitive:NN \over \tex_over:D
+ \@@_primitive:NN \overfullrule \tex_overfullrule:D
+ \@@_primitive:NN \overline \tex_overline:D
+ \@@_primitive:NN \overwithdelims \tex_overwithdelims:D
+ \@@_primitive:NN \pagedepth \tex_pagedepth:D
+ \@@_primitive:NN \pagefilllstretch \tex_pagefilllstretch:D
+ \@@_primitive:NN \pagefillstretch \tex_pagefillstretch:D
+ \@@_primitive:NN \pagefilstretch \tex_pagefilstretch:D
+ \@@_primitive:NN \pagegoal \tex_pagegoal:D
+ \@@_primitive:NN \pageshrink \tex_pageshrink:D
+ \@@_primitive:NN \pagestretch \tex_pagestretch:D
+ \@@_primitive:NN \pagetotal \tex_pagetotal:D
+ \@@_primitive:NN \par \tex_par:D
+ \@@_primitive:NN \parfillskip \tex_parfillskip:D
+ \@@_primitive:NN \parindent \tex_parindent:D
+ \@@_primitive:NN \parshape \tex_parshape:D
+ \@@_primitive:NN \parskip \tex_parskip:D
+ \@@_primitive:NN \patterns \tex_patterns:D
+ \@@_primitive:NN \pausing \tex_pausing:D
+ \@@_primitive:NN \penalty \tex_penalty:D
+ \@@_primitive:NN \postdisplaypenalty \tex_postdisplaypenalty:D
+ \@@_primitive:NN \predisplaypenalty \tex_predisplaypenalty:D
+ \@@_primitive:NN \predisplaysize \tex_predisplaysize:D
+ \@@_primitive:NN \pretolerance \tex_pretolerance:D
+ \@@_primitive:NN \prevdepth \tex_prevdepth:D
+ \@@_primitive:NN \prevgraf \tex_prevgraf:D
+ \@@_primitive:NN \radical \tex_radical:D
+ \@@_primitive:NN \raise \tex_raise:D
+ \@@_primitive:NN \read \tex_read:D
+ \@@_primitive:NN \relax \tex_relax:D
+ \@@_primitive:NN \relpenalty \tex_relpenalty:D
+ \@@_primitive:NN \right \tex_right:D
+ \@@_primitive:NN \righthyphenmin \tex_righthyphenmin:D
+ \@@_primitive:NN \rightskip \tex_rightskip:D
+ \@@_primitive:NN \romannumeral \tex_romannumeral:D
+ \@@_primitive:NN \scriptfont \tex_scriptfont:D
+ \@@_primitive:NN \scriptscriptfont \tex_scriptscriptfont:D
+ \@@_primitive:NN \scriptscriptstyle \tex_scriptscriptstyle:D
+ \@@_primitive:NN \scriptspace \tex_scriptspace:D
+ \@@_primitive:NN \scriptstyle \tex_scriptstyle:D
+ \@@_primitive:NN \scrollmode \tex_scrollmode:D
+ \@@_primitive:NN \setbox \tex_setbox:D
+ \@@_primitive:NN \setlanguage \tex_setlanguage:D
+ \@@_primitive:NN \sfcode \tex_sfcode:D
+ \@@_primitive:NN \shipout \tex_shipout:D
+ \@@_primitive:NN \show \tex_show:D
+ \@@_primitive:NN \showbox \tex_showbox:D
+ \@@_primitive:NN \showboxbreadth \tex_showboxbreadth:D
+ \@@_primitive:NN \showboxdepth \tex_showboxdepth:D
+ \@@_primitive:NN \showlists \tex_showlists:D
+ \@@_primitive:NN \showthe \tex_showthe:D
+ \@@_primitive:NN \skewchar \tex_skewchar:D
+ \@@_primitive:NN \skip \tex_skip:D
+ \@@_primitive:NN \skipdef \tex_skipdef:D
+ \@@_primitive:NN \spacefactor \tex_spacefactor:D
+ \@@_primitive:NN \spaceskip \tex_spaceskip:D
+ \@@_primitive:NN \span \tex_span:D
+ \@@_primitive:NN \special \tex_special:D
+ \@@_primitive:NN \splitbotmark \tex_splitbotmark:D
+ \@@_primitive:NN \splitfirstmark \tex_splitfirstmark:D
+ \@@_primitive:NN \splitmaxdepth \tex_splitmaxdepth:D
+ \@@_primitive:NN \splittopskip \tex_splittopskip:D
+ \@@_primitive:NN \string \tex_string:D
+ \@@_primitive:NN \tabskip \tex_tabskip:D
+ \@@_primitive:NN \textfont \tex_textfont:D
+ \@@_primitive:NN \textstyle \tex_textstyle:D
+ \@@_primitive:NN \the \tex_the:D
+ \@@_primitive:NN \thickmuskip \tex_thickmuskip:D
+ \@@_primitive:NN \thinmuskip \tex_thinmuskip:D
+ \@@_primitive:NN \time \tex_time:D
+ \@@_primitive:NN \toks \tex_toks:D
+ \@@_primitive:NN \toksdef \tex_toksdef:D
+ \@@_primitive:NN \tolerance \tex_tolerance:D
+ \@@_primitive:NN \topmark \tex_topmark:D
+ \@@_primitive:NN \topskip \tex_topskip:D
+ \@@_primitive:NN \tracingcommands \tex_tracingcommands:D
+ \@@_primitive:NN \tracinglostchars \tex_tracinglostchars:D
+ \@@_primitive:NN \tracingmacros \tex_tracingmacros:D
+ \@@_primitive:NN \tracingonline \tex_tracingonline:D
+ \@@_primitive:NN \tracingoutput \tex_tracingoutput:D
+ \@@_primitive:NN \tracingpages \tex_tracingpages:D
+ \@@_primitive:NN \tracingparagraphs \tex_tracingparagraphs:D
+ \@@_primitive:NN \tracingrestores \tex_tracingrestores:D
+ \@@_primitive:NN \tracingstats \tex_tracingstats:D
+ \@@_primitive:NN \uccode \tex_uccode:D
+ \@@_primitive:NN \uchyph \tex_uchyph:D
+ \@@_primitive:NN \underline \tex_underline:D
+ \@@_primitive:NN \unhbox \tex_unhbox:D
+ \@@_primitive:NN \unhcopy \tex_unhcopy:D
+ \@@_primitive:NN \unkern \tex_unkern:D
+ \@@_primitive:NN \unpenalty \tex_unpenalty:D
+ \@@_primitive:NN \unskip \tex_unskip:D
+ \@@_primitive:NN \unvbox \tex_unvbox:D
+ \@@_primitive:NN \unvcopy \tex_unvcopy:D
+ \@@_primitive:NN \uppercase \tex_uppercase:D
+ \@@_primitive:NN \vadjust \tex_vadjust:D
+ \@@_primitive:NN \valign \tex_valign:D
+ \@@_primitive:NN \vbadness \tex_vbadness:D
+ \@@_primitive:NN \vbox \tex_vbox:D
+ \@@_primitive:NN \vcenter \tex_vcenter:D
+ \@@_primitive:NN \vfil \tex_vfil:D
+ \@@_primitive:NN \vfill \tex_vfill:D
+ \@@_primitive:NN \vfilneg \tex_vfilneg:D
+ \@@_primitive:NN \vfuzz \tex_vfuzz:D
+ \@@_primitive:NN \voffset \tex_voffset:D
+ \@@_primitive:NN \vrule \tex_vrule:D
+ \@@_primitive:NN \vsize \tex_vsize:D
+ \@@_primitive:NN \vskip \tex_vskip:D
+ \@@_primitive:NN \vsplit \tex_vsplit:D
+ \@@_primitive:NN \vss \tex_vss:D
+ \@@_primitive:NN \vtop \tex_vtop:D
+ \@@_primitive:NN \wd \tex_wd:D
+ \@@_primitive:NN \widowpenalty \tex_widowpenalty:D
+ \@@_primitive:NN \write \tex_write:D
+ \@@_primitive:NN \xdef \tex_xdef:D
+ \@@_primitive:NN \xleaders \tex_xleaders:D
+ \@@_primitive:NN \xspaceskip \tex_xspaceskip:D
+ \@@_primitive:NN \year \tex_year:D
% \end{macrocode}
% Since \LaTeX3 requires at least the \eTeX{} extensions,
% we also rename the additional primitives. These are all
% given the prefix | \etex_|.
% \begin{macrocode}
- \__kernel_primitive:NN \beginL \etex_beginL:D
- \__kernel_primitive:NN \beginR \etex_beginR:D
- \__kernel_primitive:NN \botmarks \etex_botmarks:D
- \__kernel_primitive:NN \clubpenalties \etex_clubpenalties:D
- \__kernel_primitive:NN \currentgrouplevel \etex_currentgrouplevel:D
- \__kernel_primitive:NN \currentgrouptype \etex_currentgrouptype:D
- \__kernel_primitive:NN \currentifbranch \etex_currentifbranch:D
- \__kernel_primitive:NN \currentiflevel \etex_currentiflevel:D
- \__kernel_primitive:NN \currentiftype \etex_currentiftype:D
- \__kernel_primitive:NN \detokenize \etex_detokenize:D
- \__kernel_primitive:NN \dimexpr \etex_dimexpr:D
- \__kernel_primitive:NN \displaywidowpenalties \etex_displaywidowpenalties:D
- \__kernel_primitive:NN \endL \etex_endL:D
- \__kernel_primitive:NN \endR \etex_endR:D
- \__kernel_primitive:NN \eTeXrevision \etex_eTeXrevision:D
- \__kernel_primitive:NN \eTeXversion \etex_eTeXversion:D
- \__kernel_primitive:NN \everyeof \etex_everyeof:D
- \__kernel_primitive:NN \firstmarks \etex_firstmarks:D
- \__kernel_primitive:NN \fontchardp \etex_fontchardp:D
- \__kernel_primitive:NN \fontcharht \etex_fontcharht:D
- \__kernel_primitive:NN \fontcharic \etex_fontcharic:D
- \__kernel_primitive:NN \fontcharwd \etex_fontcharwd:D
- \__kernel_primitive:NN \glueexpr \etex_glueexpr:D
- \__kernel_primitive:NN \glueshrink \etex_glueshrink:D
- \__kernel_primitive:NN \glueshrinkorder \etex_glueshrinkorder:D
- \__kernel_primitive:NN \gluestretch \etex_gluestretch:D
- \__kernel_primitive:NN \gluestretchorder \etex_gluestretchorder:D
- \__kernel_primitive:NN \gluetomu \etex_gluetomu:D
- \__kernel_primitive:NN \ifcsname \etex_ifcsname:D
- \__kernel_primitive:NN \ifdefined \etex_ifdefined:D
- \__kernel_primitive:NN \iffontchar \etex_iffontchar:D
- \__kernel_primitive:NN \interactionmode \etex_interactionmode:D
- \__kernel_primitive:NN \interlinepenalties \etex_interlinepenalties:D
- \__kernel_primitive:NN \lastlinefit \etex_lastlinefit:D
- \__kernel_primitive:NN \lastnodetype \etex_lastnodetype:D
- \__kernel_primitive:NN \marks \etex_marks:D
- \__kernel_primitive:NN \middle \etex_middle:D
- \__kernel_primitive:NN \muexpr \etex_muexpr:D
- \__kernel_primitive:NN \mutoglue \etex_mutoglue:D
- \__kernel_primitive:NN \numexpr \etex_numexpr:D
- \__kernel_primitive:NN \pagediscards \etex_pagediscards:D
- \__kernel_primitive:NN \parshapedimen \etex_parshapedimen:D
- \__kernel_primitive:NN \parshapeindent \etex_parshapeindent:D
- \__kernel_primitive:NN \parshapelength \etex_parshapelength:D
- \__kernel_primitive:NN \predisplaydirection \etex_predisplaydirection:D
- \__kernel_primitive:NN \protected \etex_protected:D
- \__kernel_primitive:NN \readline \etex_readline:D
- \__kernel_primitive:NN \savinghyphcodes \etex_savinghyphcodes:D
- \__kernel_primitive:NN \savingvdiscards \etex_savingvdiscards:D
- \__kernel_primitive:NN \scantokens \etex_scantokens:D
- \__kernel_primitive:NN \showgroups \etex_showgroups:D
- \__kernel_primitive:NN \showifs \etex_showifs:D
- \__kernel_primitive:NN \showtokens \etex_showtokens:D
- \__kernel_primitive:NN \splitbotmarks \etex_splitbotmarks:D
- \__kernel_primitive:NN \splitdiscards \etex_splitdiscards:D
- \__kernel_primitive:NN \splitfirstmarks \etex_splitfirstmarks:D
- \__kernel_primitive:NN \TeXXeTstate \etex_TeXXeTstate:D
- \__kernel_primitive:NN \topmarks \etex_topmarks:D
- \__kernel_primitive:NN \tracingassigns \etex_tracingassigns:D
- \__kernel_primitive:NN \tracinggroups \etex_tracinggroups:D
- \__kernel_primitive:NN \tracingifs \etex_tracingifs:D
- \__kernel_primitive:NN \tracingnesting \etex_tracingnesting:D
- \__kernel_primitive:NN \tracingscantokens \etex_tracingscantokens:D
- \__kernel_primitive:NN \unexpanded \etex_unexpanded:D
- \__kernel_primitive:NN \unless \etex_unless:D
- \__kernel_primitive:NN \widowpenalties \etex_widowpenalties:D
+ \@@_primitive:NN \beginL \etex_beginL:D
+ \@@_primitive:NN \beginR \etex_beginR:D
+ \@@_primitive:NN \botmarks \etex_botmarks:D
+ \@@_primitive:NN \clubpenalties \etex_clubpenalties:D
+ \@@_primitive:NN \currentgrouplevel \etex_currentgrouplevel:D
+ \@@_primitive:NN \currentgrouptype \etex_currentgrouptype:D
+ \@@_primitive:NN \currentifbranch \etex_currentifbranch:D
+ \@@_primitive:NN \currentiflevel \etex_currentiflevel:D
+ \@@_primitive:NN \currentiftype \etex_currentiftype:D
+ \@@_primitive:NN \detokenize \etex_detokenize:D
+ \@@_primitive:NN \dimexpr \etex_dimexpr:D
+ \@@_primitive:NN \displaywidowpenalties \etex_displaywidowpenalties:D
+ \@@_primitive:NN \endL \etex_endL:D
+ \@@_primitive:NN \endR \etex_endR:D
+ \@@_primitive:NN \eTeXrevision \etex_eTeXrevision:D
+ \@@_primitive:NN \eTeXversion \etex_eTeXversion:D
+ \@@_primitive:NN \everyeof \etex_everyeof:D
+ \@@_primitive:NN \firstmarks \etex_firstmarks:D
+ \@@_primitive:NN \fontchardp \etex_fontchardp:D
+ \@@_primitive:NN \fontcharht \etex_fontcharht:D
+ \@@_primitive:NN \fontcharic \etex_fontcharic:D
+ \@@_primitive:NN \fontcharwd \etex_fontcharwd:D
+ \@@_primitive:NN \glueexpr \etex_glueexpr:D
+ \@@_primitive:NN \glueshrink \etex_glueshrink:D
+ \@@_primitive:NN \glueshrinkorder \etex_glueshrinkorder:D
+ \@@_primitive:NN \gluestretch \etex_gluestretch:D
+ \@@_primitive:NN \gluestretchorder \etex_gluestretchorder:D
+ \@@_primitive:NN \gluetomu \etex_gluetomu:D
+ \@@_primitive:NN \ifcsname \etex_ifcsname:D
+ \@@_primitive:NN \ifdefined \etex_ifdefined:D
+ \@@_primitive:NN \iffontchar \etex_iffontchar:D
+ \@@_primitive:NN \interactionmode \etex_interactionmode:D
+ \@@_primitive:NN \interlinepenalties \etex_interlinepenalties:D
+ \@@_primitive:NN \lastlinefit \etex_lastlinefit:D
+ \@@_primitive:NN \lastnodetype \etex_lastnodetype:D
+ \@@_primitive:NN \marks \etex_marks:D
+ \@@_primitive:NN \middle \etex_middle:D
+ \@@_primitive:NN \muexpr \etex_muexpr:D
+ \@@_primitive:NN \mutoglue \etex_mutoglue:D
+ \@@_primitive:NN \numexpr \etex_numexpr:D
+ \@@_primitive:NN \pagediscards \etex_pagediscards:D
+ \@@_primitive:NN \parshapedimen \etex_parshapedimen:D
+ \@@_primitive:NN \parshapeindent \etex_parshapeindent:D
+ \@@_primitive:NN \parshapelength \etex_parshapelength:D
+ \@@_primitive:NN \predisplaydirection \etex_predisplaydirection:D
+ \@@_primitive:NN \protected \etex_protected:D
+ \@@_primitive:NN \readline \etex_readline:D
+ \@@_primitive:NN \savinghyphcodes \etex_savinghyphcodes:D
+ \@@_primitive:NN \savingvdiscards \etex_savingvdiscards:D
+ \@@_primitive:NN \scantokens \etex_scantokens:D
+ \@@_primitive:NN \showgroups \etex_showgroups:D
+ \@@_primitive:NN \showifs \etex_showifs:D
+ \@@_primitive:NN \showtokens \etex_showtokens:D
+ \@@_primitive:NN \splitbotmarks \etex_splitbotmarks:D
+ \@@_primitive:NN \splitdiscards \etex_splitdiscards:D
+ \@@_primitive:NN \splitfirstmarks \etex_splitfirstmarks:D
+ \@@_primitive:NN \TeXXeTstate \etex_TeXXeTstate:D
+ \@@_primitive:NN \topmarks \etex_topmarks:D
+ \@@_primitive:NN \tracingassigns \etex_tracingassigns:D
+ \@@_primitive:NN \tracinggroups \etex_tracinggroups:D
+ \@@_primitive:NN \tracingifs \etex_tracingifs:D
+ \@@_primitive:NN \tracingnesting \etex_tracingnesting:D
+ \@@_primitive:NN \tracingscantokens \etex_tracingscantokens:D
+ \@@_primitive:NN \unexpanded \etex_unexpanded:D
+ \@@_primitive:NN \unless \etex_unless:D
+ \@@_primitive:NN \widowpenalties \etex_widowpenalties:D
% \end{macrocode}
% The newer primitives are more complex: there are an awful lot of them,
% and we don't use them all at the moment. So the following is selective,
@@ -550,134 +551,134 @@
% are not related to PDF output. These ones related to PDF output or only
% work in PDF mode.
% \begin{macrocode}
- \__kernel_primitive:NN \pdfannot \pdftex_pdfannot:D
- \__kernel_primitive:NN \pdfcatalog \pdftex_pdfcatalog:D
- \__kernel_primitive:NN \pdfcompresslevel \pdftex_pdfcompresslevel:D
- \__kernel_primitive:NN \pdfcolorstack \pdftex_pdfcolorstack:D
- \__kernel_primitive:NN \pdfcolorstackinit \pdftex_pdfcolorstackinit:D
- \__kernel_primitive:NN \pdfcreationdate \pdftex_pdfcreationdate:D
- \__kernel_primitive:NN \pdfdecimaldigits \pdftex_pdfdecimaldigits:D
- \__kernel_primitive:NN \pdfdest \pdftex_pdfdest:D
- \__kernel_primitive:NN \pdfdestmargin \pdftex_pdfdestmargin:D
- \__kernel_primitive:NN \pdfendlink \pdftex_pdfendlink:D
- \__kernel_primitive:NN \pdfendthread \pdftex_pdfendthread:D
- \__kernel_primitive:NN \pdffontattr \pdftex_pdffontattr:D
- \__kernel_primitive:NN \pdffontname \pdftex_pdffontname:D
- \__kernel_primitive:NN \pdffontobjnum \pdftex_pdffontobjnum:D
- \__kernel_primitive:NN \pdfgamma \pdftex_pdfgamma:D
- \__kernel_primitive:NN \pdfimageapplygamma \pdftex_pdfimageapplygamma:D
- \__kernel_primitive:NN \pdfimagegamma \pdftex_pdfimagegamma:D
- \__kernel_primitive:NN \pdfgentounicode \pdftex_pdfgentounicode:D
- \__kernel_primitive:NN \pdfglyphtounicode \pdftex_pdfglyphtounicode:D
- \__kernel_primitive:NN \pdfhorigin \pdftex_pdfhorigin:D
- \__kernel_primitive:NN \pdfimagehicolor \pdftex_pdfimagehicolor:D
- \__kernel_primitive:NN \pdfimageresolution \pdftex_pdfimageresolution:D
- \__kernel_primitive:NN \pdfincludechars \pdftex_pdfincludechars:D
- \__kernel_primitive:NN \pdfinclusioncopyfonts \pdftex_pdfinclusioncopyfonts:D
- \__kernel_primitive:NN \pdfinclusionerrorlevel \pdftex_pdfinclusionerrorlevel:D
- \__kernel_primitive:NN \pdfinfo \pdftex_pdfinfo:D
- \__kernel_primitive:NN \pdflastannot \pdftex_pdflastannot:D
- \__kernel_primitive:NN \pdflastlink \pdftex_pdflastlink:D
- \__kernel_primitive:NN \pdflastobj \pdftex_pdflastobj:D
- \__kernel_primitive:NN \pdflastxform \pdftex_pdflastxform:D
- \__kernel_primitive:NN \pdflastximage \pdftex_pdflastximage:D
- \__kernel_primitive:NN \pdflastximagecolordepth \pdftex_pdflastximagecolordepth:D
- \__kernel_primitive:NN \pdflastximagepages \pdftex_pdflastximagepages:D
- \__kernel_primitive:NN \pdflinkmargin \pdftex_pdflinkmargin:D
- \__kernel_primitive:NN \pdfliteral \pdftex_pdfliteral:D
- \__kernel_primitive:NN \pdfminorversion \pdftex_pdfminorversion:D
- \__kernel_primitive:NN \pdfnames \pdftex_pdfnames:D
- \__kernel_primitive:NN \pdfobj \pdftex_pdfobj:D
- \__kernel_primitive:NN \pdfobjcompresslevel \pdftex_pdfobjcompresslevel:D
- \__kernel_primitive:NN \pdfoutline \pdftex_pdfoutline:D
- \__kernel_primitive:NN \pdfoutput \pdftex_pdfoutput:D
- \__kernel_primitive:NN \pdfpageattr \pdftex_pdfpageattr:D
- \__kernel_primitive:NN \pdfpagebox \pdftex_pdfpagebox:D
- \__kernel_primitive:NN \pdfpageref \pdftex_pdfpageref:D
- \__kernel_primitive:NN \pdfpageresources \pdftex_pdfpageresources:D
- \__kernel_primitive:NN \pdfpagesattr \pdftex_pdfpagesattr:D
- \__kernel_primitive:NN \pdfrefobj \pdftex_pdfrefobj:D
- \__kernel_primitive:NN \pdfrefxform \pdftex_pdfrefxform:D
- \__kernel_primitive:NN \pdfrefximage \pdftex_pdfrefximage:D
- \__kernel_primitive:NN \pdfrestore \pdftex_pdfrestore:D
- \__kernel_primitive:NN \pdfretval \pdftex_pdfretval:D
- \__kernel_primitive:NN \pdfsave \pdftex_pdfsave:D
- \__kernel_primitive:NN \pdfsetmatrix \pdftex_pdfsetmatrix:D
- \__kernel_primitive:NN \pdfstartlink \pdftex_pdfstartlink:D
- \__kernel_primitive:NN \pdfstartthread \pdftex_pdfstartthread:D
- \__kernel_primitive:NN \pdfsuppressptexinfo \pdftex_pdfsuppressptexinfo:D
- \__kernel_primitive:NN \pdfthread \pdftex_pdfthread:D
- \__kernel_primitive:NN \pdfthreadmargin \pdftex_pdfthreadmargin:D
- \__kernel_primitive:NN \pdftrailer \pdftex_pdftrailer:D
- \__kernel_primitive:NN \pdfuniqueresname \pdftex_pdfuniqueresname:D
- \__kernel_primitive:NN \pdfvorigin \pdftex_pdfvorigin:D
- \__kernel_primitive:NN \pdfxform \pdftex_pdfxform:D
- \__kernel_primitive:NN \pdfxformattr \pdftex_pdfxformattr:D
- \__kernel_primitive:NN \pdfxformname \pdftex_pdfxformname:D
- \__kernel_primitive:NN \pdfxformresources \pdftex_pdfxformresources:D
- \__kernel_primitive:NN \pdfximage \pdftex_pdfximage:D
- \__kernel_primitive:NN \pdfximagebbox \pdftex_pdfximagebbox:D
+ \@@_primitive:NN \pdfannot \pdftex_pdfannot:D
+ \@@_primitive:NN \pdfcatalog \pdftex_pdfcatalog:D
+ \@@_primitive:NN \pdfcompresslevel \pdftex_pdfcompresslevel:D
+ \@@_primitive:NN \pdfcolorstack \pdftex_pdfcolorstack:D
+ \@@_primitive:NN \pdfcolorstackinit \pdftex_pdfcolorstackinit:D
+ \@@_primitive:NN \pdfcreationdate \pdftex_pdfcreationdate:D
+ \@@_primitive:NN \pdfdecimaldigits \pdftex_pdfdecimaldigits:D
+ \@@_primitive:NN \pdfdest \pdftex_pdfdest:D
+ \@@_primitive:NN \pdfdestmargin \pdftex_pdfdestmargin:D
+ \@@_primitive:NN \pdfendlink \pdftex_pdfendlink:D
+ \@@_primitive:NN \pdfendthread \pdftex_pdfendthread:D
+ \@@_primitive:NN \pdffontattr \pdftex_pdffontattr:D
+ \@@_primitive:NN \pdffontname \pdftex_pdffontname:D
+ \@@_primitive:NN \pdffontobjnum \pdftex_pdffontobjnum:D
+ \@@_primitive:NN \pdfgamma \pdftex_pdfgamma:D
+ \@@_primitive:NN \pdfimageapplygamma \pdftex_pdfimageapplygamma:D
+ \@@_primitive:NN \pdfimagegamma \pdftex_pdfimagegamma:D
+ \@@_primitive:NN \pdfgentounicode \pdftex_pdfgentounicode:D
+ \@@_primitive:NN \pdfglyphtounicode \pdftex_pdfglyphtounicode:D
+ \@@_primitive:NN \pdfhorigin \pdftex_pdfhorigin:D
+ \@@_primitive:NN \pdfimagehicolor \pdftex_pdfimagehicolor:D
+ \@@_primitive:NN \pdfimageresolution \pdftex_pdfimageresolution:D
+ \@@_primitive:NN \pdfincludechars \pdftex_pdfincludechars:D
+ \@@_primitive:NN \pdfinclusioncopyfonts \pdftex_pdfinclusioncopyfonts:D
+ \@@_primitive:NN \pdfinclusionerrorlevel \pdftex_pdfinclusionerrorlevel:D
+ \@@_primitive:NN \pdfinfo \pdftex_pdfinfo:D
+ \@@_primitive:NN \pdflastannot \pdftex_pdflastannot:D
+ \@@_primitive:NN \pdflastlink \pdftex_pdflastlink:D
+ \@@_primitive:NN \pdflastobj \pdftex_pdflastobj:D
+ \@@_primitive:NN \pdflastxform \pdftex_pdflastxform:D
+ \@@_primitive:NN \pdflastximage \pdftex_pdflastximage:D
+ \@@_primitive:NN \pdflastximagecolordepth \pdftex_pdflastximagecolordepth:D
+ \@@_primitive:NN \pdflastximagepages \pdftex_pdflastximagepages:D
+ \@@_primitive:NN \pdflinkmargin \pdftex_pdflinkmargin:D
+ \@@_primitive:NN \pdfliteral \pdftex_pdfliteral:D
+ \@@_primitive:NN \pdfminorversion \pdftex_pdfminorversion:D
+ \@@_primitive:NN \pdfnames \pdftex_pdfnames:D
+ \@@_primitive:NN \pdfobj \pdftex_pdfobj:D
+ \@@_primitive:NN \pdfobjcompresslevel \pdftex_pdfobjcompresslevel:D
+ \@@_primitive:NN \pdfoutline \pdftex_pdfoutline:D
+ \@@_primitive:NN \pdfoutput \pdftex_pdfoutput:D
+ \@@_primitive:NN \pdfpageattr \pdftex_pdfpageattr:D
+ \@@_primitive:NN \pdfpagebox \pdftex_pdfpagebox:D
+ \@@_primitive:NN \pdfpageref \pdftex_pdfpageref:D
+ \@@_primitive:NN \pdfpageresources \pdftex_pdfpageresources:D
+ \@@_primitive:NN \pdfpagesattr \pdftex_pdfpagesattr:D
+ \@@_primitive:NN \pdfrefobj \pdftex_pdfrefobj:D
+ \@@_primitive:NN \pdfrefxform \pdftex_pdfrefxform:D
+ \@@_primitive:NN \pdfrefximage \pdftex_pdfrefximage:D
+ \@@_primitive:NN \pdfrestore \pdftex_pdfrestore:D
+ \@@_primitive:NN \pdfretval \pdftex_pdfretval:D
+ \@@_primitive:NN \pdfsave \pdftex_pdfsave:D
+ \@@_primitive:NN \pdfsetmatrix \pdftex_pdfsetmatrix:D
+ \@@_primitive:NN \pdfstartlink \pdftex_pdfstartlink:D
+ \@@_primitive:NN \pdfstartthread \pdftex_pdfstartthread:D
+ \@@_primitive:NN \pdfsuppressptexinfo \pdftex_pdfsuppressptexinfo:D
+ \@@_primitive:NN \pdfthread \pdftex_pdfthread:D
+ \@@_primitive:NN \pdfthreadmargin \pdftex_pdfthreadmargin:D
+ \@@_primitive:NN \pdftrailer \pdftex_pdftrailer:D
+ \@@_primitive:NN \pdfuniqueresname \pdftex_pdfuniqueresname:D
+ \@@_primitive:NN \pdfvorigin \pdftex_pdfvorigin:D
+ \@@_primitive:NN \pdfxform \pdftex_pdfxform:D
+ \@@_primitive:NN \pdfxformattr \pdftex_pdfxformattr:D
+ \@@_primitive:NN \pdfxformname \pdftex_pdfxformname:D
+ \@@_primitive:NN \pdfxformresources \pdftex_pdfxformresources:D
+ \@@_primitive:NN \pdfximage \pdftex_pdfximage:D
+ \@@_primitive:NN \pdfximagebbox \pdftex_pdfximagebbox:D
% \end{macrocode}
% While these are not.
% \begin{macrocode}
- \__kernel_primitive:NN \ifpdfabsdim \pdftex_ifabsdim:D
- \__kernel_primitive:NN \ifpdfabsnum \pdftex_ifabsnum:D
- \__kernel_primitive:NN \ifpdfprimitive \pdftex_ifprimitive:D
- \__kernel_primitive:NN \pdfadjustspacing \pdftex_adjustspacing:D
- \__kernel_primitive:NN \pdfcopyfont \pdftex_copyfont:D
- \__kernel_primitive:NN \pdfdraftmode \pdftex_draftmode:D
- \__kernel_primitive:NN \pdfeachlinedepth \pdftex_eachlinedepth:D
- \__kernel_primitive:NN \pdfeachlineheight \pdftex_eachlineheight:D
- \__kernel_primitive:NN \pdffilemoddate \pdftex_filemoddate:D
- \__kernel_primitive:NN \pdffilesize \pdftex_filesize:D
- \__kernel_primitive:NN \pdffirstlineheight \pdftex_firstlineheight:D
- \__kernel_primitive:NN \pdffontexpand \pdftex_fontexpand:D
- \__kernel_primitive:NN \pdffontsize \pdftex_fontsize:D
- \__kernel_primitive:NN \pdfignoreddimen \pdftex_ignoreddimen:D
- \__kernel_primitive:NN \pdfinsertht \pdftex_insertht:D
- \__kernel_primitive:NN \pdflastlinedepth \pdftex_lastlinedepth:D
- \__kernel_primitive:NN \pdflastxpos \pdftex_lastxpos:D
- \__kernel_primitive:NN \pdflastypos \pdftex_lastypos:D
- \__kernel_primitive:NN \pdfmapfile \pdftex_mapfile:D
- \__kernel_primitive:NN \pdfmapline \pdftex_mapline:D
- \__kernel_primitive:NN \pdfmdfivesum \pdftex_mdfivesum:D
- \__kernel_primitive:NN \pdfnoligatures \pdftex_noligatures:D
- \__kernel_primitive:NN \pdfnormaldeviate \pdftex_normaldeviate:D
- \__kernel_primitive:NN \pdfpageheight \pdftex_pageheight:D
- \__kernel_primitive:NN \pdfpagewidth \pdftex_pagewidth:D
- \__kernel_primitive:NN \pdfpkmode \pdftex_pkmode:D
- \__kernel_primitive:NN \pdfpkresolution \pdftex_pkresolution:D
- \__kernel_primitive:NN \pdfprimitive \pdftex_primitive:D
- \__kernel_primitive:NN \pdfprotrudechars \pdftex_protrudechars:D
- \__kernel_primitive:NN \pdfpxdimen \pdftex_pxdimen:D
- \__kernel_primitive:NN \pdfrandomseed \pdftex_randomseed:D
- \__kernel_primitive:NN \pdfsavepos \pdftex_savepos:D
- \__kernel_primitive:NN \pdfstrcmp \pdftex_strcmp:D
- \__kernel_primitive:NN \pdfsetrandomseed \pdftex_setrandomseed:D
- \__kernel_primitive:NN \pdfshellescape \pdftex_shellescape:D
- \__kernel_primitive:NN \pdftracingfonts \pdftex_tracingfonts:D
- \__kernel_primitive:NN \pdfuniformdeviate \pdftex_uniformdeviate:D
+ \@@_primitive:NN \ifpdfabsdim \pdftex_ifabsdim:D
+ \@@_primitive:NN \ifpdfabsnum \pdftex_ifabsnum:D
+ \@@_primitive:NN \ifpdfprimitive \pdftex_ifprimitive:D
+ \@@_primitive:NN \pdfadjustspacing \pdftex_adjustspacing:D
+ \@@_primitive:NN \pdfcopyfont \pdftex_copyfont:D
+ \@@_primitive:NN \pdfdraftmode \pdftex_draftmode:D
+ \@@_primitive:NN \pdfeachlinedepth \pdftex_eachlinedepth:D
+ \@@_primitive:NN \pdfeachlineheight \pdftex_eachlineheight:D
+ \@@_primitive:NN \pdffilemoddate \pdftex_filemoddate:D
+ \@@_primitive:NN \pdffilesize \pdftex_filesize:D
+ \@@_primitive:NN \pdffirstlineheight \pdftex_firstlineheight:D
+ \@@_primitive:NN \pdffontexpand \pdftex_fontexpand:D
+ \@@_primitive:NN \pdffontsize \pdftex_fontsize:D
+ \@@_primitive:NN \pdfignoreddimen \pdftex_ignoreddimen:D
+ \@@_primitive:NN \pdfinsertht \pdftex_insertht:D
+ \@@_primitive:NN \pdflastlinedepth \pdftex_lastlinedepth:D
+ \@@_primitive:NN \pdflastxpos \pdftex_lastxpos:D
+ \@@_primitive:NN \pdflastypos \pdftex_lastypos:D
+ \@@_primitive:NN \pdfmapfile \pdftex_mapfile:D
+ \@@_primitive:NN \pdfmapline \pdftex_mapline:D
+ \@@_primitive:NN \pdfmdfivesum \pdftex_mdfivesum:D
+ \@@_primitive:NN \pdfnoligatures \pdftex_noligatures:D
+ \@@_primitive:NN \pdfnormaldeviate \pdftex_normaldeviate:D
+ \@@_primitive:NN \pdfpageheight \pdftex_pageheight:D
+ \@@_primitive:NN \pdfpagewidth \pdftex_pagewidth:D
+ \@@_primitive:NN \pdfpkmode \pdftex_pkmode:D
+ \@@_primitive:NN \pdfpkresolution \pdftex_pkresolution:D
+ \@@_primitive:NN \pdfprimitive \pdftex_primitive:D
+ \@@_primitive:NN \pdfprotrudechars \pdftex_protrudechars:D
+ \@@_primitive:NN \pdfpxdimen \pdftex_pxdimen:D
+ \@@_primitive:NN \pdfrandomseed \pdftex_randomseed:D
+ \@@_primitive:NN \pdfsavepos \pdftex_savepos:D
+ \@@_primitive:NN \pdfstrcmp \pdftex_strcmp:D
+ \@@_primitive:NN \pdfsetrandomseed \pdftex_setrandomseed:D
+ \@@_primitive:NN \pdfshellescape \pdftex_shellescape:D
+ \@@_primitive:NN \pdftracingfonts \pdftex_tracingfonts:D
+ \@@_primitive:NN \pdfuniformdeviate \pdftex_uniformdeviate:D
% \end{macrocode}
% The version primitives are not related to PDF mode but are related to
% \pdfTeX{} so retain the full prefix.
% \begin{macrocode}
- \__kernel_primitive:NN \pdftexbanner \pdftex_pdftexbanner:D
- \__kernel_primitive:NN \pdftexrevision \pdftex_pdftexrevision:D
- \__kernel_primitive:NN \pdftexversion \pdftex_pdftexversion:D
+ \@@_primitive:NN \pdftexbanner \pdftex_pdftexbanner:D
+ \@@_primitive:NN \pdftexrevision \pdftex_pdftexrevision:D
+ \@@_primitive:NN \pdftexversion \pdftex_pdftexversion:D
% \end{macrocode}
% These ones appear in \pdfTeX{} but don't have |pdf| in the name at all.
% (\tn{synctex} is odd as it's really not from \pdfTeX{} but from SyncTeX!)
% \begin{macrocode}
- \__kernel_primitive:NN \efcode \pdftex_efcode:D
- \__kernel_primitive:NN \ifincsname \pdftex_ifincsname:D
- \__kernel_primitive:NN \leftmarginkern \pdftex_leftmarginkern:D
- \__kernel_primitive:NN \letterspacefont \pdftex_letterspacefont:D
- \__kernel_primitive:NN \lpcode \pdftex_lpcode:D
- \__kernel_primitive:NN \quitvmode \pdftex_quitvmode:D
- \__kernel_primitive:NN \rightmarginkern \pdftex_rightmarginkern:D
- \__kernel_primitive:NN \rpcode \pdftex_rpcode:D
- \__kernel_primitive:NN \synctex \pdftex_synctex:D
- \__kernel_primitive:NN \tagcode \pdftex_tagcode:D
+ \@@_primitive:NN \efcode \pdftex_efcode:D
+ \@@_primitive:NN \ifincsname \pdftex_ifincsname:D
+ \@@_primitive:NN \leftmarginkern \pdftex_leftmarginkern:D
+ \@@_primitive:NN \letterspacefont \pdftex_letterspacefont:D
+ \@@_primitive:NN \lpcode \pdftex_lpcode:D
+ \@@_primitive:NN \quitvmode \pdftex_quitvmode:D
+ \@@_primitive:NN \rightmarginkern \pdftex_rightmarginkern:D
+ \@@_primitive:NN \rpcode \pdftex_rpcode:D
+ \@@_primitive:NN \synctex \pdftex_synctex:D
+ \@@_primitive:NN \tagcode \pdftex_tagcode:D
% \end{macrocode}
% Post \pdfTeX{} primitive availability gets more complex. Both \XeTeX{} and
% \LuaTeX{} have varying names for some primitives from \pdfTeX{}. Particularly
@@ -688,7 +689,7 @@
%<*initex|package>
\tex_long:D \tex_def:D \use_ii:nn #1#2 {#2}
\tex_long:D \tex_def:D \use_none:n #1 { }
- \tex_long:D \tex_def:D \__kernel_primitive:NN #1#2
+ \tex_long:D \tex_def:D \@@_primitive:NN #1#2
{
\etex_ifdefined:D #1
\tex_expandafter:D \use_ii:nn
@@ -707,201 +708,201 @@
% into the \enquote{base} name. A few cross-compatibility names which lack
% the |pdf| of the original are handled later.
% \begin{macrocode}
- \__kernel_primitive:NN \suppressfontnotfounderror \xetex_suppressfontnotfounderror:D
- \__kernel_primitive:NN \XeTeXcharclass \xetex_charclass:D
- \__kernel_primitive:NN \XeTeXcharglyph \xetex_charglyph:D
- \__kernel_primitive:NN \XeTeXcountfeatures \xetex_countfeatures:D
- \__kernel_primitive:NN \XeTeXcountglyphs \xetex_countglyphs:D
- \__kernel_primitive:NN \XeTeXcountselectors \xetex_countselectors:D
- \__kernel_primitive:NN \XeTeXcountvariations \xetex_countvariations:D
- \__kernel_primitive:NN \XeTeXdefaultencoding \xetex_defaultencoding:D
- \__kernel_primitive:NN \XeTeXdashbreakstate \xetex_dashbreakstate:D
- \__kernel_primitive:NN \XeTeXfeaturecode \xetex_featurecode:D
- \__kernel_primitive:NN \XeTeXfeaturename \xetex_featurename:D
- \__kernel_primitive:NN \XeTeXfindfeaturebyname \xetex_findfeaturebyname:D
- \__kernel_primitive:NN \XeTeXfindselectorbyname \xetex_findselectorbyname:D
- \__kernel_primitive:NN \XeTeXfindvariationbyname \xetex_findvariationbyname:D
- \__kernel_primitive:NN \XeTeXfirstfontchar \xetex_firstfontchar:D
- \__kernel_primitive:NN \XeTeXfonttype \xetex_fonttype:D
- \__kernel_primitive:NN \XeTeXgenerateactualtext \xetex_generateactualtext:D
- \__kernel_primitive:NN \XeTeXglyph \xetex_glyph:D
- \__kernel_primitive:NN \XeTeXglyphbounds \xetex_glyphbounds:D
- \__kernel_primitive:NN \XeTeXglyphindex \xetex_glyphindex:D
- \__kernel_primitive:NN \XeTeXglyphname \xetex_glyphname:D
- \__kernel_primitive:NN \XeTeXinputencoding \xetex_inputencoding:D
- \__kernel_primitive:NN \XeTeXinputnormalization \xetex_inputnormalization:D
- \__kernel_primitive:NN \XeTeXinterchartokenstate \xetex_interchartokenstate:D
- \__kernel_primitive:NN \XeTeXinterchartoks \xetex_interchartoks:D
- \__kernel_primitive:NN \XeTeXisdefaultselector \xetex_isdefaultselector:D
- \__kernel_primitive:NN \XeTeXisexclusivefeature \xetex_isexclusivefeature:D
- \__kernel_primitive:NN \XeTeXlastfontchar \xetex_lastfontchar:D
- \__kernel_primitive:NN \XeTeXlinebreakskip \xetex_linebreakskip:D
- \__kernel_primitive:NN \XeTeXlinebreaklocale \xetex_linebreaklocale:D
- \__kernel_primitive:NN \XeTeXlinebreakpenalty \xetex_linebreakpenalty:D
- \__kernel_primitive:NN \XeTeXOTcountfeatures \xetex_OTcountfeatures:D
- \__kernel_primitive:NN \XeTeXOTcountlanguages \xetex_OTcountlanguages:D
- \__kernel_primitive:NN \XeTeXOTcountscripts \xetex_OTcountscripts:D
- \__kernel_primitive:NN \XeTeXOTfeaturetag \xetex_OTfeaturetag:D
- \__kernel_primitive:NN \XeTeXOTlanguagetag \xetex_OTlanguagetag:D
- \__kernel_primitive:NN \XeTeXOTscripttag \xetex_OTscripttag:D
- \__kernel_primitive:NN \XeTeXpdffile \xetex_pdffile:D
- \__kernel_primitive:NN \XeTeXpdfpagecount \xetex_pdfpagecount:D
- \__kernel_primitive:NN \XeTeXpicfile \xetex_picfile:D
- \__kernel_primitive:NN \XeTeXselectorname \xetex_selectorname:D
- \__kernel_primitive:NN \XeTeXtracingfonts \xetex_tracingfonts:D
- \__kernel_primitive:NN \XeTeXupwardsmode \xetex_upwardsmode:D
- \__kernel_primitive:NN \XeTeXuseglyphmetrics \xetex_useglyphmetrics:D
- \__kernel_primitive:NN \XeTeXvariation \xetex_variation:D
- \__kernel_primitive:NN \XeTeXvariationdefault \xetex_variationdefault:D
- \__kernel_primitive:NN \XeTeXvariationmax \xetex_variationmax:D
- \__kernel_primitive:NN \XeTeXvariationmin \xetex_variationmin:D
- \__kernel_primitive:NN \XeTeXvariationname \xetex_variationname:D
+ \@@_primitive:NN \suppressfontnotfounderror \xetex_suppressfontnotfounderror:D
+ \@@_primitive:NN \XeTeXcharclass \xetex_charclass:D
+ \@@_primitive:NN \XeTeXcharglyph \xetex_charglyph:D
+ \@@_primitive:NN \XeTeXcountfeatures \xetex_countfeatures:D
+ \@@_primitive:NN \XeTeXcountglyphs \xetex_countglyphs:D
+ \@@_primitive:NN \XeTeXcountselectors \xetex_countselectors:D
+ \@@_primitive:NN \XeTeXcountvariations \xetex_countvariations:D
+ \@@_primitive:NN \XeTeXdefaultencoding \xetex_defaultencoding:D
+ \@@_primitive:NN \XeTeXdashbreakstate \xetex_dashbreakstate:D
+ \@@_primitive:NN \XeTeXfeaturecode \xetex_featurecode:D
+ \@@_primitive:NN \XeTeXfeaturename \xetex_featurename:D
+ \@@_primitive:NN \XeTeXfindfeaturebyname \xetex_findfeaturebyname:D
+ \@@_primitive:NN \XeTeXfindselectorbyname \xetex_findselectorbyname:D
+ \@@_primitive:NN \XeTeXfindvariationbyname \xetex_findvariationbyname:D
+ \@@_primitive:NN \XeTeXfirstfontchar \xetex_firstfontchar:D
+ \@@_primitive:NN \XeTeXfonttype \xetex_fonttype:D
+ \@@_primitive:NN \XeTeXgenerateactualtext \xetex_generateactualtext:D
+ \@@_primitive:NN \XeTeXglyph \xetex_glyph:D
+ \@@_primitive:NN \XeTeXglyphbounds \xetex_glyphbounds:D
+ \@@_primitive:NN \XeTeXglyphindex \xetex_glyphindex:D
+ \@@_primitive:NN \XeTeXglyphname \xetex_glyphname:D
+ \@@_primitive:NN \XeTeXinputencoding \xetex_inputencoding:D
+ \@@_primitive:NN \XeTeXinputnormalization \xetex_inputnormalization:D
+ \@@_primitive:NN \XeTeXinterchartokenstate \xetex_interchartokenstate:D
+ \@@_primitive:NN \XeTeXinterchartoks \xetex_interchartoks:D
+ \@@_primitive:NN \XeTeXisdefaultselector \xetex_isdefaultselector:D
+ \@@_primitive:NN \XeTeXisexclusivefeature \xetex_isexclusivefeature:D
+ \@@_primitive:NN \XeTeXlastfontchar \xetex_lastfontchar:D
+ \@@_primitive:NN \XeTeXlinebreakskip \xetex_linebreakskip:D
+ \@@_primitive:NN \XeTeXlinebreaklocale \xetex_linebreaklocale:D
+ \@@_primitive:NN \XeTeXlinebreakpenalty \xetex_linebreakpenalty:D
+ \@@_primitive:NN \XeTeXOTcountfeatures \xetex_OTcountfeatures:D
+ \@@_primitive:NN \XeTeXOTcountlanguages \xetex_OTcountlanguages:D
+ \@@_primitive:NN \XeTeXOTcountscripts \xetex_OTcountscripts:D
+ \@@_primitive:NN \XeTeXOTfeaturetag \xetex_OTfeaturetag:D
+ \@@_primitive:NN \XeTeXOTlanguagetag \xetex_OTlanguagetag:D
+ \@@_primitive:NN \XeTeXOTscripttag \xetex_OTscripttag:D
+ \@@_primitive:NN \XeTeXpdffile \xetex_pdffile:D
+ \@@_primitive:NN \XeTeXpdfpagecount \xetex_pdfpagecount:D
+ \@@_primitive:NN \XeTeXpicfile \xetex_picfile:D
+ \@@_primitive:NN \XeTeXselectorname \xetex_selectorname:D
+ \@@_primitive:NN \XeTeXtracingfonts \xetex_tracingfonts:D
+ \@@_primitive:NN \XeTeXupwardsmode \xetex_upwardsmode:D
+ \@@_primitive:NN \XeTeXuseglyphmetrics \xetex_useglyphmetrics:D
+ \@@_primitive:NN \XeTeXvariation \xetex_variation:D
+ \@@_primitive:NN \XeTeXvariationdefault \xetex_variationdefault:D
+ \@@_primitive:NN \XeTeXvariationmax \xetex_variationmax:D
+ \@@_primitive:NN \XeTeXvariationmin \xetex_variationmin:D
+ \@@_primitive:NN \XeTeXvariationname \xetex_variationname:D
% \end{macrocode}
% The version primitives retain |XeTeX|.
% \begin{macrocode}
- \__kernel_primitive:NN \XeTeXrevision \xetex_XeTeXrevision:D
- \__kernel_primitive:NN \XeTeXversion \xetex_XeTeXversion:D
+ \@@_primitive:NN \XeTeXrevision \xetex_XeTeXrevision:D
+ \@@_primitive:NN \XeTeXversion \xetex_XeTeXversion:D
% \end{macrocode}
% Primitives from \pdfTeX{} that \XeTeX{} renames: also helps with
% \LuaTeX{}.
% \begin{macrocode}
- \__kernel_primitive:NN \mdfivesum \pdftex_mdfivesum:D
- \__kernel_primitive:NN \ifprimitive \pdftex_ifprimitive:D
- \__kernel_primitive:NN \primitive \pdftex_primitive:D
- \__kernel_primitive:NN \shellescape \pdftex_shellescape:D
+ \@@_primitive:NN \mdfivesum \pdftex_mdfivesum:D
+ \@@_primitive:NN \ifprimitive \pdftex_ifprimitive:D
+ \@@_primitive:NN \primitive \pdftex_primitive:D
+ \@@_primitive:NN \shellescape \pdftex_shellescape:D
% \end{macrocode}
% Primitives from \LuaTeX{}, some of which have been ported back to
% \XeTeX{}. Notice that \tn{expanded} was intended for \pdfTeX{}~1.50 but
% as that was not released we call this a \LuaTeX{} primitive.
% \begin{macrocode}
- \__kernel_primitive:NN \alignmark \luatex_alignmark:D
- \__kernel_primitive:NN \aligntab \luatex_aligntab:D
- \__kernel_primitive:NN \attribute \luatex_attribute:D
- \__kernel_primitive:NN \attributedef \luatex_attributedef:D
- \__kernel_primitive:NN \automatichyphenpenalty \luatex_automatichyphenpenalty:D
- \__kernel_primitive:NN \begincsname \luatex_begincsname:D
- \__kernel_primitive:NN \catcodetable \luatex_catcodetable:D
- \__kernel_primitive:NN \clearmarks \luatex_clearmarks:D
- \__kernel_primitive:NN \crampeddisplaystyle \luatex_crampeddisplaystyle:D
- \__kernel_primitive:NN \crampedscriptscriptstyle \luatex_crampedscriptscriptstyle:D
- \__kernel_primitive:NN \crampedscriptstyle \luatex_crampedscriptstyle:D
- \__kernel_primitive:NN \crampedtextstyle \luatex_crampedtextstyle:D
- \__kernel_primitive:NN \directlua \luatex_directlua:D
- \__kernel_primitive:NN \dviextension \luatex_dviextension:D
- \__kernel_primitive:NN \dvifeedback \luatex_dvifeedback:D
- \__kernel_primitive:NN \dvivariable \luatex_dvivariable:D
- \__kernel_primitive:NN \etoksapp \luatex_etoksapp:D
- \__kernel_primitive:NN \etokspre \luatex_etokspre:D
- \__kernel_primitive:NN \explicithyphenpenalty \luatex_explicithyphenpenalty:D
- \__kernel_primitive:NN \expanded \luatex_expanded:D
- \__kernel_primitive:NN \firstvalidlanguage \luatex_firstvalidlanguage:D
- \__kernel_primitive:NN \fontid \luatex_fontid:D
- \__kernel_primitive:NN \formatname \luatex_formatname:D
- \__kernel_primitive:NN \hjcode \luatex_hjcode:D
- \__kernel_primitive:NN \hpack \luatex_hpack:D
- \__kernel_primitive:NN \hyphenationbounds \luatex_hyphenationbounds:D
- \__kernel_primitive:NN \hyphenationmin \luatex_hyphenationmin:D
- \__kernel_primitive:NN \hyphenpenaltymode \luatex_hyphenpenaltymode:D
- \__kernel_primitive:NN \gleaders \luatex_gleaders:D
- \__kernel_primitive:NN \initcatcodetable \luatex_initcatcodetable:D
- \__kernel_primitive:NN \lastnamedcs \luatex_lastnamedcs:D
- \__kernel_primitive:NN \latelua \luatex_latelua:D
- \__kernel_primitive:NN \letcharcode \luatex_letcharcode:D
- \__kernel_primitive:NN \luaescapestring \luatex_luaescapestring:D
- \__kernel_primitive:NN \luafunction \luatex_luafunction:D
- \__kernel_primitive:NN \luatexbanner \luatex_luatexbanner:D
- \__kernel_primitive:NN \luatexdatestamp \luatex_luatexdatestamp:D
- \__kernel_primitive:NN \luatexrevision \luatex_luatexrevision:D
- \__kernel_primitive:NN \luatexversion \luatex_luatexversion:D
- \__kernel_primitive:NN \mathdisplayskipmode \luatex_mathdisplayskipmode:D
- \__kernel_primitive:NN \matheqnogapstep \luatex_matheqnogapstep:D
- \__kernel_primitive:NN \mathnolimitsmode \luatex_mathnolimitsmode:D
- \__kernel_primitive:NN \mathoption \luatex_mathoption:D
- \__kernel_primitive:NN \mathrulesfam \luatex_mathrulesfam:D
- \__kernel_primitive:NN \mathscriptsmode \luatex_mathscriptsmode:D
- \__kernel_primitive:NN \mathstyle \luatex_mathstyle:D
- \__kernel_primitive:NN \mathsurroundmode \luatex_mathsurroundmode:D
- \__kernel_primitive:NN \mathsurroundskip \luatex_mathsurroundskip:D
- \__kernel_primitive:NN \nohrule \luatex_nohrule:D
- \__kernel_primitive:NN \nokerns \luatex_nokerns:D
- \__kernel_primitive:NN \noligs \luatex_noligs:D
- \__kernel_primitive:NN \nospaces \luatex_nospaces:D
- \__kernel_primitive:NN \novrule \luatex_novrule:D
- \__kernel_primitive:NN \outputbox \luatex_outputbox:D
- \__kernel_primitive:NN \pagebottomoffset \luatex_pagebottomoffset:D
- \__kernel_primitive:NN \pageleftoffset \luatex_pageleftoffset:D
- \__kernel_primitive:NN \pagerightoffset \luatex_pagerightoffset:D
- \__kernel_primitive:NN \pagetopoffset \luatex_pagetopoffset:D
- \__kernel_primitive:NN \pdfextension \luatex_pdfextension:D
- \__kernel_primitive:NN \pdffeedback \luatex_pdffeedback:D
- \__kernel_primitive:NN \pdfvariable \luatex_pdfvariable:D
- \__kernel_primitive:NN \postexhyphenchar \luatex_postexhyphenchar:D
- \__kernel_primitive:NN \posthyphenchar \luatex_posthyphenchar:D
- \__kernel_primitive:NN \predisplaygapfactor \luatex_predisplaygapfactor:D
- \__kernel_primitive:NN \preexhyphenchar \luatex_preexhyphenchar:D
- \__kernel_primitive:NN \prehyphenchar \luatex_prehyphenchar:D
- \__kernel_primitive:NN \savecatcodetable \luatex_savecatcodetable:D
- \__kernel_primitive:NN \scantextokens \luatex_scantextokens:D
- \__kernel_primitive:NN \setfontid \luatex_setfontid:D
- \__kernel_primitive:NN \shapemode \luatex_shapemode:D
- \__kernel_primitive:NN \suppressifcsnameerror \luatex_suppressifcsnameerror:D
- \__kernel_primitive:NN \suppresslongerror \luatex_suppresslongerror:D
- \__kernel_primitive:NN \suppressmathparerror \luatex_suppressmathparerror:D
- \__kernel_primitive:NN \suppressoutererror \luatex_suppressoutererror:D
- \__kernel_primitive:NN \toksapp \luatex_toksapp:D
- \__kernel_primitive:NN \tokspre \luatex_tokspre:D
- \__kernel_primitive:NN \tpack \luatex_tpack:D
- \__kernel_primitive:NN \vpack \luatex_vpack:D
+ \@@_primitive:NN \alignmark \luatex_alignmark:D
+ \@@_primitive:NN \aligntab \luatex_aligntab:D
+ \@@_primitive:NN \attribute \luatex_attribute:D
+ \@@_primitive:NN \attributedef \luatex_attributedef:D
+ \@@_primitive:NN \automatichyphenpenalty \luatex_automatichyphenpenalty:D
+ \@@_primitive:NN \begincsname \luatex_begincsname:D
+ \@@_primitive:NN \catcodetable \luatex_catcodetable:D
+ \@@_primitive:NN \clearmarks \luatex_clearmarks:D
+ \@@_primitive:NN \crampeddisplaystyle \luatex_crampeddisplaystyle:D
+ \@@_primitive:NN \crampedscriptscriptstyle \luatex_crampedscriptscriptstyle:D
+ \@@_primitive:NN \crampedscriptstyle \luatex_crampedscriptstyle:D
+ \@@_primitive:NN \crampedtextstyle \luatex_crampedtextstyle:D
+ \@@_primitive:NN \directlua \luatex_directlua:D
+ \@@_primitive:NN \dviextension \luatex_dviextension:D
+ \@@_primitive:NN \dvifeedback \luatex_dvifeedback:D
+ \@@_primitive:NN \dvivariable \luatex_dvivariable:D
+ \@@_primitive:NN \etoksapp \luatex_etoksapp:D
+ \@@_primitive:NN \etokspre \luatex_etokspre:D
+ \@@_primitive:NN \explicithyphenpenalty \luatex_explicithyphenpenalty:D
+ \@@_primitive:NN \expanded \luatex_expanded:D
+ \@@_primitive:NN \firstvalidlanguage \luatex_firstvalidlanguage:D
+ \@@_primitive:NN \fontid \luatex_fontid:D
+ \@@_primitive:NN \formatname \luatex_formatname:D
+ \@@_primitive:NN \hjcode \luatex_hjcode:D
+ \@@_primitive:NN \hpack \luatex_hpack:D
+ \@@_primitive:NN \hyphenationbounds \luatex_hyphenationbounds:D
+ \@@_primitive:NN \hyphenationmin \luatex_hyphenationmin:D
+ \@@_primitive:NN \hyphenpenaltymode \luatex_hyphenpenaltymode:D
+ \@@_primitive:NN \gleaders \luatex_gleaders:D
+ \@@_primitive:NN \initcatcodetable \luatex_initcatcodetable:D
+ \@@_primitive:NN \lastnamedcs \luatex_lastnamedcs:D
+ \@@_primitive:NN \latelua \luatex_latelua:D
+ \@@_primitive:NN \letcharcode \luatex_letcharcode:D
+ \@@_primitive:NN \luaescapestring \luatex_luaescapestring:D
+ \@@_primitive:NN \luafunction \luatex_luafunction:D
+ \@@_primitive:NN \luatexbanner \luatex_luatexbanner:D
+ \@@_primitive:NN \luatexdatestamp \luatex_luatexdatestamp:D
+ \@@_primitive:NN \luatexrevision \luatex_luatexrevision:D
+ \@@_primitive:NN \luatexversion \luatex_luatexversion:D
+ \@@_primitive:NN \mathdisplayskipmode \luatex_mathdisplayskipmode:D
+ \@@_primitive:NN \matheqnogapstep \luatex_matheqnogapstep:D
+ \@@_primitive:NN \mathnolimitsmode \luatex_mathnolimitsmode:D
+ \@@_primitive:NN \mathoption \luatex_mathoption:D
+ \@@_primitive:NN \mathrulesfam \luatex_mathrulesfam:D
+ \@@_primitive:NN \mathscriptsmode \luatex_mathscriptsmode:D
+ \@@_primitive:NN \mathstyle \luatex_mathstyle:D
+ \@@_primitive:NN \mathsurroundmode \luatex_mathsurroundmode:D
+ \@@_primitive:NN \mathsurroundskip \luatex_mathsurroundskip:D
+ \@@_primitive:NN \nohrule \luatex_nohrule:D
+ \@@_primitive:NN \nokerns \luatex_nokerns:D
+ \@@_primitive:NN \noligs \luatex_noligs:D
+ \@@_primitive:NN \nospaces \luatex_nospaces:D
+ \@@_primitive:NN \novrule \luatex_novrule:D
+ \@@_primitive:NN \outputbox \luatex_outputbox:D
+ \@@_primitive:NN \pagebottomoffset \luatex_pagebottomoffset:D
+ \@@_primitive:NN \pageleftoffset \luatex_pageleftoffset:D
+ \@@_primitive:NN \pagerightoffset \luatex_pagerightoffset:D
+ \@@_primitive:NN \pagetopoffset \luatex_pagetopoffset:D
+ \@@_primitive:NN \pdfextension \luatex_pdfextension:D
+ \@@_primitive:NN \pdffeedback \luatex_pdffeedback:D
+ \@@_primitive:NN \pdfvariable \luatex_pdfvariable:D
+ \@@_primitive:NN \postexhyphenchar \luatex_postexhyphenchar:D
+ \@@_primitive:NN \posthyphenchar \luatex_posthyphenchar:D
+ \@@_primitive:NN \predisplaygapfactor \luatex_predisplaygapfactor:D
+ \@@_primitive:NN \preexhyphenchar \luatex_preexhyphenchar:D
+ \@@_primitive:NN \prehyphenchar \luatex_prehyphenchar:D
+ \@@_primitive:NN \savecatcodetable \luatex_savecatcodetable:D
+ \@@_primitive:NN \scantextokens \luatex_scantextokens:D
+ \@@_primitive:NN \setfontid \luatex_setfontid:D
+ \@@_primitive:NN \shapemode \luatex_shapemode:D
+ \@@_primitive:NN \suppressifcsnameerror \luatex_suppressifcsnameerror:D
+ \@@_primitive:NN \suppresslongerror \luatex_suppresslongerror:D
+ \@@_primitive:NN \suppressmathparerror \luatex_suppressmathparerror:D
+ \@@_primitive:NN \suppressoutererror \luatex_suppressoutererror:D
+ \@@_primitive:NN \toksapp \luatex_toksapp:D
+ \@@_primitive:NN \tokspre \luatex_tokspre:D
+ \@@_primitive:NN \tpack \luatex_tpack:D
+ \@@_primitive:NN \vpack \luatex_vpack:D
% \end{macrocode}
% Slightly more awkward are the directional primitives in \LuaTeX{}. These
% come from Omega/Aleph, but we do not support those engines and
% so it seems most sensible to treat them as \LuaTeX{} primitives for prefix
% purposes. One here is \enquote{new} but fits into the general set.
% \begin{macrocode}
- \__kernel_primitive:NN \bodydir \luatex_bodydir:D
- \__kernel_primitive:NN \boxdir \luatex_boxdir:D
- \__kernel_primitive:NN \leftghost \luatex_leftghost:D
- \__kernel_primitive:NN \linedir \luatex_linedir:D
- \__kernel_primitive:NN \localbrokenpenalty \luatex_localbrokenpenalty:D
- \__kernel_primitive:NN \localinterlinepenalty \luatex_localinterlinepenalty:D
- \__kernel_primitive:NN \localleftbox \luatex_localleftbox:D
- \__kernel_primitive:NN \localrightbox \luatex_localrightbox:D
- \__kernel_primitive:NN \mathdir \luatex_mathdir:D
- \__kernel_primitive:NN \pagedir \luatex_pagedir:D
- \__kernel_primitive:NN \pardir \luatex_pardir:D
- \__kernel_primitive:NN \rightghost \luatex_rightghost:D
- \__kernel_primitive:NN \textdir \luatex_textdir:D
+ \@@_primitive:NN \bodydir \luatex_bodydir:D
+ \@@_primitive:NN \boxdir \luatex_boxdir:D
+ \@@_primitive:NN \leftghost \luatex_leftghost:D
+ \@@_primitive:NN \linedir \luatex_linedir:D
+ \@@_primitive:NN \localbrokenpenalty \luatex_localbrokenpenalty:D
+ \@@_primitive:NN \localinterlinepenalty \luatex_localinterlinepenalty:D
+ \@@_primitive:NN \localleftbox \luatex_localleftbox:D
+ \@@_primitive:NN \localrightbox \luatex_localrightbox:D
+ \@@_primitive:NN \mathdir \luatex_mathdir:D
+ \@@_primitive:NN \pagedir \luatex_pagedir:D
+ \@@_primitive:NN \pardir \luatex_pardir:D
+ \@@_primitive:NN \rightghost \luatex_rightghost:D
+ \@@_primitive:NN \textdir \luatex_textdir:D
% \end{macrocode}
% Primitives from \pdfTeX{} that \LuaTeX{} renames.
% \begin{macrocode}
- \__kernel_primitive:NN \adjustspacing \pdftex_adjustspacing:D
- \__kernel_primitive:NN \copyfont \pdftex_copyfont:D
- \__kernel_primitive:NN \draftmode \pdftex_draftmode:D
- \__kernel_primitive:NN \expandglyphsinfont \pdftex_fontexpand:D
- \__kernel_primitive:NN \ifabsdim \pdftex_ifabsdim:D
- \__kernel_primitive:NN \ifabsnum \pdftex_ifabsnum:D
- \__kernel_primitive:NN \ignoreligaturesinfont \pdftex_ignoreligaturesinfont:D
- \__kernel_primitive:NN \insertht \pdftex_insertht:D
- \__kernel_primitive:NN \lastsavedboxresourceindex \pdftex_pdflastxform:D
- \__kernel_primitive:NN \lastsavedimageresourceindex \pdftex_pdflastximage:D
- \__kernel_primitive:NN \lastsavedimageresourcepages \pdftex_pdflastximagepages:D
- \__kernel_primitive:NN \lastxpos \pdftex_lastxpos:D
- \__kernel_primitive:NN \lastypos \pdftex_lastypos:D
- \__kernel_primitive:NN \normaldeviate \pdftex_normaldeviate:D
- \__kernel_primitive:NN \outputmode \pdftex_pdfoutput:D
- \__kernel_primitive:NN \pageheight \pdftex_pageheight:D
- \__kernel_primitive:NN \pagewidth \pdftex_pagewith:D
- \__kernel_primitive:NN \protrudechars \pdftex_protrudechars:D
- \__kernel_primitive:NN \pxdimen \pdftex_pxdimen:D
- \__kernel_primitive:NN \randomseed \pdftex_randomseed:D
- \__kernel_primitive:NN \useboxresource \pdftex_pdfrefxform:D
- \__kernel_primitive:NN \useimageresource \pdftex_pdfrefximage:D
- \__kernel_primitive:NN \savepos \pdftex_savepos:D
- \__kernel_primitive:NN \saveboxresource \pdftex_pdfxform:D
- \__kernel_primitive:NN \saveimageresource \pdftex_pdfximage:D
- \__kernel_primitive:NN \setrandomseed \pdftex_setrandomseed:D
- \__kernel_primitive:NN \tracingfonts \pdftex_tracingfonts:D
- \__kernel_primitive:NN \uniformdeviate \pdftex_uniformdeviate:D
+ \@@_primitive:NN \adjustspacing \pdftex_adjustspacing:D
+ \@@_primitive:NN \copyfont \pdftex_copyfont:D
+ \@@_primitive:NN \draftmode \pdftex_draftmode:D
+ \@@_primitive:NN \expandglyphsinfont \pdftex_fontexpand:D
+ \@@_primitive:NN \ifabsdim \pdftex_ifabsdim:D
+ \@@_primitive:NN \ifabsnum \pdftex_ifabsnum:D
+ \@@_primitive:NN \ignoreligaturesinfont \pdftex_ignoreligaturesinfont:D
+ \@@_primitive:NN \insertht \pdftex_insertht:D
+ \@@_primitive:NN \lastsavedboxresourceindex \pdftex_pdflastxform:D
+ \@@_primitive:NN \lastsavedimageresourceindex \pdftex_pdflastximage:D
+ \@@_primitive:NN \lastsavedimageresourcepages \pdftex_pdflastximagepages:D
+ \@@_primitive:NN \lastxpos \pdftex_lastxpos:D
+ \@@_primitive:NN \lastypos \pdftex_lastypos:D
+ \@@_primitive:NN \normaldeviate \pdftex_normaldeviate:D
+ \@@_primitive:NN \outputmode \pdftex_pdfoutput:D
+ \@@_primitive:NN \pageheight \pdftex_pageheight:D
+ \@@_primitive:NN \pagewidth \pdftex_pagewith:D
+ \@@_primitive:NN \protrudechars \pdftex_protrudechars:D
+ \@@_primitive:NN \pxdimen \pdftex_pxdimen:D
+ \@@_primitive:NN \randomseed \pdftex_randomseed:D
+ \@@_primitive:NN \useboxresource \pdftex_pdfrefxform:D
+ \@@_primitive:NN \useimageresource \pdftex_pdfrefximage:D
+ \@@_primitive:NN \savepos \pdftex_savepos:D
+ \@@_primitive:NN \saveboxresource \pdftex_pdfxform:D
+ \@@_primitive:NN \saveimageresource \pdftex_pdfximage:D
+ \@@_primitive:NN \setrandomseed \pdftex_setrandomseed:D
+ \@@_primitive:NN \tracingfonts \pdftex_tracingfonts:D
+ \@@_primitive:NN \uniformdeviate \pdftex_uniformdeviate:D
% \end{macrocode}
% The set of Unicode math primitives were introduced by \XeTeX{} and \LuaTeX{}
% in a somewhat complex fashion: a few first as |\XeTeX...| which were then
@@ -911,199 +912,199 @@
% and drop |\U(math)| from the names. Where there is a related \TeX{}90
% primitive or where it really seems required we keep the |math| part of the name.
% \begin{macrocode}
- \__kernel_primitive:NN \Uchar \utex_char:D
- \__kernel_primitive:NN \Ucharcat \utex_charcat:D
- \__kernel_primitive:NN \Udelcode \utex_delcode:D
- \__kernel_primitive:NN \Udelcodenum \utex_delcodenum:D
- \__kernel_primitive:NN \Udelimiter \utex_delimiter:D
- \__kernel_primitive:NN \Udelimiterover \utex_delimiterover:D
- \__kernel_primitive:NN \Udelimiterunder \utex_delimiterunder:D
- \__kernel_primitive:NN \Uhextensible \utex_hextensible:D
- \__kernel_primitive:NN \Umathaccent \utex_mathaccent:D
- \__kernel_primitive:NN \Umathaxis \utex_mathaxis:D
- \__kernel_primitive:NN \Umathbinbinspacing \utex_binbinspacing:D
- \__kernel_primitive:NN \Umathbinclosespacing \utex_binclosespacing:D
- \__kernel_primitive:NN \Umathbininnerspacing \utex_bininnerspacing:D
- \__kernel_primitive:NN \Umathbinopenspacing \utex_binopenspacing:D
- \__kernel_primitive:NN \Umathbinopspacing \utex_binopspacing:D
- \__kernel_primitive:NN \Umathbinordspacing \utex_binordspacing:D
- \__kernel_primitive:NN \Umathbinpunctspacing \utex_binpunctspacing:D
- \__kernel_primitive:NN \Umathbinrelspacing \utex_binrelspacing:D
- \__kernel_primitive:NN \Umathchar \utex_mathchar:D
- \__kernel_primitive:NN \Umathcharclass \utex_mathcharclass:D
- \__kernel_primitive:NN \Umathchardef \utex_mathchardef:D
- \__kernel_primitive:NN \Umathcharfam \utex_mathcharfam:D
- \__kernel_primitive:NN \Umathcharnum \utex_mathcharnum:D
- \__kernel_primitive:NN \Umathcharnumdef \utex_mathcharnumdef:D
- \__kernel_primitive:NN \Umathcharslot \utex_mathcharslot:D
- \__kernel_primitive:NN \Umathclosebinspacing \utex_closebinspacing:D
- \__kernel_primitive:NN \Umathcloseclosespacing \utex_closeclosespacing:D
- \__kernel_primitive:NN \Umathcloseinnerspacing \utex_closeinnerspacing:D
- \__kernel_primitive:NN \Umathcloseopenspacing \utex_closeopenspacing:D
- \__kernel_primitive:NN \Umathcloseopspacing \utex_closeopspacing:D
- \__kernel_primitive:NN \Umathcloseordspacing \utex_closeordspacing:D
- \__kernel_primitive:NN \Umathclosepunctspacing \utex_closepunctspacing:D
- \__kernel_primitive:NN \Umathcloserelspacing \utex_closerelspacing:D
- \__kernel_primitive:NN \Umathcode \utex_mathcode:D
- \__kernel_primitive:NN \Umathcodenum \utex_mathcodenum:D
- \__kernel_primitive:NN \Umathconnectoroverlapmin \utex_connectoroverlapmin:D
- \__kernel_primitive:NN \Umathfractiondelsize \utex_fractiondelsize:D
- \__kernel_primitive:NN \Umathfractiondenomdown \utex_fractiondenomdown:D
- \__kernel_primitive:NN \Umathfractiondenomvgap \utex_fractiondenomvgap:D
- \__kernel_primitive:NN \Umathfractionnumup \utex_fractionnumup:D
- \__kernel_primitive:NN \Umathfractionnumvgap \utex_fractionnumvgap:D
- \__kernel_primitive:NN \Umathfractionrule \utex_fractionrule:D
- \__kernel_primitive:NN \Umathinnerbinspacing \utex_innerbinspacing:D
- \__kernel_primitive:NN \Umathinnerclosespacing \utex_innerclosespacing:D
- \__kernel_primitive:NN \Umathinnerinnerspacing \utex_innerinnerspacing:D
- \__kernel_primitive:NN \Umathinneropenspacing \utex_inneropenspacing:D
- \__kernel_primitive:NN \Umathinneropspacing \utex_inneropspacing:D
- \__kernel_primitive:NN \Umathinnerordspacing \utex_innerordspacing:D
- \__kernel_primitive:NN \Umathinnerpunctspacing \utex_innerpunctspacing:D
- \__kernel_primitive:NN \Umathinnerrelspacing \utex_innerrelspacing:D
- \__kernel_primitive:NN \Umathlimitabovebgap \utex_limitabovebgap:D
- \__kernel_primitive:NN \Umathlimitabovekern \utex_limitabovekern:D
- \__kernel_primitive:NN \Umathlimitabovevgap \utex_limitabovevgap:D
- \__kernel_primitive:NN \Umathlimitbelowbgap \utex_limitbelowbgap:D
- \__kernel_primitive:NN \Umathlimitbelowkern \utex_limitbelowkern:D
- \__kernel_primitive:NN \Umathlimitbelowvgap \utex_limitbelowvgap:D
- \__kernel_primitive:NN \Umathnolimitsubfactor \utex_nolimitsubfactor:D
- \__kernel_primitive:NN \Umathnolimitsupfactor \utex_nolimitsupfactor:D
- \__kernel_primitive:NN \Umathopbinspacing \utex_opbinspacing:D
- \__kernel_primitive:NN \Umathopclosespacing \utex_opclosespacing:D
- \__kernel_primitive:NN \Umathopenbinspacing \utex_openbinspacing:D
- \__kernel_primitive:NN \Umathopenclosespacing \utex_openclosespacing:D
- \__kernel_primitive:NN \Umathopeninnerspacing \utex_openinnerspacing:D
- \__kernel_primitive:NN \Umathopenopenspacing \utex_openopenspacing:D
- \__kernel_primitive:NN \Umathopenopspacing \utex_openopspacing:D
- \__kernel_primitive:NN \Umathopenordspacing \utex_openordspacing:D
- \__kernel_primitive:NN \Umathopenpunctspacing \utex_openpunctspacing:D
- \__kernel_primitive:NN \Umathopenrelspacing \utex_openrelspacing:D
- \__kernel_primitive:NN \Umathoperatorsize \utex_operatorsize:D
- \__kernel_primitive:NN \Umathopinnerspacing \utex_opinnerspacing:D
- \__kernel_primitive:NN \Umathopopenspacing \utex_opopenspacing:D
- \__kernel_primitive:NN \Umathopopspacing \utex_opopspacing:D
- \__kernel_primitive:NN \Umathopordspacing \utex_opordspacing:D
- \__kernel_primitive:NN \Umathoppunctspacing \utex_oppunctspacing:D
- \__kernel_primitive:NN \Umathoprelspacing \utex_oprelspacing:D
- \__kernel_primitive:NN \Umathordbinspacing \utex_ordbinspacing:D
- \__kernel_primitive:NN \Umathordclosespacing \utex_ordclosespacing:D
- \__kernel_primitive:NN \Umathordinnerspacing \utex_ordinnerspacing:D
- \__kernel_primitive:NN \Umathordopenspacing \utex_ordopenspacing:D
- \__kernel_primitive:NN \Umathordopspacing \utex_ordopspacing:D
- \__kernel_primitive:NN \Umathordordspacing \utex_ordordspacing:D
- \__kernel_primitive:NN \Umathordpunctspacing \utex_ordpunctspacing:D
- \__kernel_primitive:NN \Umathordrelspacing \utex_ordrelspacing:D
- \__kernel_primitive:NN \Umathoverbarkern \utex_overbarkern:D
- \__kernel_primitive:NN \Umathoverbarrule \utex_overbarrule:D
- \__kernel_primitive:NN \Umathoverbarvgap \utex_overbarvgap:D
- \__kernel_primitive:NN \Umathoverdelimiterbgap \utex_overdelimiterbgap:D
- \__kernel_primitive:NN \Umathoverdelimitervgap \utex_overdelimitervgap:D
- \__kernel_primitive:NN \Umathpunctbinspacing \utex_punctbinspacing:D
- \__kernel_primitive:NN \Umathpunctclosespacing \utex_punctclosespacing:D
- \__kernel_primitive:NN \Umathpunctinnerspacing \utex_punctinnerspacing:D
- \__kernel_primitive:NN \Umathpunctopenspacing \utex_punctopenspacing:D
- \__kernel_primitive:NN \Umathpunctopspacing \utex_punctopspacing:D
- \__kernel_primitive:NN \Umathpunctordspacing \utex_punctordspacing:D
- \__kernel_primitive:NN \Umathpunctpunctspacing \utex_punctpunctspacing:D
- \__kernel_primitive:NN \Umathpunctrelspacing \utex_punctrelspacing:D
- \__kernel_primitive:NN \Umathquad \utex_quad:D
- \__kernel_primitive:NN \Umathradicaldegreeafter \utex_radicaldegreeafter:D
- \__kernel_primitive:NN \Umathradicaldegreebefore \utex_radicaldegreebefore:D
- \__kernel_primitive:NN \Umathradicaldegreeraise \utex_radicaldegreeraise:D
- \__kernel_primitive:NN \Umathradicalkern \utex_radicalkern:D
- \__kernel_primitive:NN \Umathradicalrule \utex_radicalrule:D
- \__kernel_primitive:NN \Umathradicalvgap \utex_radicalvgap:D
- \__kernel_primitive:NN \Umathrelbinspacing \utex_relbinspacing:D
- \__kernel_primitive:NN \Umathrelclosespacing \utex_relclosespacing:D
- \__kernel_primitive:NN \Umathrelinnerspacing \utex_relinnerspacing:D
- \__kernel_primitive:NN \Umathrelopenspacing \utex_relopenspacing:D
- \__kernel_primitive:NN \Umathrelopspacing \utex_relopspacing:D
- \__kernel_primitive:NN \Umathrelordspacing \utex_relordspacing:D
- \__kernel_primitive:NN \Umathrelpunctspacing \utex_relpunctspacing:D
- \__kernel_primitive:NN \Umathrelrelspacing \utex_relrelspacing:D
- \__kernel_primitive:NN \Umathskewedfractionhgap \utex_skewedfractionhgap:D
- \__kernel_primitive:NN \Umathskewedfractionvgap \utex_skewedfractionvgap:D
- \__kernel_primitive:NN \Umathspaceafterscript \utex_spaceafterscript:D
- \__kernel_primitive:NN \Umathstackdenomdown \utex_stackdenomdown:D
- \__kernel_primitive:NN \Umathstacknumup \utex_stacknumup:D
- \__kernel_primitive:NN \Umathstackvgap \utex_stackvgap:D
- \__kernel_primitive:NN \Umathsubshiftdown \utex_subshiftdown:D
- \__kernel_primitive:NN \Umathsubshiftdrop \utex_subshiftdrop:D
- \__kernel_primitive:NN \Umathsubsupshiftdown \utex_subsupshiftdown:D
- \__kernel_primitive:NN \Umathsubsupvgap \utex_subsupvgap:D
- \__kernel_primitive:NN \Umathsubtopmax \utex_subtopmax:D
- \__kernel_primitive:NN \Umathsupbottommin \utex_supbottommin:D
- \__kernel_primitive:NN \Umathsupshiftdrop \utex_supshiftdrop:D
- \__kernel_primitive:NN \Umathsupshiftup \utex_supshiftup:D
- \__kernel_primitive:NN \Umathsupsubbottommax \utex_supsubbottommax:D
- \__kernel_primitive:NN \Umathunderbarkern \utex_underbarkern:D
- \__kernel_primitive:NN \Umathunderbarrule \utex_underbarrule:D
- \__kernel_primitive:NN \Umathunderbarvgap \utex_underbarvgap:D
- \__kernel_primitive:NN \Umathunderdelimiterbgap \utex_underdelimiterbgap:D
- \__kernel_primitive:NN \Umathunderdelimitervgap \utex_underdelimitervgap:D
- \__kernel_primitive:NN \Uoverdelimiter \utex_overdelimiter:D
- \__kernel_primitive:NN \Uradical \utex_radical:D
- \__kernel_primitive:NN \Uroot \utex_root:D
- \__kernel_primitive:NN \Uskewed \utex_skewed:D
- \__kernel_primitive:NN \Uskewedwithdelims \utex_skewedwithdelims:D
- \__kernel_primitive:NN \Ustack \utex_stack:D
- \__kernel_primitive:NN \Ustartdisplaymath \utex_startdisplaymath:D
- \__kernel_primitive:NN \Ustartmath \utex_startmath:D
- \__kernel_primitive:NN \Ustopdisplaymath \utex_stopdisplaymath:D
- \__kernel_primitive:NN \Ustopmath \utex_stopmath:D
- \__kernel_primitive:NN \Usubscript \utex_subscript:D
- \__kernel_primitive:NN \Usuperscript \utex_superscript:D
- \__kernel_primitive:NN \Uunderdelimiter \utex_underdelimiter:D
- \__kernel_primitive:NN \Uvextensible \utex_vextensible:D
+ \@@_primitive:NN \Uchar \utex_char:D
+ \@@_primitive:NN \Ucharcat \utex_charcat:D
+ \@@_primitive:NN \Udelcode \utex_delcode:D
+ \@@_primitive:NN \Udelcodenum \utex_delcodenum:D
+ \@@_primitive:NN \Udelimiter \utex_delimiter:D
+ \@@_primitive:NN \Udelimiterover \utex_delimiterover:D
+ \@@_primitive:NN \Udelimiterunder \utex_delimiterunder:D
+ \@@_primitive:NN \Uhextensible \utex_hextensible:D
+ \@@_primitive:NN \Umathaccent \utex_mathaccent:D
+ \@@_primitive:NN \Umathaxis \utex_mathaxis:D
+ \@@_primitive:NN \Umathbinbinspacing \utex_binbinspacing:D
+ \@@_primitive:NN \Umathbinclosespacing \utex_binclosespacing:D
+ \@@_primitive:NN \Umathbininnerspacing \utex_bininnerspacing:D
+ \@@_primitive:NN \Umathbinopenspacing \utex_binopenspacing:D
+ \@@_primitive:NN \Umathbinopspacing \utex_binopspacing:D
+ \@@_primitive:NN \Umathbinordspacing \utex_binordspacing:D
+ \@@_primitive:NN \Umathbinpunctspacing \utex_binpunctspacing:D
+ \@@_primitive:NN \Umathbinrelspacing \utex_binrelspacing:D
+ \@@_primitive:NN \Umathchar \utex_mathchar:D
+ \@@_primitive:NN \Umathcharclass \utex_mathcharclass:D
+ \@@_primitive:NN \Umathchardef \utex_mathchardef:D
+ \@@_primitive:NN \Umathcharfam \utex_mathcharfam:D
+ \@@_primitive:NN \Umathcharnum \utex_mathcharnum:D
+ \@@_primitive:NN \Umathcharnumdef \utex_mathcharnumdef:D
+ \@@_primitive:NN \Umathcharslot \utex_mathcharslot:D
+ \@@_primitive:NN \Umathclosebinspacing \utex_closebinspacing:D
+ \@@_primitive:NN \Umathcloseclosespacing \utex_closeclosespacing:D
+ \@@_primitive:NN \Umathcloseinnerspacing \utex_closeinnerspacing:D
+ \@@_primitive:NN \Umathcloseopenspacing \utex_closeopenspacing:D
+ \@@_primitive:NN \Umathcloseopspacing \utex_closeopspacing:D
+ \@@_primitive:NN \Umathcloseordspacing \utex_closeordspacing:D
+ \@@_primitive:NN \Umathclosepunctspacing \utex_closepunctspacing:D
+ \@@_primitive:NN \Umathcloserelspacing \utex_closerelspacing:D
+ \@@_primitive:NN \Umathcode \utex_mathcode:D
+ \@@_primitive:NN \Umathcodenum \utex_mathcodenum:D
+ \@@_primitive:NN \Umathconnectoroverlapmin \utex_connectoroverlapmin:D
+ \@@_primitive:NN \Umathfractiondelsize \utex_fractiondelsize:D
+ \@@_primitive:NN \Umathfractiondenomdown \utex_fractiondenomdown:D
+ \@@_primitive:NN \Umathfractiondenomvgap \utex_fractiondenomvgap:D
+ \@@_primitive:NN \Umathfractionnumup \utex_fractionnumup:D
+ \@@_primitive:NN \Umathfractionnumvgap \utex_fractionnumvgap:D
+ \@@_primitive:NN \Umathfractionrule \utex_fractionrule:D
+ \@@_primitive:NN \Umathinnerbinspacing \utex_innerbinspacing:D
+ \@@_primitive:NN \Umathinnerclosespacing \utex_innerclosespacing:D
+ \@@_primitive:NN \Umathinnerinnerspacing \utex_innerinnerspacing:D
+ \@@_primitive:NN \Umathinneropenspacing \utex_inneropenspacing:D
+ \@@_primitive:NN \Umathinneropspacing \utex_inneropspacing:D
+ \@@_primitive:NN \Umathinnerordspacing \utex_innerordspacing:D
+ \@@_primitive:NN \Umathinnerpunctspacing \utex_innerpunctspacing:D
+ \@@_primitive:NN \Umathinnerrelspacing \utex_innerrelspacing:D
+ \@@_primitive:NN \Umathlimitabovebgap \utex_limitabovebgap:D
+ \@@_primitive:NN \Umathlimitabovekern \utex_limitabovekern:D
+ \@@_primitive:NN \Umathlimitabovevgap \utex_limitabovevgap:D
+ \@@_primitive:NN \Umathlimitbelowbgap \utex_limitbelowbgap:D
+ \@@_primitive:NN \Umathlimitbelowkern \utex_limitbelowkern:D
+ \@@_primitive:NN \Umathlimitbelowvgap \utex_limitbelowvgap:D
+ \@@_primitive:NN \Umathnolimitsubfactor \utex_nolimitsubfactor:D
+ \@@_primitive:NN \Umathnolimitsupfactor \utex_nolimitsupfactor:D
+ \@@_primitive:NN \Umathopbinspacing \utex_opbinspacing:D
+ \@@_primitive:NN \Umathopclosespacing \utex_opclosespacing:D
+ \@@_primitive:NN \Umathopenbinspacing \utex_openbinspacing:D
+ \@@_primitive:NN \Umathopenclosespacing \utex_openclosespacing:D
+ \@@_primitive:NN \Umathopeninnerspacing \utex_openinnerspacing:D
+ \@@_primitive:NN \Umathopenopenspacing \utex_openopenspacing:D
+ \@@_primitive:NN \Umathopenopspacing \utex_openopspacing:D
+ \@@_primitive:NN \Umathopenordspacing \utex_openordspacing:D
+ \@@_primitive:NN \Umathopenpunctspacing \utex_openpunctspacing:D
+ \@@_primitive:NN \Umathopenrelspacing \utex_openrelspacing:D
+ \@@_primitive:NN \Umathoperatorsize \utex_operatorsize:D
+ \@@_primitive:NN \Umathopinnerspacing \utex_opinnerspacing:D
+ \@@_primitive:NN \Umathopopenspacing \utex_opopenspacing:D
+ \@@_primitive:NN \Umathopopspacing \utex_opopspacing:D
+ \@@_primitive:NN \Umathopordspacing \utex_opordspacing:D
+ \@@_primitive:NN \Umathoppunctspacing \utex_oppunctspacing:D
+ \@@_primitive:NN \Umathoprelspacing \utex_oprelspacing:D
+ \@@_primitive:NN \Umathordbinspacing \utex_ordbinspacing:D
+ \@@_primitive:NN \Umathordclosespacing \utex_ordclosespacing:D
+ \@@_primitive:NN \Umathordinnerspacing \utex_ordinnerspacing:D
+ \@@_primitive:NN \Umathordopenspacing \utex_ordopenspacing:D
+ \@@_primitive:NN \Umathordopspacing \utex_ordopspacing:D
+ \@@_primitive:NN \Umathordordspacing \utex_ordordspacing:D
+ \@@_primitive:NN \Umathordpunctspacing \utex_ordpunctspacing:D
+ \@@_primitive:NN \Umathordrelspacing \utex_ordrelspacing:D
+ \@@_primitive:NN \Umathoverbarkern \utex_overbarkern:D
+ \@@_primitive:NN \Umathoverbarrule \utex_overbarrule:D
+ \@@_primitive:NN \Umathoverbarvgap \utex_overbarvgap:D
+ \@@_primitive:NN \Umathoverdelimiterbgap \utex_overdelimiterbgap:D
+ \@@_primitive:NN \Umathoverdelimitervgap \utex_overdelimitervgap:D
+ \@@_primitive:NN \Umathpunctbinspacing \utex_punctbinspacing:D
+ \@@_primitive:NN \Umathpunctclosespacing \utex_punctclosespacing:D
+ \@@_primitive:NN \Umathpunctinnerspacing \utex_punctinnerspacing:D
+ \@@_primitive:NN \Umathpunctopenspacing \utex_punctopenspacing:D
+ \@@_primitive:NN \Umathpunctopspacing \utex_punctopspacing:D
+ \@@_primitive:NN \Umathpunctordspacing \utex_punctordspacing:D
+ \@@_primitive:NN \Umathpunctpunctspacing \utex_punctpunctspacing:D
+ \@@_primitive:NN \Umathpunctrelspacing \utex_punctrelspacing:D
+ \@@_primitive:NN \Umathquad \utex_quad:D
+ \@@_primitive:NN \Umathradicaldegreeafter \utex_radicaldegreeafter:D
+ \@@_primitive:NN \Umathradicaldegreebefore \utex_radicaldegreebefore:D
+ \@@_primitive:NN \Umathradicaldegreeraise \utex_radicaldegreeraise:D
+ \@@_primitive:NN \Umathradicalkern \utex_radicalkern:D
+ \@@_primitive:NN \Umathradicalrule \utex_radicalrule:D
+ \@@_primitive:NN \Umathradicalvgap \utex_radicalvgap:D
+ \@@_primitive:NN \Umathrelbinspacing \utex_relbinspacing:D
+ \@@_primitive:NN \Umathrelclosespacing \utex_relclosespacing:D
+ \@@_primitive:NN \Umathrelinnerspacing \utex_relinnerspacing:D
+ \@@_primitive:NN \Umathrelopenspacing \utex_relopenspacing:D
+ \@@_primitive:NN \Umathrelopspacing \utex_relopspacing:D
+ \@@_primitive:NN \Umathrelordspacing \utex_relordspacing:D
+ \@@_primitive:NN \Umathrelpunctspacing \utex_relpunctspacing:D
+ \@@_primitive:NN \Umathrelrelspacing \utex_relrelspacing:D
+ \@@_primitive:NN \Umathskewedfractionhgap \utex_skewedfractionhgap:D
+ \@@_primitive:NN \Umathskewedfractionvgap \utex_skewedfractionvgap:D
+ \@@_primitive:NN \Umathspaceafterscript \utex_spaceafterscript:D
+ \@@_primitive:NN \Umathstackdenomdown \utex_stackdenomdown:D
+ \@@_primitive:NN \Umathstacknumup \utex_stacknumup:D
+ \@@_primitive:NN \Umathstackvgap \utex_stackvgap:D
+ \@@_primitive:NN \Umathsubshiftdown \utex_subshiftdown:D
+ \@@_primitive:NN \Umathsubshiftdrop \utex_subshiftdrop:D
+ \@@_primitive:NN \Umathsubsupshiftdown \utex_subsupshiftdown:D
+ \@@_primitive:NN \Umathsubsupvgap \utex_subsupvgap:D
+ \@@_primitive:NN \Umathsubtopmax \utex_subtopmax:D
+ \@@_primitive:NN \Umathsupbottommin \utex_supbottommin:D
+ \@@_primitive:NN \Umathsupshiftdrop \utex_supshiftdrop:D
+ \@@_primitive:NN \Umathsupshiftup \utex_supshiftup:D
+ \@@_primitive:NN \Umathsupsubbottommax \utex_supsubbottommax:D
+ \@@_primitive:NN \Umathunderbarkern \utex_underbarkern:D
+ \@@_primitive:NN \Umathunderbarrule \utex_underbarrule:D
+ \@@_primitive:NN \Umathunderbarvgap \utex_underbarvgap:D
+ \@@_primitive:NN \Umathunderdelimiterbgap \utex_underdelimiterbgap:D
+ \@@_primitive:NN \Umathunderdelimitervgap \utex_underdelimitervgap:D
+ \@@_primitive:NN \Uoverdelimiter \utex_overdelimiter:D
+ \@@_primitive:NN \Uradical \utex_radical:D
+ \@@_primitive:NN \Uroot \utex_root:D
+ \@@_primitive:NN \Uskewed \utex_skewed:D
+ \@@_primitive:NN \Uskewedwithdelims \utex_skewedwithdelims:D
+ \@@_primitive:NN \Ustack \utex_stack:D
+ \@@_primitive:NN \Ustartdisplaymath \utex_startdisplaymath:D
+ \@@_primitive:NN \Ustartmath \utex_startmath:D
+ \@@_primitive:NN \Ustopdisplaymath \utex_stopdisplaymath:D
+ \@@_primitive:NN \Ustopmath \utex_stopmath:D
+ \@@_primitive:NN \Usubscript \utex_subscript:D
+ \@@_primitive:NN \Usuperscript \utex_superscript:D
+ \@@_primitive:NN \Uunderdelimiter \utex_underdelimiter:D
+ \@@_primitive:NN \Uvextensible \utex_vextensible:D
% \end{macrocode}
% Primitives from p\TeX{}.
% \begin{macrocode}
- \__kernel_primitive:NN \autospacing \ptex_autospacing:D
- \__kernel_primitive:NN \autoxspacing \ptex_autoxspacing:D
- \__kernel_primitive:NN \dtou \ptex_dtou:D
- \__kernel_primitive:NN \euc \ptex_euc:D
- \__kernel_primitive:NN \ifdbox \ptex_ifdbox:D
- \__kernel_primitive:NN \ifddir \ptex_ifddir:D
- \__kernel_primitive:NN \ifmdir \ptex_ifmdir:D
- \__kernel_primitive:NN \iftbox \ptex_iftbox:D
- \__kernel_primitive:NN \iftdir \ptex_iftdir:D
- \__kernel_primitive:NN \ifybox \ptex_ifybox:D
- \__kernel_primitive:NN \ifydir \ptex_ifydir:D
- \__kernel_primitive:NN \inhibitglue \ptex_inhibitglue:D
- \__kernel_primitive:NN \inhibitxspcode \ptex_inhibitxspcode:D
- \__kernel_primitive:NN \jcharwidowpenalty \ptex_jcharwidowpenalty:D
- \__kernel_primitive:NN \jfam \ptex_jfam:D
- \__kernel_primitive:NN \jfont \ptex_jfont:D
- \__kernel_primitive:NN \jis \ptex_jis:D
- \__kernel_primitive:NN \kanjiskip \ptex_kanjiskip:D
- \__kernel_primitive:NN \kansuji \ptex_kansuji:D
- \__kernel_primitive:NN \kansujichar \ptex_kansujichar:D
- \__kernel_primitive:NN \kcatcode \ptex_kcatcode:D
- \__kernel_primitive:NN \kuten \ptex_kuten:D
- \__kernel_primitive:NN \noautospacing \ptex_noautospacing:D
- \__kernel_primitive:NN \noautoxspacing \ptex_noautoxspacing:D
- \__kernel_primitive:NN \postbreakpenalty \ptex_postbreakpenalty:D
- \__kernel_primitive:NN \prebreakpenalty \ptex_prebreakpenalty:D
- \__kernel_primitive:NN \showmode \ptex_showmode:D
- \__kernel_primitive:NN \sjis \ptex_sjis:D
- \__kernel_primitive:NN \tate \ptex_tate:D
- \__kernel_primitive:NN \tbaselineshift \ptex_tbaselineshift:D
- \__kernel_primitive:NN \tfont \ptex_tfont:D
- \__kernel_primitive:NN \xkanjiskip \ptex_xkanjiskip:D
- \__kernel_primitive:NN \xspcode \ptex_xspcode:D
- \__kernel_primitive:NN \ybaselineshift \ptex_ybaselineshift:D
- \__kernel_primitive:NN \yoko \ptex_yoko:D
+ \@@_primitive:NN \autospacing \ptex_autospacing:D
+ \@@_primitive:NN \autoxspacing \ptex_autoxspacing:D
+ \@@_primitive:NN \dtou \ptex_dtou:D
+ \@@_primitive:NN \euc \ptex_euc:D
+ \@@_primitive:NN \ifdbox \ptex_ifdbox:D
+ \@@_primitive:NN \ifddir \ptex_ifddir:D
+ \@@_primitive:NN \ifmdir \ptex_ifmdir:D
+ \@@_primitive:NN \iftbox \ptex_iftbox:D
+ \@@_primitive:NN \iftdir \ptex_iftdir:D
+ \@@_primitive:NN \ifybox \ptex_ifybox:D
+ \@@_primitive:NN \ifydir \ptex_ifydir:D
+ \@@_primitive:NN \inhibitglue \ptex_inhibitglue:D
+ \@@_primitive:NN \inhibitxspcode \ptex_inhibitxspcode:D
+ \@@_primitive:NN \jcharwidowpenalty \ptex_jcharwidowpenalty:D
+ \@@_primitive:NN \jfam \ptex_jfam:D
+ \@@_primitive:NN \jfont \ptex_jfont:D
+ \@@_primitive:NN \jis \ptex_jis:D
+ \@@_primitive:NN \kanjiskip \ptex_kanjiskip:D
+ \@@_primitive:NN \kansuji \ptex_kansuji:D
+ \@@_primitive:NN \kansujichar \ptex_kansujichar:D
+ \@@_primitive:NN \kcatcode \ptex_kcatcode:D
+ \@@_primitive:NN \kuten \ptex_kuten:D
+ \@@_primitive:NN \noautospacing \ptex_noautospacing:D
+ \@@_primitive:NN \noautoxspacing \ptex_noautoxspacing:D
+ \@@_primitive:NN \postbreakpenalty \ptex_postbreakpenalty:D
+ \@@_primitive:NN \prebreakpenalty \ptex_prebreakpenalty:D
+ \@@_primitive:NN \showmode \ptex_showmode:D
+ \@@_primitive:NN \sjis \ptex_sjis:D
+ \@@_primitive:NN \tate \ptex_tate:D
+ \@@_primitive:NN \tbaselineshift \ptex_tbaselineshift:D
+ \@@_primitive:NN \tfont \ptex_tfont:D
+ \@@_primitive:NN \xkanjiskip \ptex_xkanjiskip:D
+ \@@_primitive:NN \xspcode \ptex_xspcode:D
+ \@@_primitive:NN \ybaselineshift \ptex_ybaselineshift:D
+ \@@_primitive:NN \yoko \ptex_yoko:D
% \end{macrocode}
% Primitives from up\TeX{}.
% \begin{macrocode}
- \__kernel_primitive:NN \disablecjktoken \uptex_disablecjktoken:D
- \__kernel_primitive:NN \enablecjktoken \uptex_enablecjktoken:D
- \__kernel_primitive:NN \forcecjktoken \uptex_forcecjktoken:D
- \__kernel_primitive:NN \kchar \uptex_kchar:D
- \__kernel_primitive:NN \kchardef \uptex_kchardef:D
- \__kernel_primitive:NN \kuten \uptex_kuten:D
- \__kernel_primitive:NN \ucs \uptex_ucs:D
+ \@@_primitive:NN \disablecjktoken \uptex_disablecjktoken:D
+ \@@_primitive:NN \enablecjktoken \uptex_enablecjktoken:D
+ \@@_primitive:NN \forcecjktoken \uptex_forcecjktoken:D
+ \@@_primitive:NN \kchar \uptex_kchar:D
+ \@@_primitive:NN \kchardef \uptex_kchardef:D
+ \@@_primitive:NN \kuten \uptex_kuten:D
+ \@@_primitive:NN \ucs \uptex_ucs:D
% \end{macrocode}
% End of the \enquote{just the names} part of the source.
% \begin{macrocode}
@@ -1117,23 +1118,23 @@
% \end{macrocode}
%
% \LaTeXe{} moves a few primitives, so these are sorted out.
-% A convenient test for \LaTeXe{} is the \cs{@@end} saved primitive.
+% A convenient test for \LaTeXe{} is the \cs{@@@@end} saved primitive.
% \begin{macrocode}
%<*package>
-\etex_ifdefined:D \@@end
- \tex_let:D \tex_end:D \@@end
+\etex_ifdefined:D \@@@@end
+ \tex_let:D \tex_end:D \@@@@end
\tex_let:D \tex_everydisplay:D \frozen@everydisplay
\tex_let:D \tex_everymath:D \frozen@everymath
- \tex_let:D \tex_hyphen:D \@@hyph
- \tex_let:D \tex_input:D \@@input
- \tex_let:D \tex_italiccorrection:D \@@italiccorr
- \tex_let:D \tex_underline:D \@@underline
+ \tex_let:D \tex_hyphen:D \@@@@hyph
+ \tex_let:D \tex_input:D \@@@@input
+ \tex_let:D \tex_italiccorrection:D \@@@@italiccorr
+ \tex_let:D \tex_underline:D \@@@@underline
% \end{macrocode}
% Some tidying up is needed for \tn[index=tracingfonts]{(pdf)tracingfonts}. Newer \LuaTeX{} has
% this simply as \tn{tracingfonts}, but that is overwritten by
% the \LaTeXe{} kernel. So any spurious definition has to be removed, then
% the real version saved either from the \pdfTeX{} name or from \LuaTeX{}.
-% In the latter case, we leave \tn{@@tracingfonts} available: this might
+% In the latter case, we leave \tn{@@@@tracingfonts} available: this might
% be useful and almost all \LaTeXe{} users will have \pkg{expl3} loaded by
% \pkg{fontspec}. (We follow the usual kernel convention that |@@| is used
% for saved primitives.)
@@ -1143,7 +1144,7 @@
\tex_let:D \pdftex_tracingfonts:D \pdftracingfonts
\tex_else:D
\etex_ifdefined:D \luatex_directlua:D
- \luatex_directlua:D { tex.enableprimitives("@@", {"tracingfonts"}) }
+ \luatex_directlua:D { tex.enableprimitives("@@@@", {"tracingfonts"}) }
\tex_let:D \pdftex_tracingfonts:D \luatextracingfonts
\tex_fi:D
\tex_fi:D
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx b/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
index 4fe4cb652c9..1fd750dd607 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
@@ -42,7 +42,7 @@
% }
%
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 67af5299b7c..e1b4e52caf2 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -280,7 +280,7 @@
% the logical truth of this evaluation.
% \end{function}
%
-% \begin{function}[EXP,pTF]{\bool_if:N, \bool_if:c}
+% \begin{function}[EXP,pTF, updated = 2017-07-15]{\bool_if:N, \bool_if:c}
% \begin{syntax}
% \cs{bool_if_p:N} \meta{boolean}
% \cs{bool_if:NTF} \meta{boolean} \Arg{true code} \Arg{false code}
@@ -497,7 +497,7 @@
%
% Loops using either boolean expressions or stored boolean values.
%
-% \begin{function}[rEXP]{\bool_do_until:Nn, \bool_do_until:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_do_until:Nn, \bool_do_until:cn}
% \begin{syntax}
% \cs{bool_do_until:Nn} \meta{boolean} \Arg{code}
% \end{syntax}
@@ -508,7 +508,7 @@
% \texttt{true}.
% \end{function}
%
-% \begin{function}[rEXP]{\bool_do_while:Nn, \bool_do_while:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_do_while:Nn, \bool_do_while:cn}
% \begin{syntax}
% \cs{bool_do_while:Nn} \meta{boolean} \Arg{code}
% \end{syntax}
@@ -519,7 +519,7 @@
% \texttt{false}.
% \end{function}
%
-% \begin{function}[rEXP]{\bool_until_do:Nn, \bool_until_do:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_until_do:Nn, \bool_until_do:cn}
% \begin{syntax}
% \cs{bool_until_do:Nn} \meta{boolean} \Arg{code}
% \end{syntax}
@@ -530,7 +530,7 @@
% until the \meta{boolean} is \texttt{true}.
% \end{function}
%
-% \begin{function}[rEXP]{\bool_while_do:Nn, \bool_while_do:cn}
+% \begin{function}[rEXP, updated = 2017-07-15]{\bool_while_do:Nn, \bool_while_do:cn}
% \begin{syntax}
% \cs{bool_while_do:Nn} \meta{boolean} \Arg{code}
% \end{syntax}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index b44693bdb13..ea39fcc4b58 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index 5ad64e6a37f..e6332836e3a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index c1e07cca601..e499957216a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index 44fb86d338c..6d8a0d0acdd 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 044aba65b3e..9d810aa9872 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -1110,7 +1110,8 @@
% \begin{macro}{\dim_gset:Nn, \dim_gset:cn}
% Setting dimensions is easy enough.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_set:Nn } }
\cs_new_protected:Npn \dim_set:Nn #1#2
{ #1 ~ \@@_eval:w #2 \@@_eval_end: }
\cs_new_protected:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
@@ -1141,13 +1142,15 @@
% \begin{macro}{\dim_gsub:Nn, \dim_gsub:cn}
% Using |by| here deals with the (incorrect) case |\dimen123|.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_add:Nn } }
\cs_new_protected:Npn \dim_add:Nn #1#2
{ \tex_advance:D #1 by \@@_eval:w #2 \@@_eval_end: }
\cs_new_protected:Npn \dim_gadd:Nn { \tex_global:D \dim_add:Nn }
\cs_generate_variant:Nn \dim_add:Nn { c }
\cs_generate_variant:Nn \dim_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_sub:Nn } }
\cs_new_protected:Npn \dim_sub:Nn #1#2
{ \tex_advance:D #1 by - \@@_eval:w #2 \@@_eval_end: }
\cs_new_protected:Npn \dim_gsub:Nn { \tex_global:D \dim_sub:Nn }
@@ -1172,7 +1175,8 @@
% Functions for $\min$, $\max$, and absolute value with only one evaluation.
% The absolute value is evaluated by removing a leading~|-| if present.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_abs:n } }
\cs_new:Npn \dim_abs:n #1
{
\exp_after:wN \@@_abs:N
@@ -1180,7 +1184,11 @@
}
\cs_new:Npn \@@_abs:N #1
{ \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_max:nn }
+ { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_max:nn }
+ }
\cs_new:Npn \dim_max:nn #1#2
{
\dim_use:N \@@_eval:w \exp_after:wN \@@_maxmin:wwN
@@ -1189,7 +1197,11 @@
>
\@@_eval_end:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_min:nn }
+ { \__debug_chk_expr:nNnN {#2} \@@_eval:w { } \dim_min:nn }
+ }
\cs_new:Npn \dim_min:nn #1#2
{
\dim_use:N \@@_eval:w \exp_after:wN \@@_maxmin:wwN
@@ -1233,7 +1245,12 @@
% \begin{macro}[pTF, EXP]{\dim_compare:nNn}
% Simple comparison.
% \begin{macrocode}
-\__debug_patch_conditional_args:nNNpnn { { (#1) \@@_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+ {
+ { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_compare:nNn }
+ { \@@_eval_end: #2 }
+ { \__debug_chk_expr:nNnN {#3} \@@_eval:w { } \dim_compare:nNn }
+ }
\prg_new_conditional:Npnn \dim_compare:nNn #1#2#3 { p , T , F , TF }
{
\if_dim:w \@@_eval:w #1 #2 \@@_eval:w #3 \@@_eval_end:
@@ -1433,7 +1450,8 @@
% \begin{macro}{\dim_eval:n}
% Evaluating a dimension expression expandably.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_eval:n } }
\cs_new:Npn \dim_eval:n #1
{ \dim_use:N \@@_eval:w #1 \@@_eval_end: }
% \end{macrocode}
@@ -1460,7 +1478,8 @@
% terminating early and leaving extra tokens lying around. This is
% used a lot by low-level manipulations.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_to_decimal:n } }
\cs_new:Npn \dim_to_decimal:n #1
{
\exp_after:wN
@@ -1495,7 +1514,8 @@
% Another hard-coded conversion: this one is necessary to avoid things going
% off-scale.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \@@_eval:w { } \dim_to_decimal_in_sp:n } }
\cs_new:Npn \dim_to_decimal_in_sp:n #1
{ \int_eval:n { \@@_eval:w #1 \@@_eval_end: } }
% \end{macrocode}
@@ -1645,7 +1665,8 @@
% \begin{macro}{\skip_gset:Nn, \skip_gset:cn}
% Much the same as for dimensions.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_set:Nn } }
\cs_new_protected:Npn \skip_set:Nn #1#2
{ #1 ~ \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
@@ -1677,13 +1698,15 @@
% \begin{macro}{\skip_gsub:Nn, \skip_gsub:cn}
% Using |by| here deals with the (incorrect) case |\skip123|.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_add:Nn } }
\cs_new_protected:Npn \skip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gadd:Nn { \tex_global:D \skip_add:Nn }
\cs_generate_variant:Nn \skip_add:Nn { c }
\cs_generate_variant:Nn \skip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_sub:Nn } }
\cs_new_protected:Npn \skip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gsub:Nn { \tex_global:D \skip_sub:Nn }
@@ -1726,7 +1749,13 @@
% \begin{macrocode}
\cs_set_protected:Npn \__cs_tmp:w #1
{
- \__debug_patch_conditional_args:nNNpnn { { (##1) } }
+ \__debug_patch_conditional_args:nNNpnn
+ {
+ {
+ \__debug_chk_expr:nNnN
+ {##1} \etex_glueexpr:D { } \skip_if_finite:n
+ }
+ }
\prg_new_conditional:Npnn \skip_if_finite:n ##1 { p , T , F , TF }
{
\exp_after:wN \__skip_if_finite:wwNw
@@ -1745,7 +1774,8 @@
% \begin{macro}{\skip_eval:n}
% Evaluating a skip expression expandably.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } }
\cs_new:Npn \skip_eval:n #1
{ \skip_use:N \etex_glueexpr:D #1 \scan_stop: }
% \end{macrocode}
@@ -1767,11 +1797,13 @@
% Inserting skips.
% \begin{macrocode}
\cs_new_eq:NN \skip_horizontal:N \tex_hskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_horizontal:n } }
\cs_new:Npn \skip_horizontal:n #1
{ \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: }
\cs_new_eq:NN \skip_vertical:N \tex_vskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_vertical:n } }
\cs_new:Npn \skip_vertical:n #1
{ \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: }
\cs_generate_variant:Nn \skip_horizontal:N { c }
@@ -1909,7 +1941,14 @@
% \begin{macro}{\muskip_gset:Nn, \muskip_gset:cn}
% This should be pretty familiar.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_set:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_set:Nn #1#2
{ #1 ~ \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
@@ -1947,13 +1986,27 @@
% \begin{macro}{\muskip_gsub:Nn, \muskip_gsub:cn}
% Using |by| here deals with the (incorrect) case |\muskip123|.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_add:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gadd:Nn { \tex_global:D \muskip_add:Nn }
\cs_generate_variant:Nn \muskip_add:Nn { c }
\cs_generate_variant:Nn \muskip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_sub:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gsub:Nn { \tex_global:D \muskip_sub:Nn }
@@ -1970,7 +2023,13 @@
% \begin{macro}{\muskip_eval:n}
% Evaluating a muskip expression expandably.
% \begin{macrocode}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ {
+ {
+ \__debug_chk_expr:nNnN {#1} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_eval:n
+ }
+ }
\cs_new:Npn \muskip_eval:n #1
{ \muskip_use:N \etex_muexpr:D #1 \scan_stop: }
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index 2f3bc0afab5..7b4c334f8a1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index 2ed04451f7d..6b29004467d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -71,7 +71,7 @@
%
% As a string is a subset of the more general token list, it is sometimes unclear
% when one should be used over the other.
-% Use a string variable for data that isn’t primarily intended for typesetting
+% Use a string variable for data that isn't primarily intended for typesetting
% and for which a level of protection from unwanted expansion is suitable.
% This data type simplifies comparison of variables since there are no concerns
% about expansion of their contents.
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index e23a84d4717..9cc690459ff 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index 1be06702cb6..18fccde9344 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
index 0b34405e188..4208ba085be 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-build.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 4d9390f0654..4613e18fda0 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index fa14dede902..55f5805e538 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -146,6 +146,11 @@
% range ($0$ to $255$) is accepted due to engine limitations.
% \end{function}
%
+% \begin{variable}[added = 2011-09-05]{\c_catcode_other_space_tl}
+% Token list containing one character with category code $12$,
+% (\enquote{other}), and character code $32$ (space).
+% \end{variable}
+%
% \section{Manipulating and interrogating character tokens}
%
% \begin{function}[updated = 2015-11-11]
@@ -1597,6 +1602,13 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\c_catcode_other_space_tl}
+% Create a space with category code $12$: an \enquote{other} space.
+% \begin{macrocode}
+\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Generic tokens}
%
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
index abd41d41c05..3c7709fe63b 100644
--- a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
@@ -23,8 +23,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
%<package> {}
%<package> {%
%<package> \PackageError{l3keys2e}{Support package l3kernel too old}
@@ -60,7 +60,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -131,7 +131,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2017/07/19}{}
+\ProvidesExplPackage{l3keys2e}{2017/09/18}{}
{LaTeX2e option processing using LaTeX3 keys}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
index 1b0a6063dac..7d0787fefa6 100644
--- a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
@@ -23,8 +23,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
%<package> {}
%<package> {%
%<package> \PackageError{xfp}{Support package l3kernel too old}
@@ -62,14 +62,15 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
% \begin{documentation}
%
% This package provides a \LaTeXe{} document-level interface to the \LaTeX{}3
-% floating point unit (part of \pkg{expl3}).
+% floating point unit (part of \pkg{expl3}). It also provides a parallel
+% integer expression interface for convenience.
%
% \begin{function}[EXP]{\fpeval}
% The expandable command \cs{fpeval} takes as it's argument a floating
@@ -129,7 +130,22 @@
% An example of use could be the following.
% \begin{verbatim}
% \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
-% = \fpeval{sin 3.5 /2 + 2e-3} $.
+% = \fpeval{sin(3.5)/2 + 2e-3} $.
+% \end{verbatim}
+%
+% \begin{function}[EXP]{\inteval}
+% The expandable command \cs{inteval} takes as its argument an integer
+% expression and produces a result using the normal rules of
+% mathematics. The operations recognised are |+|, |-|, |*| and |/| plus
+% parentheses. Division occurs with \emph{rounding}, and ties are rounded
+% away from zero. As this command is
+% expandable it can be used where \TeX{} requires a number and for example
+% within a low-level \cs{edef} operation to give a purely numerical result.
+% \end{function}
+%
+% An example of use could be the following.
+% \begin{verbatim}
+% \LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.
% \end{verbatim}
%
% \end{documentation}
@@ -143,7 +159,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfp}{2017/07/19}{}
+\ProvidesExplPackage{xfp}{2017/09/18}{}
{L3 Floating point unit}
% \end{macrocode}
%
@@ -154,6 +170,13 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\inteval}
+% A second one, this time around an \eTeX{} primitive.
+% \begin{macrocode}
+\NewExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
index 668a640a081..b448459147d 100644
--- a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
@@ -24,8 +24,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
%<package> {}
%<package> {%
%<package> \PackageError{xfrac}{Support package l3kernel too old}
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -533,7 +533,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfrac}{2017/07/19}{}
+\ProvidesExplPackage{xfrac}{2017/09/18}{}
{L3 Experimental split-level fractions}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
index 34826137abe..30b8ff8abd8 100644
--- a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
@@ -27,8 +27,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
%<package> {}
%<package> {%
%<package> \PackageError{xparse}{Support package l3kernel too old}
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -776,7 +776,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2017/07/19}{}
+\ProvidesExplPackage{xparse}{2017/09/18}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
index 8a472f07df9..c2ce2a86593 100644
--- a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
@@ -27,8 +27,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/07/19]
-%<package>\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+%<package>\@ifpackagelater{expl3}{2017/09/18}
%<package> {}
%<package> {%
%<package> \PackageError{xtemplate}{Support package l3kernel too old}
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2017/07/19}
+% \date{Released 2017/09/18}
%
% \maketitle
%
@@ -682,7 +682,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xtemplate}{2017/07/19}{}
+\ProvidesExplPackage{xtemplate}{2017/09/18}{}
{L3 Experimental prototype document functions}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
index ea31b631e3e..c1acc984d1e 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-convert.dtx Copyright (C) 2013-2017 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-convert}{2017/07/19}{}
+\ProvidesExplPackage{l3str-convert}{2017/09/18}{}
{L3 Experimental string encoding conversions}
\cs_if_exist:NF \use_ii_i:nn
{ \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index 07f749f82e4..3fda583f978 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-format.dtx Copyright (C) 2012-2013,2015-2017 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-format}{2017/07/19}{}
+\ProvidesExplPackage{l3str-format}{2017/09/18}{}
{L3 Experimental string formatting}
\RequirePackage{l3str}
\cs_generate_variant:Nn \use:nn { nf }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index 46d6e88037a..defb96c8445 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
@@ -20,7 +20,7 @@
%%
%% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016,2017 The LaTeX3 Project
\RequirePackage{xparse}
-\ProvidesExplPackage{xcoffins}{2017/07/19}{}
+\ProvidesExplPackage{xcoffins}{2017/09/18}{}
{L3 Experimental design level coffins}
\keys_define:nn { coffin }
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index d081dfb51ba..8ec66f1f311 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -20,8 +20,8 @@
%%
%% File: l3galley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
%% (C) 2010-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
{}
{%
\PackageError{l3galley}{Support package l3kernel too old}
@@ -33,7 +33,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3galley}{2017/07/19}{}
+\ProvidesExplPackage{l3galley}{2017/09/18}{}
{L3 Experimental galley code}
\int_new:N \l__galley_tmp_int
\seq_new:N \g__galley_tmpa_seq
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
index a44fe9600fd..a31b3af3855 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
@@ -21,7 +21,7 @@
%% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
%% (C) 2010-2012,2014,2016-2017 The LaTeX3 Project
\RequirePackage{xparse}
-\ProvidesExplPackage{xgalley}{2017/07/19}{}
+\ProvidesExplPackage{xgalley}{2017/09/18}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
\clist_new:N \l__galley_tmpa_clist
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 55ca81971be..4e9108fafe9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -62,7 +62,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -1552,6 +1552,36 @@
{ }
\__debug:TF
{
+ \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_on: }
+ {
+ \cs_set:Npn \__debug_chk_expr:nNnN ##1##2
+ {
+ \exp_after:wN \__debug_chk_expr_aux:nNnN
+ \exp_after:wN { \tex_the:D ##2 ##1 \tex_relax:D }
+ ##2
+ }
+ }
+ \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_off: }
+ { \cs_set:Npn \__debug_chk_expr:nNnN ##1##2##3##4 {##1} }
+ \use:c { __debug_check-expressions_off: }
+ \cs_set:Npn \__debug_chk_expr_aux:nNnN #1#2#3#4
+ {
+ \tl_if_empty:oF
+ {
+ \tex_romannumeral:D - 0
+ \exp_after:wN \use_none:n
+ \__int_value:w #3 #2 #1 \tex_relax:D
+ }
+ {
+ \__msg_kernel_expandable_error:nnnn
+ { kernel } { expr } {#4} {#1}
+ }
+ #1
+ }
+ }
+ { }
+\__debug:TF
+ {
\exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_on: }
{
\cs_set_protected:Npn \__debug_log:x { \iow_log:x }
@@ -4763,10 +4793,12 @@
\cs_new_eq:NN \__int_eval_end: \tex_relax:D
\cs_new_eq:NN \if_int_odd:w \tex_ifodd:D
\cs_new_eq:NN \if_case:w \tex_ifcase:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_eval:n } }
\cs_new:Npn \int_eval:n #1
{ \__int_value:w \__int_eval:w #1 \__int_eval_end: }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_abs:n } }
\cs_new:Npn \int_abs:n #1
{
\__int_value:w \exp_after:wN \__int_abs:N
@@ -4775,7 +4807,11 @@
}
\cs_new:Npn \__int_abs:N #1
{ \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_max:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_max:nn }
+ }
\cs_set:Npn \int_max:nn #1#2
{
\__int_value:w \exp_after:wN \__int_maxmin:wwN
@@ -4784,7 +4820,11 @@
>
\exp_stop_f:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_min:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_min:nn }
+ }
\cs_set:Npn \int_min:nn #1#2
{
\__int_value:w \exp_after:wN \__int_maxmin:wwN
@@ -4801,7 +4841,11 @@
#2
\fi:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_div_truncate:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_div_truncate:nn }
+ }
\cs_new:Npn \int_div_truncate:nn #1#2
{
\__int_value:w \__int_eval:w
@@ -4825,7 +4869,11 @@
}
\cs_new:Npn \int_div_round:nn #1#2
{ \__int_value:w \__int_eval:w ( #1 ) / ( #2 ) \__int_eval_end: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_mod:nn }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_mod:nn }
+ }
\cs_new:Npn \int_mod:nn #1#2
{
\__int_value:w \__int_eval:w \exp_after:wN \__int_mod:ww
@@ -4841,6 +4889,8 @@
\cs:w newcount \cs_end: #1
}
\cs_generate_variant:Nn \int_new:N { c }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_const:Nn } }
\cs_new_protected:Npn \int_const:Nn #1#2
{
\int_compare:nNnTF {#2} < \c_zero
@@ -4857,7 +4907,7 @@
{
\__chk_if_free_cs:N #1
\tex_global:D \__int_constdef:Nw #1 =
- \__int_eval:w (#2) \__int_eval_end:
+ \__int_eval:w #2 \__int_eval_end:
}
}
}
@@ -4895,10 +4945,12 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \int_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_add:Nn } }
\cs_new_protected:Npn \int_add:Nn #1#2
{ \tex_advance:D #1 by \__int_eval:w #2 \__int_eval_end: }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_sub:Nn } }
\cs_new_protected:Npn \int_sub:Nn #1#2
{ \tex_advance:D #1 by - \__int_eval:w #2 \__int_eval_end: }
\cs_new_protected:Npn \int_gadd:Nn
@@ -4921,7 +4973,8 @@
\cs_generate_variant:Nn \int_decr:N { c }
\cs_generate_variant:Nn \int_gincr:N { c }
\cs_generate_variant:Nn \int_gdecr:N { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_set:Nn } }
\cs_new_protected:Npn \int_set:Nn #1#2
{ #1 ~ \__int_eval:w #2 \__int_eval_end: }
\cs_new_protected:Npn \int_gset:Nn { \tex_global:D \int_set:Nn }
@@ -4997,7 +5050,12 @@
{ \__int_compare:nnN { \if_int_compare:w } {#3} > }
\cs_new:cpn { __int_compare_>=:NNw } #1#2#3 >=
{ \__int_compare:nnN { \if_int_compare:w } {#3} < }
-\__debug_patch_conditional_args:nNNpnn { { (#1) \__int_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_compare:nNn }
+ { \__int_eval_end: #2 }
+ { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_compare:nNn }
+ }
\prg_new_conditional:Npnn \int_compare:nNn #1#2#3 { p , T , F , TF }
{
\if_int_compare:w \__int_eval:w #1 #2 \__int_eval:w #3 \__int_eval_end:
@@ -5035,7 +5093,8 @@
{ \__int_case:nw {#1} }
}
\cs_new_eq:NN \__int_case_end:nw \__prg_case_end:nw
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_odd:n } }
\prg_new_conditional:Npnn \int_if_odd:n #1 { p , T , F , TF}
{
\if_int_odd:w \__int_eval:w #1 \__int_eval_end:
@@ -5044,7 +5103,8 @@
\prg_return_false:
\fi:
}
-\__debug_patch_conditional_args:nNNpnn { { (#1) } }
+\__debug_patch_conditional_args:nNNpnn
+ { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_even:n } }
\prg_new_conditional:Npnn \int_if_even:n #1 { p , T , F , TF}
{
\if_int_odd:w \__int_eval:w #1 \__int_eval_end:
@@ -5109,7 +5169,12 @@
\int_compare:nNnF {#1} #2 {#3}
{ \int_do_until:nNnn {#1} #2 {#3} {#4} }
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } { (#3) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_step_function:nnnN }
+ { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_step_function:nnnN }
+ { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_step_function:nnnN }
+ }
\cs_new:Npn \int_step_function:nnnN #1#2#3
{
\exp_after:wN \__int_step:wwwN
@@ -6893,6 +6958,7 @@
}
\fi:
\group_end:
+\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } }
\cs_new_protected:Npn \token_new:Nn #1#2 { \cs_new_eq:NN #1 #2 }
\group_begin:
\__chk_if_free_cs:N \c_group_begin_token
@@ -8272,6 +8338,7 @@
'\iow_char:N\\debug_off:n'~only~accept~the~arguments~
'check-declarations',~'deprecation',~'log-functions',~not~'#1'.
}
+ \__msg_kernel_new:nnn { kernel } { expr } { '#2'~in~#1 }
\__msg_kernel_new:nnnn { kernel } { non-declared-variable }
{ The~variable~#1~has~not~been~declared~\msg_line_context:. }
{
@@ -8929,7 +8996,6 @@
\cs_new_protected:Npn \iow_term:n { \iow_now:Nn \c_term_iow }
\cs_new:Npn \iow_newline: { ^^J }
\cs_new_eq:NN \iow_char:N \cs_to_str:N
-\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } }
\int_new:N \l_iow_line_count_int
\int_set:Nn \l_iow_line_count_int { 78 }
\tl_new:N \l__iow_newline_tl
@@ -9317,7 +9383,8 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \dim_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_set:Nn } }
\cs_new_protected:Npn \dim_set:Nn #1#2
{ #1 ~ \__dim_eval:w #2 \__dim_eval_end: }
\cs_new_protected:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
@@ -9329,19 +9396,22 @@
\cs_new_protected:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \dim_gset_eq:NN { c }
\cs_generate_variant:Nn \dim_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_add:Nn } }
\cs_new_protected:Npn \dim_add:Nn #1#2
{ \tex_advance:D #1 by \__dim_eval:w #2 \__dim_eval_end: }
\cs_new_protected:Npn \dim_gadd:Nn { \tex_global:D \dim_add:Nn }
\cs_generate_variant:Nn \dim_add:Nn { c }
\cs_generate_variant:Nn \dim_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_sub:Nn } }
\cs_new_protected:Npn \dim_sub:Nn #1#2
{ \tex_advance:D #1 by - \__dim_eval:w #2 \__dim_eval_end: }
\cs_new_protected:Npn \dim_gsub:Nn { \tex_global:D \dim_sub:Nn }
\cs_generate_variant:Nn \dim_sub:Nn { c }
\cs_generate_variant:Nn \dim_gsub:Nn { c }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_abs:n } }
\cs_new:Npn \dim_abs:n #1
{
\exp_after:wN \__dim_abs:N
@@ -9349,7 +9419,11 @@
}
\cs_new:Npn \__dim_abs:N #1
{ \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_max:nn }
+ { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_max:nn }
+ }
\cs_new:Npn \dim_max:nn #1#2
{
\dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
@@ -9358,7 +9432,11 @@
>
\__dim_eval_end:
}
-\__debug_patch_args:nNNpn { { (#1) } { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_min:nn }
+ { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_min:nn }
+ }
\cs_new:Npn \dim_min:nn #1#2
{
\dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
@@ -9379,7 +9457,12 @@
{ \__dim_ratio:n {#1} / \__dim_ratio:n {#2} }
\cs_new:Npn \__dim_ratio:n #1
{ \__int_value:w \__dim_eval:w (#1) \__dim_eval_end: }
-\__debug_patch_conditional_args:nNNpnn { { (#1) \__dim_eval_end: } {#2} { (#3) } }
+\__debug_patch_conditional_args:nNNpnn
+ {
+ { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_compare:nNn }
+ { \__dim_eval_end: #2 }
+ { \__debug_chk_expr:nNnN {#3} \__dim_eval:w { } \dim_compare:nNn }
+ }
\prg_new_conditional:Npnn \dim_compare:nNn #1#2#3 { p , T , F , TF }
{
\if_dim:w \__dim_eval:w #1 #2 \__dim_eval:w #3 \__dim_eval_end:
@@ -9506,12 +9589,14 @@
\dim_compare:nNnF {#1} #2 {#3}
{ \dim_do_until:nNnn {#1} #2 {#3} {#4} }
}
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_eval:n } }
\cs_new:Npn \dim_eval:n #1
{ \dim_use:N \__dim_eval:w #1 \__dim_eval_end: }
\cs_new_eq:NN \dim_use:N \tex_the:D
\cs_new:Npn \dim_use:c #1 { \tex_the:D \cs:w #1 \cs_end: }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal:n } }
\cs_new:Npn \dim_to_decimal:n #1
{
\exp_after:wN
@@ -9529,7 +9614,8 @@
}
\cs_new:Npn \dim_to_decimal_in_bp:n #1
{ \dim_to_decimal:n { ( #1 ) * 800 / 803 } }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal_in_sp:n } }
\cs_new:Npn \dim_to_decimal_in_sp:n #1
{ \int_eval:n { \__dim_eval:w #1 \__dim_eval_end: } }
\cs_new:Npn \dim_to_decimal_in_unit:nn #1#2
@@ -9580,7 +9666,8 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \skip_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_set:Nn } }
\cs_new_protected:Npn \skip_set:Nn #1#2
{ #1 ~ \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
@@ -9592,13 +9679,15 @@
\cs_new_protected:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \skip_gset_eq:NN { c }
\cs_generate_variant:Nn \skip_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_add:Nn } }
\cs_new_protected:Npn \skip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gadd:Nn { \tex_global:D \skip_add:Nn }
\cs_generate_variant:Nn \skip_add:Nn { c }
\cs_generate_variant:Nn \skip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ { {#1} { \__debug_chk_expr:nNnN {#2} \etex_glueexpr:D { } \skip_sub:Nn } }
\cs_new_protected:Npn \skip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gsub:Nn { \tex_global:D \skip_sub:Nn }
@@ -9616,7 +9705,13 @@
}
\cs_set_protected:Npn \__cs_tmp:w #1
{
- \__debug_patch_conditional_args:nNNpnn { { (##1) } }
+ \__debug_patch_conditional_args:nNNpnn
+ {
+ {
+ \__debug_chk_expr:nNnN
+ {##1} \etex_glueexpr:D { } \skip_if_finite:n
+ }
+ }
\prg_new_conditional:Npnn \skip_if_finite:n ##1 { p , T , F , TF }
{
\exp_after:wN \__skip_if_finite:wwNw
@@ -9626,17 +9721,20 @@
\cs_new:Npn \__skip_if_finite:wwNw ##1 #1 ##2 ; ##3 ##4 \q_stop {##3}
}
\exp_args:No \__cs_tmp:w { \tl_to_str:n { fil } }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } }
\cs_new:Npn \skip_eval:n #1
{ \skip_use:N \etex_glueexpr:D #1 \scan_stop: }
\cs_new_eq:NN \skip_use:N \tex_the:D
\cs_new:Npn \skip_use:c #1 { \tex_the:D \cs:w #1 \cs_end: }
\cs_new_eq:NN \skip_horizontal:N \tex_hskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_horizontal:n } }
\cs_new:Npn \skip_horizontal:n #1
{ \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: }
\cs_new_eq:NN \skip_vertical:N \tex_vskip:D
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_vertical:n } }
\cs_new:Npn \skip_vertical:n #1
{ \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: }
\cs_generate_variant:Nn \skip_horizontal:N { c }
@@ -9682,7 +9780,14 @@
{ TF , T , F , p }
\prg_new_eq_conditional:NNn \muskip_if_exist:c \cs_if_exist:c
{ TF , T , F , p }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_set:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_set:Nn #1#2
{ #1 ~ \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
@@ -9694,19 +9799,39 @@
\cs_new_protected:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \muskip_gset_eq:NN { c }
\cs_generate_variant:Nn \muskip_gset_eq:NN { Nc , cc }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_add:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_add:Nn #1#2
{ \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gadd:Nn { \tex_global:D \muskip_add:Nn }
\cs_generate_variant:Nn \muskip_add:Nn { c }
\cs_generate_variant:Nn \muskip_gadd:Nn { c }
-\__debug_patch_args:nNNpn { {#1} { (#2) } }
+\__debug_patch_args:nNNpn
+ {
+ {#1}
+ {
+ \__debug_chk_expr:nNnN {#2} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_sub:Nn
+ }
+ }
\cs_new_protected:Npn \muskip_sub:Nn #1#2
{ \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gsub:Nn { \tex_global:D \muskip_sub:Nn }
\cs_generate_variant:Nn \muskip_sub:Nn { c }
\cs_generate_variant:Nn \muskip_gsub:Nn { c }
-\__debug_patch_args:nNNpn { { (#1) } }
+\__debug_patch_args:nNNpn
+ {
+ {
+ \__debug_chk_expr:nNnN {#1} \etex_muexpr:D
+ { \etex_mutoglue:D } \muskip_eval:n
+ }
+ }
\cs_new:Npn \muskip_eval:n #1
{ \muskip_use:N \etex_muexpr:D #1 \scan_stop: }
\cs_new_eq:NN \muskip_use:N \tex_the:D
@@ -14854,25 +14979,25 @@
\exp_stop_f:
}
\cs_new:Npn \__fp_pow_neg_case_aux:nnnnn #1#2#3#4#5
- { \__fp_pow_neg_case_aux:w #1 ; #2 #3 ; #4 #5 ; }
-\cs_new:Npn \__fp_pow_neg_case_aux:w #1 ; #2 ; #3 ;
{
\if_int_compare:w #1 > \c__fp_prec_int
-1
\else:
+ \__fp_decimate:nNnnnn { \c__fp_prec_int - #1 }
+ \__fp_pow_neg_case_aux:Nnnw
+ {#2} {#3} {#4} {#5}
+ \fi:
+ }
+\cs_new:Npn \__fp_pow_neg_case_aux:Nnnw #1#2#3#4 ;
+ {
+ \if_meaning:w 0 #1
\if_int_odd:w #3 \exp_stop_f:
- \if_int_compare:w #1 = \c__fp_prec_int
- 0
- \else:
- 1
- \fi:
+ 0
\else:
- \exp_after:wN \__fp_pow_neg_case_aux:w
- \__int_value:w \__int_eval:w #1 + 1 \exp_after:wN ;
- \__int_value:w \__int_eval:w (#2 + 1) / 2 - 1 \exp_after:wN ;
- \__int_value:w \__int_eval:w
- \if_int_odd:w #2 \exp_stop_f: 5000 0000 + \fi: #3 / 2 ;
+ -1
\fi:
+ \else:
+ 1
\fi:
}
%% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project
@@ -20177,9 +20302,9 @@
\cs_generate_variant:Nn \box_set_ht:Nn { c }
\cs_generate_variant:Nn \box_set_dp:Nn { c }
\cs_generate_variant:Nn \box_set_wd:Nn { c }
-\cs_new_eq:NN \box_use_clear:N \tex_box:D
+\cs_new_eq:NN \box_use_drop:N \tex_box:D
\cs_new_eq:NN \box_use:N \tex_copy:D
-\cs_generate_variant:Nn \box_use_clear:N { c }
+\cs_generate_variant:Nn \box_use_drop:N { c }
\cs_generate_variant:Nn \box_use:N { c }
\__debug_patch_args:nNNpn { { (#1) } {#2} }
\cs_new_protected:Npn \box_move_left:nn #1#2
@@ -20452,7 +20577,7 @@
\box_set_dp:Nn \l__box_internal_box { -\l__box_bottom_new_dim }
\box_set_wd:Nn \l__box_internal_box
{ \l__box_right_new_dim - \l__box_left_new_dim }
- \box_use:N \l__box_internal_box
+ \box_use_drop:N \l__box_internal_box
}
\cs_new_protected:Npn \__box_rotate_x:nnN #1#2#3
{
@@ -20683,7 +20808,7 @@
\hbox_to_wd:nn { \l__box_right_new_dim }
{
\tex_kern:D \l__box_right_new_dim
- \box_use:N \l__box_internal_box
+ \box_use_drop:N \l__box_internal_box
\tex_hss:D
}
}
@@ -20692,7 +20817,7 @@
\hbox:n
{
\tex_kern:D \c_zero_dim
- \box_use:N \l__box_internal_box
+ \box_use_drop:N \l__box_internal_box
\tex_hss:D
}
}
@@ -20705,6 +20830,12 @@
{ 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:cnn }
\cs_new_protected:Npn \box_resize:cnn
{ \box_resize_to_wd_and_ht_plus_dp:cnn }
+\__debug_deprecation:nnNNpn
+ { 2018-12-31 } { \box_use_clear:N }
+\cs_new_protected:Npn \box_use_clear:N { \box_use_drop:N }
+\__debug_deprecation:nnNNpn
+ { 2018-12-31 } { \box_use_clear:c }
+\cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c }
%% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project
\box_new:N \l__coffin_internal_box
\dim_new:N \l__coffin_internal_dim
@@ -21277,7 +21408,7 @@
\mode_leave_vertical:
\__coffin_align:NnnNnnnnN \c_empty_coffin { H } { l }
#1 {#2} {#3} {#4} {#5} \l__coffin_aligned_coffin
- \box_use:N \l__coffin_aligned_coffin
+ \box_use_drop:N \l__coffin_aligned_coffin
}
\cs_generate_variant:Nn \coffin_typeset:Nnnnn { c }
\coffin_new:N \l__coffin_display_coffin
@@ -21394,7 +21525,7 @@
\prop_remove:Nn \l__coffin_display_poles_prop {##1}
\__coffin_display_handles_aux:nnnnnn {##1} ##2 {#2}
}
- \box_use:N \l__coffin_display_coffin
+ \box_use_drop:N \l__coffin_display_coffin
}
\cs_new_protected:Npn \__coffin_display_handles_aux:nnnnnn #1#2#3#4#5#6
{
@@ -22302,6 +22433,8 @@
{ \prg_return_false: }
}
\cs_new:Npn \sys_rand_seed: { \tex_the:D \pdftex_randomseed:D }
+\cs_if_exist:NF \pdftex_randomseed:D
+ { \cs_set:Npn \sys_rand_seed: { 0 } }
\__debug_patch_args:nNNpn { { (#1) } }
\cs_new_protected:Npn \sys_gset_rand_seed:n #1
{ \pdftex_setrandomseed:D \__int_eval:w #1 \__int_eval_end: }
@@ -23548,6 +23681,11 @@
}
}
\group_begin:
+ \char_set_catcode_active:N *
+ \char_set_lccode:nn { `* } { `\ }
+ \tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } }
+\group_end:
+\group_begin:
\cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
{
\cs_new_protected:Npn \__peek_execute_branches_N_type:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index a73f34c362b..a84caf1da12 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\def\tempa{LaTeX2e}%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 0aad65f46ce..86cc90262ad 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project
-\def\ExplFileDate{2017/07/19}%
+\def\ExplFileDate{2017/09/18}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index f65fc2134c6..9040af56ff9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -20,11 +20,15 @@
%%
%% File: l3doc.dtx Copyright (C) 1990-2017 The LaTeX3 project
\RequirePackage{expl3,xparse,calc}
-\ProvidesExplClass{l3doc}{2017/07/19}{}
+\ProvidesExplClass{l3doc}{2017/09/18}{}
{L3 Experimental documentation class}
\clist_new:N \g_docinput_clist
\seq_new:N \g_doc_functions_seq
\seq_new:N \g_doc_macros_seq
+\bool_new:N \l__codedoc_detect_internals_bool
+\bool_set_true:N \l__codedoc_detect_internals_bool
+\tl_new:N \l__codedoc_detect_internals_tl
+\tl_new:N \l__codedoc_detect_internals_cs_tl
\coffin_new:N \l__codedoc_output_coffin
\coffin_new:N \l__codedoc_functions_coffin
\coffin_new:N \l__codedoc_descr_coffin
@@ -123,8 +127,19 @@
{ \prg_return_true: }
}
\cs_generate_variant:Nn \__codedoc_if_almost_str:nT { V }
+\cs_new_protected:Npn \__codedoc_trim_right:Nn #1#2
+ {
+ \cs_set:Npn \__codedoc_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} }
+ \tl_set:Nx #1 { \exp_after:wN \__codedoc_tmp:w #1 #2 \q_stop }
+ }
+\cs_generate_variant:Nn \__codedoc_trim_right:Nn { No }
\cs_new_protected:Npn \__codedoc_replace_at_at:N #1
{
+ \bool_if:NT \l__codedoc_in_implementation_bool
+ {
+ \bool_if:NT \l__codedoc_detect_internals_bool
+ { \__codedoc_detect_internals:N #1 }
+ }
\tl_if_empty:NF \g__codedoc_module_name_tl
{
\exp_args:NNo \__codedoc_replace_at_at_aux:Nn
@@ -141,6 +156,36 @@
\tl_replace_all:Nnn #1 { @ @ } { _ _ #2 }
\tl_replace_all:Nnn #1 { \token_to_str:N a a } { @ @ }
}
+\group_begin:
+ \char_set_catcode_active:N \^^M
+ \cs_new_protected:Npn \__codedoc_detect_internals:N #1
+ {
+ \tl_set_eq:NN \l__codedoc_detect_internals_tl #1
+ \tl_replace_all:Non \l__codedoc_detect_internals_tl { \token_to_str:N _ } { _ }
+ \seq_set_split:NnV \l__codedoc_tmpa_seq { _ _ } \l__codedoc_detect_internals_tl
+ \seq_pop_left:NN \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl
+ \seq_map_variable:NNn \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl
+ {
+ \__codedoc_trim_right:No \l__codedoc_detect_internals_tl
+ \c_catcode_active_space_tl
+ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl ^^M
+ \tl_set_eq:NN \l__codedoc_detect_internals_cs_tl \l__codedoc_detect_internals_tl
+ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl _
+ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl :
+ \__codedoc_trim_right:No \l__codedoc_detect_internals_tl { \token_to_str:N : }
+ \tl_if_empty:NF \l__codedoc_detect_internals_tl
+ {
+ \str_if_eq:NNF \l__codedoc_detect_internals_tl \g__codedoc_module_name_tl
+ {
+ \msg_warning:nnxxx { l3doc } { foreign-internal }
+ { \tl_to_str:N \l__codedoc_detect_internals_cs_tl }
+ { \tl_to_str:N \l__codedoc_detect_internals_tl }
+ { \tl_to_str:N \g__codedoc_module_name_tl }
+ }
+ }
+ }
+ }
+\group_end:
\cs_new:Npn \__codedoc_signature_base_form:n #1
{ \__codedoc_signature_base_form_aux:n #1 \q_stop }
\cs_new:Npn \__codedoc_signature_base_form_aux:n #1
@@ -310,6 +355,12 @@
The~'syntax'~environment~should~only~be~used~once~in~
a~'function'~environment.
}
+\msg_new:nnn { l3doc } { foreign-internal }
+ {
+ A~control~sequence~of~the~form~'...__#1'~was~used.~
+ It~should~only~be~used~in~the~module~'#2'
+ \tl_if_empty:nF {#3} { ,~not~in~'#3' } .
+ }
\DeclareOption { a5paper } { \@latexerr { Option~not~supported } { } }
\DeclareOption { full }
{
@@ -939,7 +990,7 @@
\cs_new_protected:Npn \__codedoc_function_assemble:
{
\hcoffin_set:Nn \l__codedoc_syntax_coffin
- { \box_use_clear:N \g__codedoc_syntax_box }
+ { \box_use_drop:N \g__codedoc_syntax_box }
\bool_if:NTF \l__codedoc_long_name_bool
{
\coffin_join:NnnNnnnn
@@ -1106,7 +1157,7 @@
{
\begin{quote}
\mode_leave_vertical:
- \box_use_clear:N \g__codedoc_syntax_box
+ \box_use_drop:N \g__codedoc_syntax_box
\end{quote}
}
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index 60886d1f6c7..5bfce1cc6ed 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -155,11 +155,11 @@
(#1)
\bool_lazy_or:nnT
{ \l__image_interpolate_bool }
- { ! \tl_if_empty_p:N \l__imge_decode_tl }
+ { ! \tl_if_empty_p:N \l__image_decode_tl }
{
<<
- \tl_if_empty:NF \l__imge_decode_tl
- { /Decode~[ \l__imge_decode_tl ] }
+ \tl_if_empty:NF \l__image_decode_tl
+ { /Decode~[ \l__image_decode_tl ] }
\bool_if:NT \l__image_interpolate_bool
{ /Interpolate~true> }
>>
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index 727fbcbd454..eed9fcf2658 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -379,12 +379,10 @@
\tex_special:D { ps::~72~Resolution~div~72~VResolution~div~neg~scale }
\tex_special:D { ps::~magscale~{1~DVImag~div~dup~scale}~if }
\tex_special:D { ps::~l3x~neg~l3y~neg~translate }
- \group_begin:
- \box_set_wd:Nn #1 { 0pt }
- \box_set_ht:Nn #1 { 0pt }
- \box_set_dp:Nn #1 { 0pt }
- \box_use:N #1
- \group_end:
+ \box_set_wd:Nn #1 { 0pt }
+ \box_set_ht:Nn #1 { 0pt }
+ \box_set_dp:Nn #1 { 0pt }
+ \box_use:N #1
\tex_special:D { ps::[begin] }
\__driver_scope_end:
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index f9bf990c499..df5c3f262fb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -440,12 +440,10 @@
transform="scale(-1,1)~translate({?x},{?y})~scale(-1,-1)"
>
}
- \group_begin:
- \box_set_wd:Nn #1 { 0pt }
- \box_set_ht:Nn #1 { 0pt }
- \box_set_dp:Nn #1 { 0pt }
- \box_use:N #1
- \group_end:
+ \box_set_wd:Nn #1 { 0pt }
+ \box_set_ht:Nn #1 { 0pt }
+ \box_set_dp:Nn #1 { 0pt }
+ \box_use:N #1
\__driver_literal:n { </g> }
\__driver_scope_end:
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index bb94bd8e8ac..8590bc67530 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -28,24 +28,23 @@
{
\cs_new_protected:Npn \__driver_color_pickup:
{
- \tl_set:Nx \l__color_current_tl
- {
- \exp_after:wN \exp_after:wN\exp_after:wN
- \__driver_color_pickup_aux:w \exp_after:wN
- \current@color \c_space_tl 0 ~ 0 ~ 0 \q_stop
- }
+ \exp_last_unbraced:Nx \__driver_color_pickup_aux:w
+ { \current@color } ~ 0 ~ 0 ~ 0 \q_stop
}
\cs_new:Npn \__driver_color_pickup_aux:w #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop
{
- \str_if_eq:nnTF {#2} { g }
- { gray ~ #1 }
+ \tl_set:Nx \l__color_current_tl
{
- \str_if_eq:nnTF {#4} { rg }
- { rgb ~ #1 ~ #2 ~ #3 }
+ \str_if_eq:nnTF {#2} { g }
+ { gray ~ #1 }
{
- \str_if_eq:nnTF {#5} { k }
- { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
- { gray ~ #1 }
+ \str_if_eq:nnTF {#4} { rg }
+ { rgb ~ #1 ~ #2 ~ #3 }
+ {
+ \str_if_eq:nnTF {#5} { k }
+ { cmyk ~ #1 ~ #2 ~ #3 ~ #4 }
+ { gray ~ #1 }
+ }
}
}
}
@@ -127,7 +126,7 @@
\cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
{
\__driver_scope_begin:
- \box_set_wd:Nn #1 \c_zero_dim
+ \box_set_wd:Nn #1 { 0pt }
\fp_set:Nn \l__driver_cos_fp { round ( cosd ( #2 ) , 5 ) }
\fp_compare:nNnT \l__driver_cos_fp = \c_zero_fp
{ \fp_zero:N \l__driver_cos_fp }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index f66bc633b4c..31bd085b8b1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -27,7 +27,7 @@
\@ifpackageloaded { color }
{
\cs_new_protected:Npn \__driver_color_pickup:
- { \tl_set_eq:NN \l__color_current_tl \current@color }
+ { \tl_set:Nx \l__color_current_tl { \current@color } }
}
{ \cs_new_protected:Npn \__driver_color_pickup: { } }
}
@@ -140,11 +140,11 @@
(#1)
\bool_lazy_or:nnT
{ \l__image_interpolate_bool }
- { ! \tl_if_empty_p:N \l__imge_decode_tl }
+ { ! \tl_if_empty_p:N \l__image_decode_tl }
{
<<
- \tl_if_empty:NF \l__imge_decode_tl
- { /Decode~[ \l__imge_decode_tl ] }
+ \tl_if_empty:NF \l__image_decode_tl
+ { /Decode~[ \l__image_decode_tl ] }
\bool_if:NT \l__image_interpolate_bool
{ /Interpolate~true> }
>>
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index be7ed994821..a994028c128 100644
--- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3keys2e.dtx (C) Copyright 2009,2011-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
{}
{%
\PackageError{l3keys2e}{Support package l3kernel too old}
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3keys2e}{2017/07/19}{}
+\ProvidesExplPackage{l3keys2e}{2017/09/18}{}
{LaTeX2e option processing using LaTeX3 keys}
\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
\cs_generate_variant:Nn \keys_if_exist:nnT { nx }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
index 14b9610c35a..542e0ab69ef 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
@@ -19,8 +19,8 @@
%% and all files in that bundle must be distributed together.
%%
%% File: xfp.dtx (C) Copyright 2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
{}
{%
\PackageError{xfp}{Support package l3kernel too old}
@@ -33,9 +33,10 @@
\endinput
}
\RequirePackage{xparse}
-\ProvidesExplPackage{xfp}{2017/07/19}{}
+\ProvidesExplPackage{xfp}{2017/09/18}{}
{L3 Floating point unit}
\NewExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
+\NewExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} }
%%
%%
%% End of file `xfp.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
index fed2e2923f4..a14dec2c0e4 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
@@ -20,8 +20,8 @@
%%
%% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
%% (C) 2011,2012,2014-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
{}
{%
\PackageError{xfrac}{Support package l3kernel too old}
@@ -34,7 +34,7 @@
\endinput
}
\RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
-\ProvidesExplPackage{xfrac}{2017/07/19}{}
+\ProvidesExplPackage{xfrac}{2017/09/18}{}
{L3 Experimental split-level fractions}
\keys_define:nn { xfrac }
{
diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
index 2210b51102d..812f8863e59 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -23,8 +23,8 @@
%% (C) Copyright 2004-2008 Frank Mittelbach,
%% The LaTeX3 Project
%% (C) Copyright 2009-2017 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
{}
{%
\PackageError{xparse}{Support package l3kernel too old}
@@ -36,7 +36,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xparse}{2017/07/19}{}
+\ProvidesExplPackage{xparse}{2017/09/18}{}
{L3 Experimental document command parser}
\tl_const:Nx \c__xparse_no_value_tl
{ \char_generate:nn { `\- } { 11 } NoValue- }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 1d1ef856964..897feae9d8a 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -23,8 +23,8 @@
%% (C) Copyright 2004-2010 Frank Mittelbach,
%% The LaTeX3 Project
%% (C) Copyright 2011-2016 The LaTeX3 Project
-\RequirePackage{expl3}[2017/07/19]
-\@ifpackagelater{expl3}{2017/07/19}
+\RequirePackage{expl3}[2017/09/18]
+\@ifpackagelater{expl3}{2017/09/18}
{}
{%
\PackageError{xtemplate}{Support package l3kernel too old}
@@ -36,7 +36,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xtemplate}{2017/07/19}{}
+\ProvidesExplPackage{xtemplate}{2017/09/18}{}
{L3 Experimental prototype document functions}
\tl_const:Nn \c__xtemplate_code_root_tl { template~code~>~ }
\tl_const:Nn \c__xtemplate_defaults_root_tl { template~defaults~>~ }