summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/math-frc.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-frc.lua46
1 files changed, 43 insertions, 3 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua b/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
index 190c364101d..fa3ac515fe1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
@@ -13,6 +13,7 @@ local variables = interfaces.variables
local v_no = variables.no
local v_yes = variables.yes
+local v_hidden = variables.hidden
local resolved = {
[0x007B] = "\\{",
@@ -35,11 +36,12 @@ local function mathfraction(how,left,right,width)
else
context("\\atopwithdelims%s%s",resolved[left],resolved[right])
end
- elseif how == v_yes then
+ elseif how == v_yes or how == v_hidden then
+ local norule = how == v_hidden and LUATEXFUNCTIONALITY > 7361 and " norule " or ""
if left == 0x002E and right == 0x002E then
- context("\\normalabove%ssp",width)
+ context("\\normalabove%s%s%ssp",norule,width)
else
- context("\\abovewithdelims%s%s%ssp",resolved[left],resolved[right],width)
+ context("\\abovewithdelims%s%s%s%s%ssp",norule,resolved[left],resolved[right],width)
end
else -- v_auto
if left == 0x002E and right == 0x002E then
@@ -55,3 +57,41 @@ interfaces.implement {
actions = mathfraction,
arguments = { "string", "number", "number", "dimen" }
}
+
+-- experimental code in lmtx
+
+if CONTEXTLMTXMODE > 0 then
+
+ local ctx_Uatop = context.Uatop
+ local ctx_Uover = context.Uover
+
+ local function umathfraction(how,left,right,width)
+ if how == v_no then
+ if left == 0x002E and right == 0x002E then
+ ctx_Uatop()
+ else
+ context("\\Uatopwithdelims%s%s",resolved[left],resolved[right])
+ end
+ elseif how == v_yes or how == v_hidden then
+ local norule = how == v_hidden and " norule " or ""
+ if left == 0x002E and right == 0x002E then
+ context("\\Uabove%s%ssp",norule,width)
+ else
+ context("\\Uabovewithdelims%s%s%s%ssp",norule,resolved[left],resolved[right],width)
+ end
+ else -- v_auto
+ if left == 0x002E and right == 0x002E then
+ ctx_Uover()
+ else
+ context("\\Uoverwithdelims%s%s",resolved[left],resolved[right])
+ end
+ end
+ end
+
+ interfaces.implement {
+ name = "umathfraction",
+ actions = umathfraction,
+ arguments = { "string", "number", "number", "dimen" }
+ }
+
+end