2025-03-19 14:07:19 +00:00
|
|
|
--- texk/web2c/doc/luatex/luatex-math.tex
|
2025-03-14 14:58:30 +00:00
|
|
|
+++ texk/web2c/doc/luatex/luatex-math.tex 2025-03-14 08:47:28.158513094 +0100
|
|
|
|
@@ -1,4 +1,4 @@
|
|
|
|
-% language=uk engine=luatex runpath=texruns:manuals/luatex
|
|
|
|
+% language=us engine=luatex runpath=texruns:manuals/luatex
|
|
|
|
|
|
|
|
\environment luatex-style
|
|
|
|
|
|
|
|
@@ -835,31 +835,58 @@ experimenting.
|
|
|
|
|
|
|
|
\topicindex {math+italics}
|
|
|
|
|
|
|
|
-The \lpr {mathitalicsmode} parameter can be set to~1 to force italic correction
|
|
|
|
-before noads that represent some more complex structure (read: everything that is
|
|
|
|
-not an ord, bin, rel, open, close, punct or inner). A value of~2 will enforce the
|
|
|
|
-old school font code path for all italics. We show a Cambria example.
|
|
|
|
-
|
|
|
|
-\starttexdefinition Whatever #1
|
|
|
|
- \NC \type{\mathitalicsmode = #1}
|
|
|
|
- \NC \mathitalicsmode#1\ruledhbox{$\left|T^1\right|$}
|
|
|
|
- \NC \mathitalicsmode#1\ruledhbox{$\left|T\right|$}
|
|
|
|
- \NC \mathitalicsmode#1\ruledhbox{$T+1$}
|
|
|
|
- \NC \mathitalicsmode#1\ruledhbox{$T{1\over2}$}
|
|
|
|
- \NC \mathitalicsmode#1\ruledhbox{$T\sqrt{1}$}
|
|
|
|
- \NC \NR
|
|
|
|
-\stoptexdefinition
|
|
|
|
-
|
|
|
|
-\start
|
|
|
|
- \switchtobodyfont[cambria]
|
|
|
|
- \starttabulate[|c|c|c|c|c|c|]
|
|
|
|
- \Whatever{0}%
|
|
|
|
- \Whatever{1}%
|
|
|
|
- \stoptabulate
|
|
|
|
-\stop
|
|
|
|
-
|
|
|
|
-This kind of parameters relate to the fact that italic correction in \OPENTYPE\
|
|
|
|
-math is bound to fuzzy rules. So, control is the solution.
|
|
|
|
+The \lpr {mathitalicsmode} parameter was introduced to deal with the difference
|
|
|
|
+in applying italic correction in traditional and \OPENTYPE\ math fonts. There are
|
|
|
|
+\OPENTYPE\ fonts out there that have italic correction and assume them to be
|
|
|
|
+applied like traditional \TEX\ fonts. This parameter takes several values:
|
|
|
|
+
|
|
|
|
+When set to zero, you get what was decided when the two code paths (traditional
|
|
|
|
+and \OPENTYPE) were introduced.
|
|
|
|
+
|
|
|
|
+Values larger than zero will add the italic correction between simple noads (it
|
|
|
|
+checks some classes so you might pay attention to for instance punctuation
|
|
|
|
+classes assigned).
|
|
|
|
+
|
|
|
|
+When set to zero or one, italics are independent, so we separate width from
|
|
|
|
+italic, while values larger than one combine both in the width but later
|
|
|
|
+selectively has to get rid of it (depending on code path).
|
|
|
|
+
|
|
|
|
+A value larger than two will backtrack italics for large operators, because there
|
|
|
|
+italic correction is used for anchoring scripts (limits and no limits). In fact,
|
|
|
|
+\OPENTYPE\ uses italics either between characters or for this purpose but as
|
|
|
|
+mentioned fonts are sort of messy here.
|
|
|
|
+
|
|
|
|
+We tested our version of plain \TEX\ and recommend to use the value of three to
|
|
|
|
+get the best average results. More about this italic correction dilemma in
|
|
|
|
+rendering math can be found in articles (in for instance \TUGBOAT) and various
|
|
|
|
+documents in the \CONTEXT\ distribution, especially those that discuss the
|
|
|
|
+upgraded math engine in \LUAMETATEX.
|
|
|
|
+
|
|
|
|
+% The \lpr {mathitalicsmode} parameter can be set to~1 to force italic correction
|
|
|
|
+% before noads that represent some more complex structure (read: everything that is
|
|
|
|
+% not an ord, bin, rel, open, close, punct or inner). A value of~2 will enforce the
|
|
|
|
+% old school font code path for all italics. We show a Cambria example.
|
|
|
|
+%
|
|
|
|
+% \starttexdefinition Whatever #1
|
|
|
|
+% \NC \type{\mathitalicsmode = #1}
|
|
|
|
+% \NC \mathitalicsmode#1\ruledhbox{$\left|T^1\right|$}
|
|
|
|
+% \NC \mathitalicsmode#1\ruledhbox{$\left|T\right|$}
|
|
|
|
+% \NC \mathitalicsmode#1\ruledhbox{$T+1$}
|
|
|
|
+% \NC \mathitalicsmode#1\ruledhbox{$T{1\over2}$}
|
|
|
|
+% \NC \mathitalicsmode#1\ruledhbox{$T\sqrt{1}$}
|
|
|
|
+% \NC \NR
|
|
|
|
+% \stoptexdefinition
|
|
|
|
+%
|
|
|
|
+% \start
|
|
|
|
+% \switchtobodyfont[cambria]
|
|
|
|
+% \starttabulate[|c|c|c|c|c|c|]
|
|
|
|
+% \Whatever{0}%
|
|
|
|
+% \Whatever{1}%
|
|
|
|
+% \stoptabulate
|
|
|
|
+% \stop
|
|
|
|
+%
|
|
|
|
+% This kind of parameters relate to the fact that italic correction in \OPENTYPE\
|
|
|
|
+% math is bound to fuzzy rules. So, control is the solution.
|
|
|
|
|
|
|
|
\subsection {Script and kerning}
|
|
|
|
|
|
|
|
@@ -1630,26 +1657,31 @@ explicitly set the style in the content
|
|
|
|
|
|
|
|
\subsection {Math options with \lpr {mathoption}}
|
|
|
|
|
|
|
|
-The logic in the math engine is rather complex and there are often no universal
|
|
|
|
-solutions (read: what works out well for one font, fails for another). Therefore
|
|
|
|
-some variations in the implementation are driven by parameters (modes). In
|
|
|
|
-addition there is a new primitive \lpr {mathoption} which will be used for
|
|
|
|
-testing. Don't rely on any option to be there in a production version as they are
|
|
|
|
-meant for development.
|
|
|
|
-
|
|
|
|
-This option was introduced for testing purposes when the math engine got split
|
|
|
|
-code paths and it forces the engine to treat new fonts as old ones with respect
|
|
|
|
-to italic correction etc. There are no guarantees given with respect to the final
|
|
|
|
-result and unexpected side effects are not seen as bugs as they relate to font
|
|
|
|
-properties. There is currently only one option:
|
|
|
|
+This command is now obsolete and triggers an error message. It was only meant
|
|
|
|
+for experiments.
|
|
|
|
|
|
|
|
-\startbuffer
|
|
|
|
-\mathoption old 1
|
|
|
|
-\stopbuffer
|
|
|
|
+% % even more obsolete:
|
|
|
|
|
|
|
|
-The \type {oldmath} boolean flag in the \LUA\ font table is the official way to
|
|
|
|
-force old treatment as it's bound to fonts. Like with all options we may
|
|
|
|
-temporarily introduce with this command this feature is not meant for production.
|
|
|
|
+% The logic in the math engine is rather complex and there are often no universal
|
|
|
|
+% solutions (read: what works out well for one font, fails for another). Therefore
|
|
|
|
+% some variations in the implementation are driven by parameters (modes). In
|
|
|
|
+% addition there is a new primitive \lpr {mathoption} which will be used for
|
|
|
|
+% testing. Don't rely on any option to be there in a production version as they are
|
|
|
|
+% meant for development.
|
|
|
|
+%
|
|
|
|
+% This option was introduced for testing purposes when the math engine got split
|
|
|
|
+% code paths and it forces the engine to treat new fonts as old ones with respect
|
|
|
|
+% to italic correction etc. There are no guarantees given with respect to the final
|
|
|
|
+% result and unexpected side effects are not seen as bugs as they relate to font
|
|
|
|
+% properties. There is currently only one option:
|
|
|
|
+%
|
|
|
|
+% \startbuffer
|
|
|
|
+% \mathoption old 1
|
|
|
|
+% \stopbuffer
|
|
|
|
+%
|
|
|
|
+% The \type {oldmath} boolean flag in the \LUA\ font table is the official way to
|
|
|
|
+% force old treatment as it's bound to fonts. Like with all options we may
|
|
|
|
+% temporarily introduce with this command this feature is not meant for production.
|
|
|
|
|
|
|
|
% % obsolete:
|
|
|
|
%
|
2025-03-19 14:07:19 +00:00
|
|
|
--- texk/web2c/luatexdir/luatex.c
|
2025-03-14 14:58:30 +00:00
|
|
|
+++ texk/web2c/luatexdir/luatex.c 2025-03-14 08:47:40.606283601 +0100
|
|
|
|
@@ -32,9 +32,9 @@
|
|
|
|
stick to "0" upto "9" so users can expect a number represented as string.
|
|
|
|
*/
|
|
|
|
|
|
|
|
-int luatex_version = 121;
|
|
|
|
+int luatex_version = 122;
|
|
|
|
int luatex_revision = '0';
|
|
|
|
-const char *luatex_version_string = "1.21.0";
|
|
|
|
+const char *luatex_version_string = "1.22.0";
|
|
|
|
const char *engine_name = my_name;
|
|
|
|
|
|
|
|
#include <kpathsea/c-ctype.h>
|
2025-03-19 14:07:19 +00:00
|
|
|
--- texk/web2c/luatexdir/luatex_svnversion.h
|
|
|
|
+++ texk/web2c/luatexdir/luatex_svnversion.h 2025-03-17 08:19:39.560852123 +0100
|
2025-03-14 14:58:30 +00:00
|
|
|
@@ -1,4 +1,4 @@
|
|
|
|
#ifndef luatex_svn_revision_h
|
|
|
|
#define luatex_svn_revision_h
|
|
|
|
-#define luatex_svn_revision 7667
|
2025-03-19 14:07:19 +00:00
|
|
|
+#define luatex_svn_revision 7673
|
2025-03-14 14:58:30 +00:00
|
|
|
#endif
|
2025-03-19 14:07:19 +00:00
|
|
|
--- texk/web2c/luatexdir/tex/mlist.c
|
|
|
|
+++ texk/web2c/luatexdir/tex/mlist.c 2025-03-17 08:19:39.560852123 +0100
|
|
|
|
@@ -1602,7 +1602,7 @@ static pointer do_delimiter(pointer q, p
|
|
|
|
shape i.e. they are end points in a variant list or a base
|
|
|
|
character. It took two decades to run into an example (HH & MS).
|
2025-03-14 14:58:30 +00:00
|
|
|
*/
|
|
|
|
- if (is_new_mathfont(z)) {
|
|
|
|
+ if (is_new_mathfont(g)) {
|
|
|
|
goto FOUND;
|
|
|
|
} else if (char_tag(g, y) != ext_tag) {
|
|
|
|
goto FOUND;
|
2025-03-19 14:07:19 +00:00
|
|
|
Only in tmp/utils/asymptote/gc: autom4te.cache
|