From 68136a0b476cd6d5bb8fb512b1dae4b1c697425b Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Mon, 5 Dec 2011 12:19:01 +0100 Subject: titlo placement --- .../third/cyrillicnumbers/cyrillicnumbers.lua | 57 ++++++++++------------ .../third/cyrillicnumbers/t-cyrillicnumbers.mkiv | 31 ++++++------ 2 files changed, 43 insertions(+), 45 deletions(-) diff --git a/tex/context/third/cyrillicnumbers/cyrillicnumbers.lua b/tex/context/third/cyrillicnumbers/cyrillicnumbers.lua index ab238ad..1c252ae 100644 --- a/tex/context/third/cyrillicnumbers/cyrillicnumbers.lua +++ b/tex/context/third/cyrillicnumbers/cyrillicnumbers.lua @@ -76,31 +76,19 @@ local cyrillic_100k = utf8char(0x488) -- combining hundred thousands sign local cyrillic_1m = utf8char(0x489) -- combining million sign local cyrillic_titlo = utf8char(0x483) -- combining titlo +cyrnum.last_synonyms = { + final = true, + last = true, + right = true, + rightmost = true, + ["false"] = true, +} ---local concat_cyrillic_nums = function (chars, upper) --- dbg(chars) --- local nchars, result = tablemaxn(chars), "" --- --if cyrnum.placetitlo and cyrnum.titlomode == "fm" then -- above central char --- -- dbg("char cnt", nchars) --- -- dbg("insert pos", mathceil(nchars/2)) --- -- tableinsert(chars, mathceil(nchars/2), cyrillic_titlo) --- --end --- for i=#chars, 1, -1 do --- local this = chars[i] --- if this then --- if upper then this = utfupper(this) end --- if i > 3 then --- result = result .. cyrillic_1k .. this --- else --- result = result .. this --- end --- end --- end --- if cyrnum.placetitlo and cyrnum.titlomode == "fl" then -- take titlo from font, place it after / above last char --- result = result .. cyrillic_titlo --- end --- return result ---end +cyrnum.yes_synonyms = { + yes = true, + yeah = true, + ["true"] = true, +} local digits_only = function (list) local result = { } @@ -119,17 +107,24 @@ local start_titlo, stop_titlo = [[\cyrnumdrawtitlo{]], "}" local titlofuncs = { font = function (list) - if cyrnum.titlolocation == "final" then - list[#list+1] = cyrillic_titlo - else -- “middle” or whatever - local pos = mathceil(tablemaxn(list)/2) - tableinsert(list, mathceil(tablemaxn(list)/2), cyrillic_titlo) + if cyrnum.titlolocation == "l" then + local result = lreverse(list) + result[#result+1] = cyrillic_titlo + return result end + -- “middle” (“m”) or whatever + local pos = mathceil(tablemaxn(list)/2) + tableinsert(list, mathceil(tablemaxn(list)/2), cyrillic_titlo) return lreverse(list) end, mp = function (list) - local result = { start_titlo } + local result = { } + local titlospan = cyrnum.titlospan + local titlostart = titlospan and #list > titlospan and #list-titlospan or 1 for i=tablemaxn(list), 1, -1 do + if i == titlostart then + result[#result+1] = start_titlo + end result[#result+1] = list[i] end result[#result+1] = stop_titlo @@ -190,3 +185,5 @@ converters.Cyrillicnumerals = Tocyrillic function commands.cyrillicnumerals (n) context(tocyrillic(n)) end function commands.Cyrillicnumerals (n) context(Tocyrillic(n)) end + +-- vim:ft=lua:ts=2:sw=2:expandtab:fo=croql diff --git a/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkiv b/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkiv index 8788c5e..79a47e6 100644 --- a/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkiv +++ b/tex/context/third/cyrillicnumbers/t-cyrillicnumbers.mkiv @@ -1,13 +1,13 @@ %D \module -%D [ file=t-cyrillicnumbers, -%D version=2011-11-29 09:58:48+0100, -%D title=\CONTEXT\ User Module, -%D subtitle=Cyrillic Number Module, -%D author=Philipp Gesang, -%D date=\currentdate, -%D copyright=Philipp Gesang, -%D license=2-clause BSD, -%D email={gesang at stud dot uni-heidelberg dot de}] +%D [ file=t-cyrillicnumbers, +%D version=2011-11-29 09:58:48+0100, +%D title=\CONTEXT\ User Module, +%D subtitle=Cyrillic Number Module, +%D author=Philipp Gesang, +%D date=\currentdate, +%D copyright=Philipp Gesang, +%D license=2-clause BSD, +%D email={gesang at stud dot uni-heidelberg dot de}] %D This module is licensed under the conditions of the BSD license with %D two clauses. There is a copy in a file named "COPYING" in the %D t-cyrillicnumbers source tree. @@ -32,9 +32,9 @@ \startluacode local tc = thirddata.cyrnum tc.placetitlo = "\cyrnumparameter{titlo}" - tc.titlospan = "\cyrnumparameter{titlospan}" - tc.titlolocation = "\cyrnumparameter{titlolocation}" - tc.drawdots = "\cyrnumparameter{dots}" == "yes" + tc.titlospan = tonumber("\cyrnumparameter{titlospan}") or false + tc.titlolocation = tc.last_synonyms["\cyrnumparameter{titlolocation}"] and "l" or "m" + tc.drawdots = tc. yes_synonyms["\cyrnumparameter{dots}"] or false tc.dotsymbol = "\cyrnumparameter{dotsymbol}" \stopluacode% } @@ -44,7 +44,7 @@ \setupcyrnum[ titlo=mp, % font|mp|no titlospan=3, % n|all - titlolocation=middle, % final|middle -- only effective if span ~= all + titlolocation=middle, % final|middle -- only effective if using the font’s titlo dots=\v!yes, % yes|no dotsymbol=·, penwidth=3, @@ -143,12 +143,12 @@ save penwidth ; penwidth = \cyrnumparameter{penwidth} ; save High, Low ; save Vfactor ; Vfactor = .20 ; - save Hfactor ; Hfactor = .85 ; + save Hfactor ; Hfactor = .75 ; titlo := ( 0.00, -0.8*Vfactor) {dir 90} .. {dir 90} ( 1.00, 1.2*Vfactor) ; pickup pensquare yscaled penwidth xscaled 2 rotated 85 ; draw titlo - xysized (Hfactor*OverlayWidth-.5*penwidth,Vfactor*OverlayHeight) + xysized (Hfactor*OverlayWidth-penwidth,Vfactor*OverlayHeight) shifted (.5*(OverlayWidth-Hfactor*OverlayWidth),OverlayHeight-Vfactor*OverlayHeight) ; setbounds currentpicture to boundingbox OverlayBox ; \stopuniqueMPgraphic @@ -282,3 +282,4 @@ \unprotect \endinput +% vi:ft=context:fo=co:ts=4:expandtab:sw=4 -- cgit v1.2.3