diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/math-map.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/math-map.lua | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/Master/texmf-dist/tex/context/base/math-map.lua b/Master/texmf-dist/tex/context/base/math-map.lua index f2a588fc7de..add6afa4c1c 100644 --- a/Master/texmf-dist/tex/context/base/math-map.lua +++ b/Master/texmf-dist/tex/context/base/math-map.lua @@ -53,6 +53,8 @@ local report_remapping = logs.reporter("mathematics","remapping") mathematics = mathematics or { } local mathematics = mathematics +local implement = interfaces.implement + -- Unfortunately some alphabets have gaps (thereby troubling all applications that -- need to deal with math). Somewhat strange considering all those weird symbols that -- were added afterwards. The following trickery (and data) is only to be used for @@ -184,7 +186,7 @@ local regular_tf = { }, symbols = { [0x2202]=0x2202, [0x2207]=0x2207, - [0x0027]=0x2032, -- prime + [0x0027]=0x2032, -- prime }, } @@ -617,6 +619,39 @@ function mathematics.syncname(alphabet) texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet]) end +implement { + name = "setmathattribute", + arguments = { "string", "string" }, + actions = function(alphabet,style) + local data = alphabets[alphabet] or regular + data = data[style] or data.tf + texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet]) + end +} + +implement { + name = "setmathstyle", + arguments = "string", + actions = function(style) + local r = mathremap[texgetattribute(mathalphabet)] + local alphabet = r and r.alphabet or "regular" + local data = alphabets[alphabet][style] + texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet]) + end +} + +implement { + name = "setmathalphabet", + arguments = "string", + actions = function(alphabet) + -- local r = mathremap[mathalphabet] + local r = mathremap[texgetattribute(mathalphabet)] + local style = r and r.style or "tf" + local data = alphabets[alphabet][style] + texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet]) + end +} + local islcgreek = regular_tf.lcgreek local isucgreek = regular_tf.ucgreek local issygreek = regular_tf.symbols @@ -742,9 +777,3 @@ function mathematics.addfallbacks(main) checkedcopy(characters,regular.bi.ucgreek,regular.it.ucgreek) checkedcopy(characters,regular.bi.lcgreek,regular.it.lcgreek) end - --- interface - -commands.setmathattribute = mathematics.syncboth -commands.setmathalphabet = mathematics.syncname -commands.setmathstyle = mathematics.syncstyle |