summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/meta-tex.lua
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-04-22 22:14:39 +0000
committerKarl Berry <karl@freefriends.org>2016-04-22 22:14:39 +0000
commitfc4466b32ed330a956ac603b00fd145524cff49a (patch)
tree2c50e2b8de13aa9233b2c76dffe201558f169e86 /Master/texmf-dist/tex/context/base/meta-tex.lua
parent50e2368597d5f6fe2057195d0ae6a9f2044923e4 (diff)
context (22apr16)
git-svn-id: svn://tug.org/texlive/trunk@40691 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/meta-tex.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/meta-tex.lua208
1 files changed, 0 insertions, 208 deletions
diff --git a/Master/texmf-dist/tex/context/base/meta-tex.lua b/Master/texmf-dist/tex/context/base/meta-tex.lua
deleted file mode 100644
index 1008e45c05e..00000000000
--- a/Master/texmf-dist/tex/context/base/meta-tex.lua
+++ /dev/null
@@ -1,208 +0,0 @@
-if not modules then modules = { } end modules ['meta-tex'] = {
- version = 1.001,
- comment = "companion to meta-tex.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local tostring = tostring
-local format, gsub, find, match = string.format, string.gsub, string.find, string.match
-local formatters = string.formatters
-local P, S, R, C, Cs, lpegmatch = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.Cs, lpeg.match
-
-metapost = metapost or { }
-
-local implement = interfaces.implement
-
--- local left = P("[")
--- local right = P("]")
--- local space = P(" ")
--- local argument = left * C((1-right)^1) * right
--- local pattern = (argument + space)^0
-
--- function metapost.sometxt(optional,str)
--- if optional == "" then
--- context.sometxta(str)
--- else
--- local one, two = lpegmatch(pattern,optional)
--- if two then
--- context.sometxtc(one,two,str)
--- elseif one then
--- context.sometxtb(one,str)
--- else
--- context.sometxta(str)
--- end
--- end
--- end
-
-local pattern = Cs((P([[\"]]) + P([["]])/"\\quotedbl{}" + P(1))^0) -- or \char
-
-function metapost.escaped(str)
- context(lpegmatch(pattern,str))
-end
-
-implement {
- name = "metapostescaped",
- actions = metapost.escaped,
- arguments = "string"
-}
-
-local simplify = true
-
--- local function strip(n,e)
--- -- get rid of e(0)
--- -- get rid of e(+*)
--- e = gsub(e,"^+","")
--- -- remove leading zeros
--- e = gsub(e,"^([+-]*)0+(%d)","%1%2")
--- if not simplify then
--- -- take it as it is
--- elseif n == "1" then
--- return format("10^{%s}",e)
--- end
--- return format("%s\\times10^{%s}",n,e)
--- end
---
--- function metapost.format_n(fmt,...)
--- fmt = gsub(fmt,"@","%%")
--- local initial, hasformat, final = match(fmt,"^(.-)(%%.-[%a])(.-)$")
--- if hasformat then
--- str = format(fmt,...)
--- str = gsub(str,"(.-)e(.-)$",strip)
--- str = format("%s\\mathematics{%s}%s",initial,str,final)
--- elseif not find(fmt,"%%") then
--- str = format("%"..fmt,...)
--- str = gsub(str,"(.-)e(.-)$",strip)
--- str = format("\\mathematics{%s}",str)
--- end
--- context(str)
--- end
-
--- todo: proper lpeg
-
--- local function strip(n,e)
--- -- get rid of e(0)
--- -- get rid of e(+*)
--- e = gsub(e,"^+","")
--- -- remove leading zeros
--- e = gsub(e,"^([+-]*)0+(%d)","%1%2")
--- if not simplify then
--- -- take it as it is
--- elseif n == "1" then
--- return format("\\mathematics{10^{%s}}",e)
--- end
--- return format("\\mathematics{%s\\times10^{%s}}",n,e)
--- end
---
--- function metapost.format_n(fmt,...)
--- fmt = gsub(fmt,"@","%%")
--- if find(fmt,"%%") then
--- str = format(fmt,...)
--- else -- yes or no
--- str = format("%"..fmt,...)
--- end
--- str = gsub(str,"([%-%+]-[%.%d]+)e([%-%+]-[%.%d]+)",strip)
--- context(str)
--- end
---
--- function metapost.format_v(fmt,str)
--- metapost.format_n(fmt,metapost.untagvariable(str,false))
--- end
-
--- -- --
-
-local number = C((S("+-")^0 * R("09","..")^1))
-local enumber = number * S("eE") * number
-
-local cleaner = Cs((P("@@")/"@" + P("@")/"%%" + P(1))^0)
-
-context = context or { exponent = function(...) print(...) end }
-
-function metapost.format_string(fmt,...)
- context(lpegmatch(cleaner,fmt),...)
-end
-
-function metapost.format_number(fmt,num)
- local number = tonumber(num)
- if number then
- local base, exponent = lpegmatch(enumber,formatters[lpegmatch(cleaner,fmt)](number))
- if base and exponent then
- context.MPexponent(base,exponent)
- else
- context(number)
- end
- else
- context(tostring(num))
- end
-end
-
--- This is experimental and will change!
-
-function metapost.svformat(fmt,str)
- metapost.format_string(fmt,metapost.untagvariable(str,false))
-end
-
-function metapost.nvformat(fmt,str)
- metapost.format_number(fmt,metapost.untagvariable(str,false))
-end
-
-implement { name = "metapostformatted", actions = metapost.svformat, arguments = { "string", "string" } }
-implement { name = "metapostgraphformat", actions = metapost.nvformat, arguments = { "string", "string" } }
-
--- local function test(fmt,n)
--- logs.report("mp format test","fmt: %s, n: %s, result: %s, \\exponent{%s}{%s}",fmt,n,
--- formatters[lpegmatch(cleaner,fmt)](n),
--- lpegmatch(enumber,formatters[lpegmatch(cleaner,fmt)](n))
--- )
--- end
---
--- test("@j","1e-8")
--- test("@j",1e-8)
--- test("@j","1e+8")
--- test("@j","1e-10")
--- test("@j",1e-10)
--- test("@j","1e+10")
--- test("@j","1e-12")
--- test("@j","1e+12")
--- test("@j","1e-0")
--- test("@j","1e+0")
--- test("@j","1")
--- test("@j test","1")
--- test("@j","-1")
--- test("@j","1e-102")
--- test("@1.4j","1e+102")
--- test("@j","1.2e+102")
--- test("@j","1.23e+102")
--- test("@j","1.234e+102")
-
-local f_textext = formatters[ [[textext("%s")]] ]
-local f_mthtext = formatters[ [[textext("\mathematics{%s}")]] ]
-local f_exptext = formatters[ [[textext("\mathematics{%s\times10^{%s}}")]] ]
-
-local mpprint = mp.print
-
-function mp.format(fmt,str)
- fmt = lpegmatch(cleaner,fmt)
- mpprint(f_textext(formatters[fmt](metapost.untagvariable(str,false))))
-end
-
-function mp.formatted(fmt,num) -- svformat
- fmt = lpegmatch(cleaner,fmt)
- mpprint(f_textext(formatters[fmt](tonumber(num) or num)))
-end
-
-function mp.graphformat(fmt,num) -- nvformat
- fmt = lpegmatch(cleaner,fmt)
- local number = tonumber(num)
- if number then
- local base, exponent = lpegmatch(enumber,number)
- if base and exponent then
- mpprint(f_exptext(base,exponent))
- else
- mpprint(f_mthtext(num))
- end
- else
- mpprint(f_textext(tostring(num)))
- end
-end