summaryrefslogtreecommitdiff
path: root/tex/context/base/s-fnt-10.tex
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2010-07-04 15:32:09 +0300
committerMarius <mariausol@gmail.com>2010-07-04 15:32:09 +0300
commit85b7bc695629926641c7cb752fd478adfdf374f3 (patch)
tree80293f5aaa7b95a500a78392c39688d8ee7a32fc /tex/context/base/s-fnt-10.tex
downloadcontext-85b7bc695629926641c7cb752fd478adfdf374f3.tar.gz
stable 2010-05-24 13:10
Diffstat (limited to 'tex/context/base/s-fnt-10.tex')
-rw-r--r--tex/context/base/s-fnt-10.tex163
1 files changed, 163 insertions, 0 deletions
diff --git a/tex/context/base/s-fnt-10.tex b/tex/context/base/s-fnt-10.tex
new file mode 100644
index 000000000..216d9d232
--- /dev/null
+++ b/tex/context/base/s-fnt-10.tex
@@ -0,0 +1,163 @@
+%D \module
+%D [ file=s-fnt-01,
+%D version=2006.10.10, % guess
+%D title=\CONTEXT\ Style File,
+%D subtitle=Listing Glyphs in Large Fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startluacode
+local format, sprint = string.format, tex.sprint
+
+function fonts.otf.show_all()
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata and tfmdata.shared then
+ local otfdata = tfmdata.shared.otfdata
+ if otfdata and otfdata.luatex then
+ local unicodes = otfdata.luatex.unicodes
+ sprint(tex.ctxcatcodes,format("\\starttabulate[|l|r|c|]"))
+ for i, name in ipairs(table.sortedkeys(unicodes)) do
+ local unicode = unicodes[name]
+ if unicode >= 0 then
+ sprint(tex.ctxcatcodes,format("\\NC %s \\NC %s \\NC \\char%s \\NC\\NR",name,unicode,unicode))
+ end
+ end
+ sprint(tex.ctxcatcodes,format("\\stoptabulate"))
+ end
+ end
+end
+
+function fonts.show_all()
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata then
+ local chars = tfmdata.characters
+ local descs = tfmdata.descriptions or { }
+ local data = characters.data
+ sprint(tex.ctxcatcodes,format("\\setuptabulate[header=repeat]"))
+ sprint(tex.ctxcatcodes,format("\\starttabulatehead"))
+ sprint(tex.ctxcatcodes,"\\NC\\bf unicode\\NC\\bf visual\\NC\\bf index\\NC\\bf glyph\\NC\\bf adobe\\NC\\bf context\\NC\\NR")
+ sprint(tex.ctxcatcodes,"\\HL")
+ sprint(tex.ctxcatcodes,format("\\stoptabulatehead"))
+ sprint(tex.ctxcatcodes,format("\\starttabulate[|l|c|l|p|p|p|]"))
+ for k, unicode in ipairs(table.sortedkeys(chars)) do
+-- for unicode, _ in table.sortedpairs(chars) do
+ if unicode >= 0 then
+ local chr, des, dat = chars[unicode], descs[unicode], data[unicode]
+ local index = chr.index or 0
+ local cname = (dat and dat.contextname) or ""
+ local aname = (dat and dat.adobename) or ""
+ local gname = (des and des.name) or ""
+ local mname = dat and dat.mathname
+ if type(mname) ~= "string" then
+ mname = ""
+ end
+ local mspec = dat and dat.mathspec
+ if mspec then
+ for m=1,#mspec do
+ local n = mspec[m].name
+ if n then
+ if mname == "" then
+ mname = n
+ else
+ mname = mname .. " " .. n
+ end
+ end
+ end
+ end
+ if mname ~= "" then
+ mname = "m: " .. mname
+ if cname ~= "" then
+ cname = cname .. " " .. mname
+ else
+ cname = mname
+ end
+ end
+ sprint(tex.ctxcatcodes,format("\\NC\\tttf U+%05X\\NC\\char%s\\NC\\tttf %05X\\NC\\tttf %s\\NC\\tttf %s\\NC\\tttf %s\\NC\\NR",unicode,unicode,index,gname,aname,cname))
+ end
+ end
+ sprint(tex.ctxcatcodes,format("\\stoptabulate"))
+ else
+ sprint(tex.ctxcatcodes,"problems")
+ end
+end
+
+function fonts.show_glyphs()
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata then
+ local chars = tfmdata.characters
+ for k, v in ipairs(table.sortedkeys(chars)) do
+ if v >=0 then
+ sprint(tex.ctxcatcodes,format("\\dontleavehmode{\\strut\\char%s}\\endgraf",v))
+ end
+ end
+ end
+end
+\stopluacode
+
+\def\ShowCompleteFont#1#2#3%
+ {\bgroup
+ \page
+ \font\TestFont=#1 at #2
+ \setuplayout[style=\TestFont]
+ \setupheadertexts[]
+ \setupfootertexts[#1 -- \pagenumber]
+ \setupfootertexts[pagenumber]
+ \setuplayout[width=middle,height=middle,topspace=1cm,backspace=1cm]
+ \TestFont
+ \nonknuthmode
+ \startcolumns[n=#3]
+ \TestFont
+ \ctxlua { fonts.show_all() }
+ \stopcolumns
+ \page
+ \egroup}
+
+\def\ShowAllGlyphs#1#2#3%
+ {\bgroup
+ \page
+ \font\TestFontA=#1 at 12pt
+ \font\TestFontB=#1 at #2
+ \setuplayout[style=\TestFontA]
+ \setupheadertexts[]
+ \setupfootertexts[#1 -- \pagenumber]
+ \setuplayout[width=middle,height=middle,topspace=1cm,backspace=1cm,header=1cm,footer=2cm]
+ \TestFontB \setupinterlinespace[line=1.2\dimexpr#2\relax] \raggedcenter
+ \nonknuthmode
+ \startcolumns[n=#3]
+ \TestFontB
+ \ctxlua { fonts.show_glyphs() }
+ \stopcolumns
+ \page
+ \egroup}
+
+\endinput
+
+\starttext
+
+% \ShowCompleteFont{name:dejavusansmono}{10pt}{2}
+% \ShowCompleteFont{name:dejavuserif}{10pt}{2}
+% \ShowCompleteFont{name:officinasansbookitcregular}{10pt}{2}
+% \ShowCompleteFont{name:officinaserifbookitcregular}{10pt}{2}
+% \ShowCompleteFont{name:serpentineserifeflight}{10pt}{2}
+% \ShowCompleteFont{name:lmtypewriter10-regular}{10pt}{2}
+% \ShowCompleteFont{lt55485}{10pt}{2}
+% \ShowCompleteFont{lmr10}{10pt}{2}
+% \ShowCompleteFont{lbr}{10pt}{2}
+% \ShowCompleteFont{name:Cambria}{10pt}{2}
+% \ShowCompleteFont{name:CambriaMath}{10pt}{2}
+% \ShowCompleteFont{name:texgyrepagella-regular}{10pt}{2}
+% \ShowCompleteFont{name:texgyrechorus-mediumitalic}{10pt}{2}
+% \ShowAllGlyphs {name:texgyrepagella-regular} {48pt}{2}
+% \ShowAllGlyphs {name:texgyrechorus-mediumitalic}{48pt}{2}
+% \ShowCompleteFont{name:euler10-regular}{10pt}{2}
+
+% \ShowCompleteFont{name:palatinosansinformalcombold}{20pt}{2}
+% \ShowCompleteFont{name:palatinonovaregular}{11pt}{2}
+% \ShowCompleteFont{name:optimanovaltregular}{11pt}{2}
+
+\stoptext