summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/char-def.lua1
-rw-r--r--tex/context/base/cont-log.tex34
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.mkiv1
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/lang-lab.mkiv76
-rw-r--r--tex/context/base/math-def.mkiv74
-rw-r--r--tex/context/base/math-ini.mkiv16
-rw-r--r--tex/context/base/math-lan.mkiv58
-rw-r--r--tex/context/base/mult-cld.lua61
-rw-r--r--tex/context/base/mult-cld.mkiv2
-rw-r--r--tex/context/base/mult-de.tex1
-rw-r--r--tex/context/base/mult-def.lua3
-rw-r--r--tex/context/base/mult-en.tex1
-rw-r--r--tex/context/base/mult-fr.tex1
-rw-r--r--tex/context/base/mult-it.tex1
-rw-r--r--tex/context/base/mult-nl.tex1
-rw-r--r--tex/context/base/mult-ro.tex1
-rw-r--r--tex/context/base/mult-sys.tex1
-rw-r--r--tex/context/base/node-rul.lua77
-rw-r--r--tex/context/base/node-rul.mkiv12
-rw-r--r--tex/context/base/strc-itm.mkiv68
-rw-r--r--tex/context/base/tabl-ntb.mkiv58
-rw-r--r--tex/context/interface/cont-cs.xml1
-rw-r--r--tex/context/interface/cont-de.xml1
-rw-r--r--tex/context/interface/cont-en.xml1
-rw-r--r--tex/context/interface/cont-fr.xml1
-rw-r--r--tex/context/interface/cont-it.xml1
-rw-r--r--tex/context/interface/cont-nl.xml1
-rw-r--r--tex/context/interface/cont-pe.xml1
-rw-r--r--tex/context/interface/cont-ro.xml1
-rw-r--r--tex/context/interface/keys-cs.xml1
-rw-r--r--tex/context/interface/keys-de.xml1
-rw-r--r--tex/context/interface/keys-en.xml1
-rw-r--r--tex/context/interface/keys-fr.xml1
-rw-r--r--tex/context/interface/keys-it.xml1
-rw-r--r--tex/context/interface/keys-nl.xml1
-rw-r--r--tex/context/interface/keys-pe.xml1
-rw-r--r--tex/context/interface/keys-ro.xml1
-rw-r--r--tex/generic/context/luatex-fonts-merged.lua2
40 files changed, 404 insertions, 166 deletions
diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua
index 7e41146ad..f7921f6fc 100644
--- a/tex/context/base/char-def.lua
+++ b/tex/context/base/char-def.lua
@@ -126207,6 +126207,7 @@ characters.data={
description="MATHEMATICAL ITALIC CAPITAL V",
direction="l",
linebreak="al",
+--mathclass="variable",
specials={ "font", 0x0056 },
unicodeslot=0x1D449,
},
diff --git a/tex/context/base/cont-log.tex b/tex/context/base/cont-log.tex
index 2d1b9875e..3eb68db7a 100644
--- a/tex/context/base/cont-log.tex
+++ b/tex/context/base/cont-log.tex
@@ -287,14 +287,15 @@
\fi
-\let\ETEX \eTeX
-\let\PDFTEX \pdfTeX
-\let\PDFETEX \pdfeTeX
-\let\LUATEX \luaTeX
-\let\XETEX \XeTeX
-
-\def\MkApproved
- {\rotate
+\let\ETEX \eTeX
+\let\PDFTEX \pdfTeX
+\let\PDFETEX\pdfeTeX
+\let\LUATEX \luaTeX
+\let\LuaTeX \luaTeX
+\let\XETEX \XeTeX
+
+\unexpanded\def\MkApproved
+ {\dontleavehmode\rotate
[\c!rotation={\ifnum\texengine=\luatexengine\ctxlua{tex.write(45-45*\the\luatexversion/100)}\else0\fi},
\c!align=\v!middle,
\c!foregroundstyle=\v!type,
@@ -307,4 +308,21 @@
\c!rulethickness=2pt]
{Mk\ifnum\texengine=\luatexengine IV\else II\fi\\approved}}
+
+% \unexpanded\def\luaTeX
+% {\dontleavehmode\begingroup
+% Lua%
+% \setbox0\hbox{oT}%
+% \setbox2\hbox{o\kern0ptT}%
+% \ifdim\wd0=\wd2
+% \setbox0\hbox dir TRT{To}%
+% \setbox2\hbox{T\kern0pto}%
+% \hskip\dimexpr\wd0-\wd2\relax
+% \fi
+% \TeX
+% \endgroup}
+%
+% \let\LuaTeX \luaTeX
+% \let\LUATEX \luaTeX
+
\protect \endinput
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index a80de62a0..a313c6c54 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2010.03.09 10:39}
+\newcontextversion{2010.03.10 23:47}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 826b90c7e..4aa0d2cb9 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -296,6 +296,7 @@
\loadmarkfile{math-del}
\loadmarkfile{math-inl}
\loadmarkfile{math-dis}
+\loadmarkfile{math-lan}
\loadmarkfile{strc-mat}
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 328f3f683..b0742590a 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2010.03.09 10:39}
+\edef\contextversion{2010.03.10 23:47}
%D For those who want to use this:
diff --git a/tex/context/base/lang-lab.mkiv b/tex/context/base/lang-lab.mkiv
index 61884ab50..8df167ac8 100644
--- a/tex/context/base/lang-lab.mkiv
+++ b/tex/context/base/lang-lab.mkiv
@@ -46,8 +46,9 @@
\let\currenttextprefixtag \s!unknown
\let\currenttextprefixclass\s!unknown
-\def\setupheadtext {\setfalse\protecttextprefixes\let\currenttextprefixclass\??mh\dodoubleempty\dosetupsometextprefix}
-\def\setuplabeltext{\setfalse\protecttextprefixes\let\currenttextprefixclass\??ml\dodoubleempty\dosetupsometextprefix}
+\def\setupheadtext {\setfalse\protecttextprefixes\let\currenttextprefixclass\??mh\dodoubleempty\dosetupsometextprefix}
+\def\setuplabeltext {\setfalse\protecttextprefixes\let\currenttextprefixclass\??ml\dodoubleempty\dosetupsometextprefix}
+\def\setupmathlabeltext{\setfalse\protecttextprefixes\let\currenttextprefixclass\??mm\dodoubleempty\dosetupsometextprefix}
\def\dosetupsometextprefix[#1][#2]%
{\ifsecondargument
@@ -124,15 +125,17 @@
%D
%D The latter one has an upcased alternative \type{\LABELTEXT}.
-\def\labellanguage{\reallanguagetag{\defaultlanguage\currentmainlanguage}}
-\def\headlanguage {\reallanguagetag{\defaultlanguage\currentmainlanguage}}
+\def\labellanguage {\reallanguagetag{\defaultlanguage\currentmainlanguage}}
+\def\headlanguage {\reallanguagetag{\defaultlanguage\currentmainlanguage}}
+\def\mathlabellanguage{\reallanguagetag{\defaultlanguage\currentmainlanguage}}
\appendtoks \let\labellanguage\currentlanguage \to \everycurrentdate
\def\dummytextprefix{\empty\empty}
-\def\dogetupsomelabeltext{\dodogetupsomelabeltext\labellanguage} % second argument is textlabel
-\def\dogetupsomeheadtext {\dodogetupsomeheadtext \headlanguage } % second argument is headlabel
+\def\dogetupsomelabeltext {\dodogetupsomelabeltext \labellanguage } % second argument is textlabel
+\def\dogetupsomeheadtext {\dodogetupsomeheadtext \headlanguage } % second argument is headlabel
+\def\dogetupsomemathlabeltext{\dodogetupsomemathlabeltext\mathlabellanguage } % second argument is headlabel
\def\dodogetupsomelabeltext#1#2%
{\ifcsname\??ml#1#2\endcsname
@@ -160,28 +163,45 @@
\let\thetextprefix\dummytextprefix
\fi\fi\fi\fi}
+\def\dodogetupsomemathlabeltext#1#2%
+ {\ifcsname\??mm#1#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??mm#1#2\endcsname
+ \else\ifcsname\??la\mathlabellanguage\s!default\endcsname
+ \expandafter\dodogetupsomemathlabeltext\csname\??la\mathlabellanguage\s!default\endcsname{#2}%
+ \else\ifcsname\??mm#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??mm#2\endcsname
+ \else\ifcsname\??mm\s!en#2\endcsname
+ \expandafter\let\expandafter\thetextprefix\csname\??mm\s!en#2\endcsname
+ \else
+ \let\thetextprefix\dummytextprefix
+ \fi\fi\fi\fi}
+
% The WORD variants are a bit inefficient when #1/#2 are empty but they are
% seldom used (one can better set the style).
-\let\flushleftlabeltext \firstoftwoarguments
-\let\flushrightlabeltext\secondoftwoarguments
-
-\def\flushleftlabelWORD #1#2{\WORD{#1}}
-\def\flushrightlabelWORD#1#2{\WORD{#2}}
-
-\def\flushbothlabeltexts#1#2#3{#1#3#2}
-\def\flushbothlabelTEXTS#1#2#3{\WORD{#1}#3\WORD{#2}}
-
-\unexpanded\def\headtext #1{\dogetupsomeheadtext {#1}\expandafter\flushleftlabeltext \thetextprefix}
-\unexpanded\def\leftlabeltext #1{\dogetupsomelabeltext{#1}\expandafter\flushleftlabeltext \thetextprefix}
-\unexpanded\def\rightlabeltext#1{\dogetupsomelabeltext{#1}\expandafter\flushrightlabeltext\thetextprefix}
-\unexpanded\def\LEFTLABELTEXT #1{\dogetupsomelabeltext{#1}\expandafter\flushleftlabelWORD \thetextprefix}
-\unexpanded\def\RIGHTLABELTEXT#1{\dogetupsomelabeltext{#1}\expandafter\flushrightlabelWORD\thetextprefix}
-\unexpanded\def\labeltexts #1{\dogetupsomelabeltext{#1}\expandafter\flushbothlabeltexts\thetextprefix} % #2
-\unexpanded\def\LABELTEXTS #1{\dogetupsomelabeltext{#1}\expandafter\flushbothlabelTEXTS\thetextprefix} % #2
-
-\let\labeltext\leftlabeltext
-\let\LABELTEXT\LEFTLABELTEXT
+\let\flushleftlabeltext \firstoftwoarguments
+\let\flushrightlabeltext \secondoftwoarguments
+\let\flushleftmathlabeltext \firstoftwoarguments
+\let\flushrightmathlabeltext\secondoftwoarguments
+
+\def\flushleftlabelWORD #1#2{\WORD{#1}}
+\def\flushrightlabelWORD #1#2{\WORD{#2}}
+\def\flushbothlabeltexts #1#2#3{#1#3#2}
+\def\flushbothlabelTEXTS #1#2#3{\WORD{#1}#3\WORD{#2}}
+
+\unexpanded\def\headtext #1{\dogetupsomeheadtext {#1}\expandafter\flushleftlabeltext \thetextprefix}
+\unexpanded\def\leftlabeltext #1{\dogetupsomelabeltext {#1}\expandafter\flushleftlabeltext \thetextprefix}
+\unexpanded\def\rightlabeltext #1{\dogetupsomelabeltext {#1}\expandafter\flushrightmathlabeltext\thetextprefix}
+\unexpanded\def\LEFTLABELTEXT #1{\dogetupsomelabeltext {#1}\expandafter\flushleftlabelWORD \thetextprefix}
+\unexpanded\def\RIGHTLABELTEXT #1{\dogetupsomelabeltext {#1}\expandafter\flushrightlabelWORD \thetextprefix}
+\unexpanded\def\labeltexts #1{\dogetupsomelabeltext {#1}\expandafter\flushbothlabeltexts \thetextprefix} % #2
+\unexpanded\def\LABELTEXTS #1{\dogetupsomelabeltext {#1}\expandafter\flushbothlabelTEXTS \thetextprefix} % #2
+\unexpanded\def\leftmathlabeltext #1{\dogetupsomemathlabeltext{#1}\expandafter\flushleftmathlabeltext \thetextprefix}
+\unexpanded\def\rightmathlabeltext#1{\dogetupsomemathlabeltext{#1}\expandafter\flushrightlabeltext \thetextprefix}
+
+\let\labeltext \leftlabeltext
+\let\LABELTEXT \LEFTLABELTEXT
+\let\mathlabeltext\leftmathlabeltext
\ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi
@@ -194,6 +214,7 @@
\let \LABELTEXT \firstofoneargument
\let \LEFTLABELTEXT \firstofoneargument
\let \RIGHTLABELTEXT \firstofoneargument
+ \let \mathlabeltext \firstofoneargument
\to \simplifiedcommands
%D \macros
@@ -203,8 +224,9 @@
%D head and label texts without replacing predefined ones.
%D These are internal macros.
-\def\presetheadtext {\settrue\protecttextprefixes\let\currenttextprefixclass\??mh\dodoubleempty\dosetupsometextprefix}
-\def\presetlabeltext{\settrue\protecttextprefixes\let\currenttextprefixclass\??ml\dodoubleempty\dosetupsometextprefix}
+\def\presetheadtext {\settrue\protecttextprefixes\let\currenttextprefixclass\??mh\dodoubleempty\dosetupsometextprefix}
+\def\presetlabeltext {\settrue\protecttextprefixes\let\currenttextprefixclass\??ml\dodoubleempty\dosetupsometextprefix}
+\def\presetmathlabeltext{\settrue\protecttextprefixes\let\currenttextprefixclass\??mm\dodoubleempty\dosetupsometextprefix}
%D \macros
%D {translate}
diff --git a/tex/context/base/math-def.mkiv b/tex/context/base/math-def.mkiv
index 201b93657..923ac5a71 100644
--- a/tex/context/base/math-def.mkiv
+++ b/tex/context/base/math-def.mkiv
@@ -59,43 +59,43 @@
% The \mfunction macro is an alternative for \hbox with a
% controlable font switch.
-\definemathcommand [arccos] [nolop] {\mfunction{arccos}}
-\definemathcommand [arcsin] [nolop] {\mfunction{arcsin}}
-\definemathcommand [arctan] [nolop] {\mfunction{arctan}}
-\definemathcommand [arg] [nolop] {\mfunction{arg}}
-\definemathcommand [cosh] [nolop] {\mfunction{cosh}}
-\definemathcommand [cos] [nolop] {\mfunction{cos}}
-\definemathcommand [coth] [nolop] {\mfunction{coth}}
-\definemathcommand [cot] [nolop] {\mfunction{cot}}
-\definemathcommand [csc] [nolop] {\mfunction{csc}}
-\definemathcommand [deg] [nolop] {\mfunction{deg}}
-\definemathcommand [det] [limop] {\mfunction{det}}
-\definemathcommand [dim] [nolop] {\mfunction{dim}}
-\definemathcommand [exp] [nolop] {\mfunction{exp}}
-\definemathcommand [gcd] [limop] {\mfunction{gcd}}
-\definemathcommand [hom] [nolop] {\mfunction{hom}}
-\definemathcommand [inf] [limop] {\mfunction{inf}}
-\definemathcommand [injlim] [limop] {\mfunction{inj\,lim}}
-\definemathcommand [ker] [nolop] {\mfunction{ker}}
-\definemathcommand [lg] [nolop] {\mfunction{lg}}
-\definemathcommand [liminf] [limop] {\mfunction{lim\,inf}}
-\definemathcommand [limsup] [limop] {\mfunction{lim\,sup}}
-\definemathcommand [lim] [limop] {\mfunction{lim}}
-\definemathcommand [ln] [nolop] {\mfunction{ln}}
-\definemathcommand [log] [nolop] {\mfunction{log}}
-\definemathcommand [median] [limop] {\mfunction{median}}
-\definemathcommand [max] [limop] {\mfunction{max}}
-\definemathcommand [min] [limop] {\mfunction{min}}
-\definemathcommand [mod] [limop] {\mfunction{mod}}
-%definemathcommand [div] [limop] {\mfunction{div}} % overloads \div symbol
-\definemathcommand [projlim] [limop] {\mfunction{proj\,lim}}
-\definemathcommand [Pr] [limop] {\mfunction{Pr}}
-\definemathcommand [sec] [nolop] {\mfunction{sec}}
-\definemathcommand [sinh] [nolop] {\mfunction{sinh}}
-\definemathcommand [sin] [nolop] {\mfunction{sin}}
-\definemathcommand [sup] [limop] {\mfunction{sup}}
-\definemathcommand [tanh] [nolop] {\mfunction{tanh}}
-\definemathcommand [tan] [nolop] {\mfunction{tan}}
+\definemathcommand [arccos] [nolop] {\mfunctionlabeltext{arccos}}
+\definemathcommand [arcsin] [nolop] {\mfunctionlabeltext{arcsin}}
+\definemathcommand [arctan] [nolop] {\mfunctionlabeltext{arctan}}
+\definemathcommand [arg] [nolop] {\mfunctionlabeltext{arg}}
+\definemathcommand [cosh] [nolop] {\mfunctionlabeltext{cosh}}
+\definemathcommand [cos] [nolop] {\mfunctionlabeltext{cos}}
+\definemathcommand [coth] [nolop] {\mfunctionlabeltext{coth}}
+\definemathcommand [cot] [nolop] {\mfunctionlabeltext{cot}}
+\definemathcommand [csc] [nolop] {\mfunctionlabeltext{csc}}
+\definemathcommand [deg] [nolop] {\mfunctionlabeltext{deg}}
+\definemathcommand [det] [limop] {\mfunctionlabeltext{det}}
+\definemathcommand [dim] [nolop] {\mfunctionlabeltext{dim}}
+\definemathcommand [exp] [nolop] {\mfunctionlabeltext{exp}}
+\definemathcommand [gcd] [limop] {\mfunctionlabeltext{gcd}}
+\definemathcommand [hom] [nolop] {\mfunctionlabeltext{hom}}
+\definemathcommand [inf] [limop] {\mfunctionlabeltext{inf}}
+\definemathcommand [injlim] [limop] {\mfunctionlabeltext{injlim}}
+\definemathcommand [ker] [nolop] {\mfunctionlabeltext{ker}}
+\definemathcommand [lg] [nolop] {\mfunctionlabeltext{lg}}
+\definemathcommand [liminf] [limop] {\mfunctionlabeltext{liminf}}
+\definemathcommand [limsup] [limop] {\mfunctionlabeltext{limsup}}
+\definemathcommand [lim] [limop] {\mfunctionlabeltext{lim}}
+\definemathcommand [ln] [nolop] {\mfunctionlabeltext{ln}}
+\definemathcommand [log] [nolop] {\mfunctionlabeltext{log}}
+\definemathcommand [median] [limop] {\mfunctionlabeltext{median}}
+\definemathcommand [max] [limop] {\mfunctionlabeltext{max}}
+\definemathcommand [min] [limop] {\mfunctionlabeltext{min}}
+\definemathcommand [mod] [limop] {\mfunctionlabeltext{mod}}
+%definemathcommand [div] [limop] {\mfunctionlabeltext{div}} % overloads \div symbol
+\definemathcommand [projlim] [limop] {\mfunctionlabeltext{projlim}}
+\definemathcommand [Pr] [limop] {\mfunctionlabeltext{Pr}}
+\definemathcommand [sec] [nolop] {\mfunctionlabeltext{sec}}
+\definemathcommand [sinh] [nolop] {\mfunctionlabeltext{sinh}}
+\definemathcommand [sin] [nolop] {\mfunctionlabeltext{sin}}
+\definemathcommand [sup] [limop] {\mfunctionlabeltext{sup}}
+\definemathcommand [tanh] [nolop] {\mfunctionlabeltext{tanh}}
+\definemathcommand [tan] [nolop] {\mfunctionlabeltext{tan}}
\definemathcommand [integers] {{\mathblackboard Z}}
\definemathcommand [reals] {{\mathblackboard R}}
diff --git a/tex/context/base/math-ini.mkiv b/tex/context/base/math-ini.mkiv
index b6fe66b2e..9ac43455d 100644
--- a/tex/context/base/math-ini.mkiv
+++ b/tex/context/base/math-ini.mkiv
@@ -285,7 +285,10 @@
%D needed for sin, cos etc
-\def\mfunction#1{{\mr#1}}
+\let\mathfunction\firstofoneargument
+
+\def\mfunction #1{{\mr#1}}
+\def\mfunctionlabeltext#1{{\mr\mathlabeltext{#1}}}
% \def\mlimitsfunction #1{\mathlimopcomm{{\mr#1}}
% \def\mnolimitsfunction#1{\mathnolopcomm{{\mr#1}}
@@ -295,11 +298,16 @@
\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
-\def\setmathfunctionstyle#1% rm ss tt
+\unexpanded\def\do@mathopnolimits #1{\mathop{\mscaledtext{#1}}\nolimits}
+\unexpanded\def\do@mfunction #1{\mscaledtext{#1}}
+\unexpanded\def\do@mfunctionlabeltext#1{\mscaledtext{\mathlabeltext{#1}}}
+
+\def\setmathfunctionstyle#1% rm ss tt (can be made faster if needed)
{\doifsomething{#1}
{\def\currentmscaledstyle{#1}%
- \def\mathopnolimits##1{\mathop{\mscaledtext{##1}}\nolimits}%
- \def\mfunction##1{\mscaledtext{##1}}}}
+ \let\mathopnolimits \do@mathopnolimits
+ \let\mfunction \do@mfunction
+ \let\mfunctionlabeltext\do@mfunctionlabeltext}}
\def\mscaledtext#1%
{\mathchoice
diff --git a/tex/context/base/math-lan.mkiv b/tex/context/base/math-lan.mkiv
new file mode 100644
index 000000000..f6cd96220
--- /dev/null
+++ b/tex/context/base/math-lan.mkiv
@@ -0,0 +1,58 @@
+%D \module
+%D [ file=math-lan,
+%D version=2009.03.10,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Language Support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Language Support}
+
+\unprotect
+
+\setupmathlabeltext [\s!en] [arccos=arccos]
+\setupmathlabeltext [\s!en] [arcsin=arcsin]
+\setupmathlabeltext [\s!en] [arctan=arctan]
+\setupmathlabeltext [\s!en] [arg=arg]
+\setupmathlabeltext [\s!en] [cosh=cosh]
+\setupmathlabeltext [\s!en] [cos=cos]
+\setupmathlabeltext [\s!en] [coth=coth]
+\setupmathlabeltext [\s!en] [cot=cot]
+\setupmathlabeltext [\s!en] [csc=csc]
+\setupmathlabeltext [\s!en] [deg=deg]
+\setupmathlabeltext [\s!en] [det=det]
+\setupmathlabeltext [\s!en] [dim=dim]
+\setupmathlabeltext [\s!en] [exp=exp]
+\setupmathlabeltext [\s!en] [gcd=gcd]
+\setupmathlabeltext [\s!en] [hom=hom]
+\setupmathlabeltext [\s!en] [inf=inf]
+\setupmathlabeltext [\s!en] [injlim=inj\,lim]
+\setupmathlabeltext [\s!en] [ker=ker]
+\setupmathlabeltext [\s!en] [lg=lg]
+\setupmathlabeltext [\s!en] [liminf=lim\,inf]
+\setupmathlabeltext [\s!en] [limsup=lim\,sup]
+\setupmathlabeltext [\s!en] [lim=lim]
+\setupmathlabeltext [\s!en] [ln=ln]
+\setupmathlabeltext [\s!en] [log=log]
+\setupmathlabeltext [\s!en] [median=median]
+\setupmathlabeltext [\s!en] [max=max]
+\setupmathlabeltext [\s!en] [min=min]
+\setupmathlabeltext [\s!en] [mod=mod]
+\setupmathlabeltext [\s!en] [projlim=proj\,lim]
+\setupmathlabeltext [\s!en] [Pr=Pr]
+\setupmathlabeltext [\s!en] [sec=sec]
+\setupmathlabeltext [\s!en] [sinh=sinh]
+\setupmathlabeltext [\s!en] [sin=sin]
+\setupmathlabeltext [\s!en] [sup=sup]
+\setupmathlabeltext [\s!en] [tanh=tanh]
+\setupmathlabeltext [\s!en] [tan=tan]
+
+\setupmathlabeltext [\s!pl] [tan=tg]
+\setupmathlabeltext [\s!pl] [cot=ctg]
+
+\protect \endinput
diff --git a/tex/context/base/mult-cld.lua b/tex/context/base/mult-cld.lua
index 406f3cb6e..372fd858d 100644
--- a/tex/context/base/mult-cld.lua
+++ b/tex/context/base/mult-cld.lua
@@ -22,17 +22,26 @@ local next, type = next, type
local texsprint, texiowrite, ctxcatcodes = tex.sprint, texio.write, tex.ctxcatcodes
local flush = texsprint
-local cache
-function tex.fprint(...) -- goodie
- texsprint(ctxcatcodes,format(...))
+local _stack_, _n_ = { }, 0
+
+local function _store_(ti)
+ _n_ = _n_ + 1
+ _stack_[_n_] = ti
+ return _n_
end
-local function cached_flush(c,...)
- local tt = { ... }
- for i=1,#tt do
- cache[#cache+1] = tt[i]
- end
+local function _flush_(n)
+ _stack_[n]()
+ _stack_[n] = nil
+end
+
+context._stack_ = _stack_
+context._store_ = _store_
+context._flush_ = _flush_
+
+function tex.fprint(...) -- goodie
+ texsprint(ctxcatcodes,format(...))
end
function context.trace(intercept)
@@ -56,32 +65,11 @@ local function writer(k,...)
if nt > 0 then
for i=1,nt do
local ti = t[i]
- local typ, force = type(ti), nil
- local saved_flush = flush
- if typ == "function" then
- flush = cached_flush
- while true do
- cache = { }
- ti, force = ti()
- if force then
- typ = false -- force special cases
- else
- typ = type(ti)
- if typ == "nil" then
- typ = "string"
- ti = concat(cache)
- elseif typ == "string" then
- ti = concat(cache)
- end
- end
- if typ ~= "function" then
- break
- end
- end
- flush = saved_flush
- end
+ local typ = type(ti)
if ti == nil then
-- next
+ elseif typ == "function" then
+ flush(ctxcatcodes,"{\\mkivflush{" .. _store_(ti) .. "}}")
elseif typ == "string" or typ == "number" then
flush(ctxcatcodes,"{",ti,"}")
elseif typ == "table" then
@@ -106,9 +94,9 @@ local function writer(k,...)
elseif ti == true then
flush(ctxcatcodes,"\n")
elseif typ == false then
- if force == "direct" then
- flush(ctxcatcodes,tostring(ti))
- end
+ -- if force == "direct" then
+ flush(ctxcatcodes,tostring(ti))
+ -- end
else
logs.report("interfaces","error: %s gets a weird argument %s",k,tostring(ti))
end
@@ -116,6 +104,9 @@ local function writer(k,...)
end
end
+
+-- -- --
+
--~ local function indexer(t,k)
--~ local f = function(...) return writer("\\"..k.." ",...) end
--~ t[k] = f
diff --git a/tex/context/base/mult-cld.mkiv b/tex/context/base/mult-cld.mkiv
index d387516f1..83fd7b484 100644
--- a/tex/context/base/mult-cld.mkiv
+++ b/tex/context/base/mult-cld.mkiv
@@ -24,4 +24,6 @@
\def\defmkivstop #1{\normalprotected\expandafter\def\csname\e!stop #1\endcsname}
\def\defmkiv #1{\normalprotected\expandafter\def\csname #1\endcsname}
+\def\mkivflush #1{\ctxlua{context._flush_(#1)}}
+
\protect \endinput
diff --git a/tex/context/base/mult-de.tex b/tex/context/base/mult-de.tex
index 5a8091ad9..0b6cf6be8 100644
--- a/tex/context/base/mult-de.tex
+++ b/tex/context/base/mult-de.tex
@@ -518,6 +518,7 @@
\setinterfaceconstant{align}{ausrichtung}
\setinterfaceconstant{aligncharacter}{aligncharacter}
\setinterfaceconstant{alignmentcharacter}{alignmentcharacter}
+\setinterfaceconstant{alignsymbol}{alignsymbol}
\setinterfaceconstant{aligntitle}{titelausrichten}
\setinterfaceconstant{alternative}{alternative}
\setinterfaceconstant{andtext}{andtext}
diff --git a/tex/context/base/mult-def.lua b/tex/context/base/mult-def.lua
index 5df2ffc75..ffa3bc240 100644
--- a/tex/context/base/mult-def.lua
+++ b/tex/context/base/mult-def.lua
@@ -6490,6 +6490,9 @@ return {
["en"]="headalign",
["nl"]="kopuitlijnen",
},
+ ["alignsymbol"]={
+ ["en"]="alignsymbol",
+ },
["export"]={
["en"]="export",
["nl"]="exporteer",
diff --git a/tex/context/base/mult-en.tex b/tex/context/base/mult-en.tex
index 4c5d3a58b..2bba103a3 100644
--- a/tex/context/base/mult-en.tex
+++ b/tex/context/base/mult-en.tex
@@ -518,6 +518,7 @@
\setinterfaceconstant{align}{align}
\setinterfaceconstant{aligncharacter}{aligncharacter}
\setinterfaceconstant{alignmentcharacter}{alignmentcharacter}
+\setinterfaceconstant{alignsymbol}{alignsymbol}
\setinterfaceconstant{aligntitle}{aligntitle}
\setinterfaceconstant{alternative}{alternative}
\setinterfaceconstant{andtext}{andtext}
diff --git a/tex/context/base/mult-fr.tex b/tex/context/base/mult-fr.tex
index 34ada7811..0e61e77ac 100644
--- a/tex/context/base/mult-fr.tex
+++ b/tex/context/base/mult-fr.tex
@@ -518,6 +518,7 @@
\setinterfaceconstant{align}{alignement}
\setinterfaceconstant{aligncharacter}{caracterealigne}
\setinterfaceconstant{alignmentcharacter}{alignementcaractere}
+\setinterfaceconstant{alignsymbol}{alignsymbol}
\setinterfaceconstant{aligntitle}{alignementtitre}
\setinterfaceconstant{alternative}{alternative}
\setinterfaceconstant{andtext}{andtext}
diff --git a/tex/context/base/mult-it.tex b/tex/context/base/mult-it.tex
index 1a27ba976..263a5a6f7 100644
--- a/tex/context/base/mult-it.tex
+++ b/tex/context/base/mult-it.tex
@@ -518,6 +518,7 @@
\setinterfaceconstant{align}{allinea}
\setinterfaceconstant{aligncharacter}{allineacarattere}
\setinterfaceconstant{alignmentcharacter}{carattereallineamento}
+\setinterfaceconstant{alignsymbol}{alignsymbol}
\setinterfaceconstant{aligntitle}{allineatitolo}
\setinterfaceconstant{alternative}{alternativa}
\setinterfaceconstant{andtext}{andtext}
diff --git a/tex/context/base/mult-nl.tex b/tex/context/base/mult-nl.tex
index e66395384..50bfa337b 100644
--- a/tex/context/base/mult-nl.tex
+++ b/tex/context/base/mult-nl.tex
@@ -518,6 +518,7 @@
\setinterfaceconstant{align}{uitlijnen}
\setinterfaceconstant{aligncharacter}{karakteruitlijnen}
\setinterfaceconstant{alignmentcharacter}{uitlijnkarakter}
+\setinterfaceconstant{alignsymbol}{alignsymbol}
\setinterfaceconstant{aligntitle}{titeluitlijnen}
\setinterfaceconstant{alternative}{variant}
\setinterfaceconstant{andtext}{andtext}
diff --git a/tex/context/base/mult-ro.tex b/tex/context/base/mult-ro.tex
index c4896af8a..f79f9c3ac 100644
--- a/tex/context/base/mult-ro.tex
+++ b/tex/context/base/mult-ro.tex
@@ -518,6 +518,7 @@
\setinterfaceconstant{align}{aliniere}
\setinterfaceconstant{aligncharacter}{aliniazacaracter}
\setinterfaceconstant{alignmentcharacter}{alierecaracter}
+\setinterfaceconstant{alignsymbol}{alignsymbol}
\setinterfaceconstant{aligntitle}{alinieretitlu}
\setinterfaceconstant{alternative}{alternativ}
\setinterfaceconstant{andtext}{andtext}
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index ee1ac7e9c..72b0bce5d 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -556,6 +556,7 @@
\definesystemvariable {mh} % MultilingualHead
\definesystemvariable {mk} % MarKering
\definesystemvariable {ml} % MultilingualLabel
+\definesystemvariable {mm} % MultilingualMath
\definesystemvariable {mt} % inline MaTh
\definesystemvariable {mo} % Math Options
\definesystemvariable {mp} % MetaPost
diff --git a/tex/context/base/node-rul.lua b/tex/context/base/node-rul.lua
index 3f1d572b7..f217c3a97 100644
--- a/tex/context/base/node-rul.lua
+++ b/tex/context/base/node-rul.lua
@@ -6,6 +6,38 @@ if not modules then modules = { } end modules ['node-rul'] = {
license = "see context related readme files"
}
+-- this will go to an auxiliary module
+
+local glyph = node.id("glyph")
+local disc = node.id("disc")
+local rule = node.id("rule")
+
+function nodes.strip_range(first,last) -- todo: dir
+ local current = first
+ while current ~= last do
+ local id = current.id
+ if id == glyph or id == disc then
+--~ if id == glyph or id == rule or id == disc then
+ first = current
+ break
+ else
+ current = current.next
+ end
+ end
+ local current = last
+ while current ~= first do
+ local id = current.id
+--~ if id == glyph or id == rule or id == disc then
+ if id == glyph or id == disc then
+ last = current
+ break
+ else
+ current = current.prev
+ end
+ end
+ return first, last
+end
+
-- todo: order and maybe other dimensions
local trace_ruled = false trackers.register("nodes.ruled", function(v) trace_ruled = v end)
@@ -21,6 +53,7 @@ local a_colorspace = attributes.private('colormodel')
local glyph = node.id("glyph")
local disc = node.id("disc")
local glue = node.id("glue")
+local penalty = node.id("penalty")
local kern = node.id("kern")
local hlist = node.id("hlist")
local vlist = node.id("vlist")
@@ -31,7 +64,7 @@ local new_rule = nodes.rule
local new_kern = nodes.kern
local new_glue = nodes.glue
-local insert_before, insert_after = node.insert_before, node.insert_after
+local insert_before, insert_after, strip_range = node.insert_before, node.insert_after, nodes.strip_range
local list_dimensions, has_attribute, set_attribute = node.dimensions, node.has_attribute, node.set_attribute
local dimenfactor = fonts.dimenfactor
local texwrite = tex.write
@@ -54,10 +87,10 @@ local function process_words(attribute,data,flush,head,parent)
local n = head
if n then
local f, l, a, d, i, level
- local continue, done = false, false
+ local continue, done, strip = false, false, false
while n do
local id = n.id
- if id == glyph then
+ if id == glyph or id == rule then
local aa = has_attribute(n,attribute)
if aa then
if aa == a then
@@ -68,7 +101,7 @@ local function process_words(attribute,data,flush,head,parent)
else
-- possible extensions: when in same class then keep spanning
if f then
- head, done = flush(head,f,l,d,level,parent), true
+ head, done = flush(head,f,l,d,level,parent,strip), true
end
f, l, a = n, n, aa
level, i = floor(a/1000), a%1000
@@ -77,19 +110,15 @@ local function process_words(attribute,data,flush,head,parent)
end
else
if f then
- head, done = flush(head,f,l,d,level,parent), true
+ head, done = flush(head,f,l,d,level,parent,strip), true
end
f, l, a = nil, nil, nil
end
- elseif f and id == disc then
- l = n
- elseif f and id == rule then
- l = n
- elseif f and id == kern and n.subtype == 0 then
+ elseif f and (id == disc or (id == kern and n.subtype == 0)) then
l = n
elseif id == hlist or id == vlist then
if f then
- head, done = flush(head,f,l,d,level,parent), true
+ head, done = flush(head,f,l,d,level,parent,strip), true
f, l, a = nil, nil, nil
end
local list = n.list
@@ -100,14 +129,22 @@ local function process_words(attribute,data,flush,head,parent)
if f and a then
l = n
end
- elseif f and not continue then
- head, done = flush(head,f,l,d,level,parent), true
- f, l, a = nil, nil, nil
+ elseif f then
+ if continue then
+ if id == penalty or id == kern then
+ l = n
+ elseif id == glue then
+ l = n
+ end
+ else
+ head, done = flush(head,f,l,d,level,parent,strip), true
+ f, l, a = nil, nil, nil
+ end
end
n = n.next
end
if f then
- head, done = flush(head,f,l,d,level,parent), true
+ head, done = flush(head,f,l,d,level,parent,strip), true
end
return head, true -- todo: done
else
@@ -131,8 +168,11 @@ function nodes.rules.define(settings)
texwrite(#data)
end
-local function flush_ruled(head,f,l,d,level,parent) -- not that fast but acceptable for this purpose
+local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but acceptable for this purpose
local r, m
+ if true then
+ f, l = strip_range(f,l)
+ end
local w = list_dimensions(parent.glue_set,parent.glue_sign,parent.glue_order,f,l.next)
local method, offset, continue, dy, rulethickness, unit, order, max, ma, ca, ta =
d.method, d.offset, d.continue, d.dy, d.rulethickness, d.unit, d.order, d.max, d.ma, d.ca, d.ta
@@ -207,7 +247,10 @@ function nodes.shifts.define(settings)
texwrite(#data)
end
-local function flush_shifted(head,first,last,data,level,parent) -- not that fast but acceptable for this purpose
+local function flush_shifted(head,first,last,data,level,parent,strip) -- not that fast but acceptable for this purpose
+ if true then
+ first, last = strip_range(first,last)
+ end
local prev, next = first.prev, last.next
first.prev, last.next = nil, nil
local width, height, depth = list_dimensions(parent.glue_set,parent.glue_sign,parent.glue_order,first,next)
diff --git a/tex/context/base/node-rul.mkiv b/tex/context/base/node-rul.mkiv
index c89ccb784..ca4018d14 100644
--- a/tex/context/base/node-rul.mkiv
+++ b/tex/context/base/node-rul.mkiv
@@ -175,13 +175,13 @@
% \definebar[touchbar] [\c!method=0,\c!dy=-0.4,\c!offset=-0.0]
% \definebar[touchbars] [touchbar] [\c!continue=\v!yes]
-\definebar[\v!overstrike] [\c!method=0,\c!dy= 0.4,\c!offset= 0.5]
-\definebar[\v!underbar] [\c!method=1,\c!dy=-0.4,\c!offset=-0.3]
-\definebar[\v!overbar] [\c!method=1,\c!dy= 0.4,\c!offset= 1.8]
+\definebar[\v!overstrike] [\c!method=0,\c!dy= 0.4,\c!offset= 0.5,\c!continue=\v!yes]
+\definebar[\v!underbar] [\c!method=1,\c!dy=-0.4,\c!offset=-0.3,\c!continue=\v!yes]
+\definebar[\v!overbar] [\c!method=1,\c!dy= 0.4,\c!offset= 1.8,\c!continue=\v!yes]
-\definebar[\v!overstrikes] [\v!overstrike] [\c!continue=\v!yes]
-\definebar[\v!underbars] [\v!underbar] [\c!continue=\v!yes]
-\definebar[\v!overbars] [\v!overbar] [\c!continue=\v!yes]
+\definebar[\v!overstrikes] [\v!overstrike] [\c!continue=\v!no]
+\definebar[\v!underbars] [\v!underbar] [\c!continue=\v!no]
+\definebar[\v!overbars] [\v!overbar] [\c!continue=\v!no]
% we want these always so ...
diff --git a/tex/context/base/strc-itm.mkiv b/tex/context/base/strc-itm.mkiv
index 6f3f5bb77..3c31bac4a 100644
--- a/tex/context/base/strc-itm.mkiv
+++ b/tex/context/base/strc-itm.mkiv
@@ -17,24 +17,26 @@
\unprotect
-\newconditional\sublistitem \setfalse\sublistitem
-\newconditional\symbollistitem \setfalse\symbollistitem
-\newconditional\headlistitem \setfalse\headlistitem
-\newconditional\introlistitem \setfalse\introlistitem
-\newconditional\randomizeitems \setfalse\randomizeitems
-\newconditional\autointrolistitem \setfalse\autointrolistitem
-\newconditional\optimizelistitem \settrue \optimizelistitem
-\newconditional\packlistitem \setfalse\packlistitem
-\newconditional\paragraphlistitem \setfalse\paragraphlistitem
-\newconditional\textlistitem \setfalse\textlistitem
-\newconditional\firstlistitem \setfalse\firstlistitem
-\newconditional\beforelistitem \setfalse\beforelistitem
-\newconditional\afterlistitem \setfalse\afterlistitem
-\newconditional\nowhitelistitem \setfalse\nowhitelistitem
-\newconditional\joinedlistitem \setfalse\joinedwhitelistitem
-\newconditional\reverselistitem \setfalse\reverselistitem
-\newconditional\continuelistitems \setfalse\continuelistitems
-\newconditional\fittinglistitems \setfalse\fittinglistitems
+\newconditional\sublistitem \setfalse\sublistitem
+\newconditional\symbollistitem \setfalse\symbollistitem
+\newconditional\headlistitem \setfalse\headlistitem
+\newconditional\introlistitem \setfalse\introlistitem
+\newconditional\randomizeitems \setfalse\randomizeitems
+\newconditional\autointrolistitem \setfalse\autointrolistitem
+\newconditional\optimizelistitem \settrue \optimizelistitem
+\newconditional\packlistitem \setfalse\packlistitem
+\newconditional\paragraphlistitem \setfalse\paragraphlistitem
+\newconditional\textlistitem \setfalse\textlistitem
+\newconditional\firstlistitem \setfalse\firstlistitem
+\newconditional\beforelistitem \setfalse\beforelistitem
+\newconditional\afterlistitem \setfalse\afterlistitem
+\newconditional\nowhitelistitem \setfalse\nowhitelistitem
+\newconditional\joinedlistitem \setfalse\joinedwhitelistitem
+\newconditional\reverselistitem \setfalse\reverselistitem
+\newconditional\continuelistitems \setfalse\continuelistitems
+\newconditional\fittinglistitems \setfalse\fittinglistitems
+\newconditional\indentedfirstlistitem \setfalse\indentedfirstlistitem
+\newconditional\inlinelistitem \setfalse\inlinelistitem
\newcount\noflists
\newcount\currentnoflists
@@ -249,8 +251,6 @@
\ifcsname\??op:::\itemgroupsecond\endcsname\csname\??op:::\itemgroupsecond\endcsname\fi
\fi}
-\newconditional\inlinelistitem \setfalse\inlinelistitem
-
\setvalue{\??op:::\v!packed }{\packitems}
\setvalue{\??op:::\v!intro }{\settrue\introlistitem} % here? not set to false
\setvalue{\??op:::\v!autointro}{\settrue\autointrolistitem}
@@ -620,6 +620,8 @@
\v!middle=>\let\symalignleft\hfil,
\v!center=>\let\symalignleft\hfil]}
+\let\currentitemindenting\empty
+
\def\redostartitemgroup[#1][#2]%
{\setfalse\inlinelistitem % new, no indent (leftskip)
\setfalse\concatnextitem % new, concat
@@ -689,8 +691,11 @@
\fi
\dosetraggedcommand{\getitemparameter\currentitemlevel\c!align}\raggedcommand
\dosetsymalign{\getitemparameter\currentitemlevel\c!symalign}%
- \doifsomething{\getitemparameter\currentitemlevel\c!indenting}
- {\normalexpanded{\noexpand\setupindenting[\getitemparameter\currentitemlevel\c!indenting]}}%
+ %\doifsomething{\getitemparameter\currentitemlevel\c!indenting}
+ % {\normalexpanded{\noexpand\setupindenting[\v!reset,\v!yes,\getitemparameter\currentitemlevel\c!indenting]}}%
+ % {\normalexpanded{\noexpand\setupindenting[\getitemparameter\currentitemlevel\c!indenting]}}%
+ %
+ \edef\currentitemindenting{\getitemparameter\currentitemlevel\c!indenting}%
%
\setitemlevel{#1}% moved to here
\ifx\listitem\empty
@@ -997,7 +1002,7 @@
\hfil
\hskip\getitemparameter\currentitemlevel\c!distance}}}
-\unprotected\def\dolistitem % evt aantal items opslaan per niveau, scheelt zoeken
+\def\dolistitem % evt aantal items opslaan per niveau, scheelt zoeken
{\ifconditional\textlistitem
% begin of item
\else
@@ -1005,8 +1010,16 @@
\fi
\advance\noflistelements\plusone
\optimizelistitemsbreak
- %\noindent %% WS: don't apply \noindent when the user sets 'first' in the indenting key
- \checkindentation\ifindentfirstparagraph\indent\else\noindent\fi
+ \setfalse\indentedfirstlistitem
+ \ifx\currentitemindenting\empty \else
+ \normalexpanded{\noexpand\setupindenting[\v!reset,\v!yes,\currentitemindenting]}%
+ \doifnot{\getitemparameter\currentitemlevel\c!alignsymbol}\v!yes
+ {\ifindentfirstparagraph\settrue\indentedfirstlistitem\fi}%
+ \fi
+ \dontleavehmode
+ \ifconditional\indentedfirstlistitem
+ \hskip-\parindent
+ \fi
\setbox\itemgroupitembox\hbox
{\ifconditional\headlistitem
\ifconditional\symbollistitem
@@ -1074,6 +1087,9 @@
\setfalse\sublistitem
\setfalse\symbollistitem
\EveryPar{\ignorespaces}% needed ?
+ \ifconditional\indentedfirstlistitem
+ \hskip\parindent
+ \fi
\ignorespaces}
% For Wolfgang Schuster
@@ -1321,6 +1337,8 @@
%\c!option=,
\c!textdistance=\v!big,
\c!command=\defaultitemcommand,
+ \c!indenting=\v!next,
+ %\c!alignsymbol=v!no,
\c!symbol=\currentitemlevel]
% new:
diff --git a/tex/context/base/tabl-ntb.mkiv b/tex/context/base/tabl-ntb.mkiv
index e7df3b281..796c09546 100644
--- a/tex/context/base/tabl-ntb.mkiv
+++ b/tex/context/base/tabl-ntb.mkiv
@@ -214,6 +214,7 @@
\newif\ifappendTBLsetups \appendTBLsetupstrue
\newif\ifenableTBLbreak \enableTBLbreakfalse
\newif\ifmultipleTBLheads \multipleTBLheadsfalse
+\newif\iftightTBLrowspan \tightTBLrowspantrue
\newif\iftraceTABLE \traceTABLEfalse
@@ -320,6 +321,36 @@
% \eTABLE
% \stopTEXpage
+%D By default rowspans are tight but you can change that:
+%D
+%D \startbuffer
+%D \bTABLE
+%D \bTR[height=20pt] \bTH 1. col \eTH \bTH 2. col \eTH \eTR
+%D \bTR[height=20pt] \bTD 1 row in 1. col \eTD \bTD[nr=2] 2 rows in 2. col \eTD \eTR
+%D \bTR[height=20pt] \bTD[nr=2] 2 rows in 1. col\eTD \eTR
+%D \bTR[height=20pt] \bTD[nr=3] 3 rows in 2. col \eTD \eTR
+%D \bTR[height=20pt] \bTD 1 row in 1. col \eTD \eTR
+%D \bTR[height=20pt] \bTD 1 row in 1. col \eTD \eTR
+%D \eTABLE
+%D
+%D \bTABLE
+%D \bTR[height=20pt] \bTH 2. col \eTH \bTH 1. col \eTH \eTR
+%D \bTR[height=20pt] \bTD[nr=2] 2 rows in 2. col \eTD \bTD 1 row in 1. col \eTD \eTR
+%D \bTR[height=20pt] \bTD[nr=2] 2 rows in 1. col\eTD \eTR
+%D \bTR[height=20pt] \bTD[nr=3] 3 rows in 2. col \eTD \eTR
+%D \bTR[height=20pt] \bTD 1 row in 1. col \eTD \eTR
+%D \bTR[height=20pt] \bTD 1 row in 1. col \eTD \eTR
+%D \eTABLE
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \getbuffer
+%D
+%D With \type {\tightTBLrowspanfalse} we get:
+%D
+%D \start \tightTBLrowspanfalse \getbuffer \stop
+
\def\setupTBLcell#1#2% cell over col over row
{\setupTBLsection % already forgotten
\edef\positiverow{\number#1}%
@@ -656,6 +687,9 @@
\getparameters
[\@@tbl\@@tbl]
[\c!align={\v!right,\v!broad,\v!high},#1]%
+ \ifx\tbltblsetups\empty\else
+ \doprocesslocalsetups\tbltblsetups
+ \fi
\hsize\tbltbltextwidth
\processaction
[\tbltblsplit]
@@ -776,6 +810,17 @@
% \vskip-\strutdp
% \fi
\fi
+ % tracing
+ % \iftrue
+ % \blank \tttf
+ % \dorecurse\maximumrow
+ % {\row\recurselevel\relax
+ % \dorecurse\maximumcol
+ % {\col\recurselevel\relax
+ % [r=\the\row,c=\the\col,h=\the\dimexpr\gettblht\row\col,w=\the\dimexpr\gettblwd\row\col]}%
+ % \par}%
+ % \blank
+ % \fi
\egroup
\popTBL}
@@ -829,6 +874,9 @@
{\global\advance\tblrow\plusone
\global\tblcol\zerocount
\global\tblspn\zerocount}%
+ % \iftrue
+ % \bgroup\tbox{\tttf[\number\tblrow]}\egroup
+ % \fi
\nexttblcol
\kern\dimexpr\tbltblleftmargindistance-\tbltblcolumndistance\relax}
@@ -923,8 +971,7 @@
\else
\scratchcounter#1\relax
\dorecurse\!!countb
- {\advance\scratchdimen
- \gettblhei\scratchcounter
+ {\advance\scratchdimen\gettblhei\scratchcounter
\advance\scratchcounter\plusone}%
\ifdim\scratchdimen<\!!heighta\relax
\scratchdimen\!!heighta
@@ -1206,7 +1253,9 @@
\fi}%
\advance\xxrowTBL\plusone}%
\else\ifdim\dimen4>\dimen0
- \settblhei\xrowTBL{\the\dimen2}%
+ \iftightTBLrowspan
+ \settblhei\xrowTBL{\the\dimen2}%
+ \fi
\fi\fi
\fi}
@@ -1372,7 +1421,7 @@
\fi}%
\hskip\gettbldis{#2}}
-\presetlocalframed
+\presetlocalframed % todo: tableparameter etc
[\@@tbl\@@tbl]
\setupTABLE [%
@@ -1405,6 +1454,7 @@
\c!rightmargindistance=\zeropoint,% whole table
\c!left=,
\c!right=,
+ \c!setups=,
\c!splitmethod=a%
]
diff --git a/tex/context/interface/cont-cs.xml b/tex/context/interface/cont-cs.xml
index 079606e99..d8c40501f 100644
--- a/tex/context/interface/cont-cs.xml
+++ b/tex/context/interface/cont-cs.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="setupitemgroup"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index bb011ddbc..d269812a8 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="setupitemgroup"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index 4c6ef7c7d..715de2dc9 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="setupitemgroup"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml
index b07e97936..ec3a877b6 100644
--- a/tex/context/interface/cont-fr.xml
+++ b/tex/context/interface/cont-fr.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="setupitemgroup"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index fa86d2159..412eb3ab9 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="setupitemgroup"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index a4bd85c61..49f0ac1bb 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="stelitemgroepin"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-pe.xml b/tex/context/interface/cont-pe.xml
index cf6a91683..d01becdb8 100644
--- a/tex/context/interface/cont-pe.xml
+++ b/tex/context/interface/cont-pe.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="بارگذاری‌گروه‌آیتم"/>
</cd:sequence>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 44d72a866..c93c6870c 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -6120,6 +6120,7 @@
</cd:command>
<cd:command name="setupitemgroup" file="core-itm.tex">
+ <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
<cd:sequence>
<cd:string value="setupitemgroup"/>
</cd:sequence>
diff --git a/tex/context/interface/keys-cs.xml b/tex/context/interface/keys-cs.xml
index 14de92929..0cecf9dbc 100644
--- a/tex/context/interface/keys-cs.xml
+++ b/tex/context/interface/keys-cs.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='zarovnani'/>
<cd:constant name='aligncharacter' value='aligncharacter'/>
<cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='zarovnejtitul'/>
<cd:constant name='alternative' value='alternativa'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index da7b5252b..45443f7ce 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='ausrichtung'/>
<cd:constant name='aligncharacter' value='aligncharacter'/>
<cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='titelausrichten'/>
<cd:constant name='alternative' value='alternative'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index cbb2a9ae6..30dcc8923 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='align'/>
<cd:constant name='aligncharacter' value='aligncharacter'/>
<cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='aligntitle'/>
<cd:constant name='alternative' value='alternative'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index 7a480438f..911f7e130 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='alignement'/>
<cd:constant name='aligncharacter' value='caracterealigne'/>
<cd:constant name='alignmentcharacter' value='alignementcaractere'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='alignementtitre'/>
<cd:constant name='alternative' value='alternative'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index b9cb2aa0a..16d8e507f 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='allinea'/>
<cd:constant name='aligncharacter' value='allineacarattere'/>
<cd:constant name='alignmentcharacter' value='carattereallineamento'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='allineatitolo'/>
<cd:constant name='alternative' value='alternativa'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index c67b4a284..51777f26e 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='uitlijnen'/>
<cd:constant name='aligncharacter' value='karakteruitlijnen'/>
<cd:constant name='alignmentcharacter' value='uitlijnkarakter'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='titeluitlijnen'/>
<cd:constant name='alternative' value='variant'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/context/interface/keys-pe.xml b/tex/context/interface/keys-pe.xml
index 8f76c8ffc..a7914a263 100644
--- a/tex/context/interface/keys-pe.xml
+++ b/tex/context/interface/keys-pe.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='تنظیم'/>
<cd:constant name='aligncharacter' value='حرف‌تنظیم'/>
<cd:constant name='alignmentcharacter' value='حرف‌تنظیم‌کردن'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='عنوان‌تنظیم'/>
<cd:constant name='alternative' value='جایگزین'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index b72fd8dde..0fb615785 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -524,6 +524,7 @@
<cd:constant name='align' value='aliniere'/>
<cd:constant name='aligncharacter' value='aliniazacaracter'/>
<cd:constant name='alignmentcharacter' value='alierecaracter'/>
+ <cd:constant name='alignsymbol' value='alignsymbol'/>
<cd:constant name='aligntitle' value='alinieretitlu'/>
<cd:constant name='alternative' value='alternativ'/>
<cd:constant name='andtext' value='andtext'/>
diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua
index 3d4bf05e8..21396c76c 100644
--- a/tex/generic/context/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/texmf/tex/generic/context/luatex-fonts.lua
--- merge date : 03/09/10 10:46:16
+-- merge date : 03/10/10 23:51:28
do -- begin closure to overcome local limits and interference