summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/modules/mkxl/s-symbols-show.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/modules/mkxl/s-symbols-show.mkxl')
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-symbols-show.mkxl110
1 files changed, 110 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-symbols-show.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-symbols-show.mkxl
new file mode 100644
index 00000000000..37d42fe0079
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-symbols-show.mkxl
@@ -0,0 +1,110 @@
+%D \module
+%D [ file=symb-run,
+%D version=2010.12.08, % 1998.07.20,
+%D title=\CONTEXT\ Symbol Libraries,
+%D subtitle=Runtime Macros,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% todo: implementor
+
+\startluacode
+ function commands.showsymbolset(collection,symbols,fontid)
+ if type(symbols) == "string" then
+ symbols = utilities.parsers.settings_to_array(symbols)
+ end
+ local options = { framecolor = "orange", rulethickness = ".8pt", offset = interfaces.variables.overlay }
+ local list = table.tohash(symbols)
+ local alsofont = fontid > 0
+ local defined = #symbols > 0
+ local byname = false
+ if alsofont then
+ local is_symbol = characters.is_symbol
+ local chardata = characters.data
+ local resources = fonts.hashes.resources [fontid]
+ local characters = fonts.hashes.characters[fontid]
+ if resources and characters then
+ local unicodes = resources.unicodes
+ if unicodes then
+ for name, unicode in next, unicodes do
+ if not list[name] and name ~= ".notdef" then
+ local c = rawget(chardata,unicode)
+ if not c or is_symbol[c.category] then
+ list[name] = false
+ byname = true
+ end
+ end
+ end
+ end
+ end
+ end
+ local detail = defined and byname
+ context.start()
+ context.setupsymbolset { collection }
+ context.starttabulate { detail and "|lT|l|l|lT|" or "|lT|l|l|"}
+ for symbol, how in table.sortedhash(list) do
+ if detail and how then
+ context.BC()
+ else
+ context.NC()
+ end
+ context(symbol)
+ context.NC()
+ context.symbol(symbol)
+ context.NC()
+ context.framed(options,context.nested.symbol(symbol))
+ if detail and how then
+ context.BC()
+ context("defined")
+ else
+ context.NC()
+ end
+ context.NC()
+ context.NR()
+ end
+ context.stoptabulate()
+ context.stop()
+ end
+\stopluacode
+
+\unprotect
+
+\permanent\protected\tolerant\gdef\showsymbolset[#1]%
+ {\begingroup
+ \edef\p_font{\begincsname\??symboldefault#1\endcsname}%
+ \begingroup
+ \ifx\p_font\empty
+ \global\globalscratchcounter\zerocount
+ \else
+ \definedfont[\p_font]%
+ \global\globalscratchcounter\fontid\font\relax
+ \fi
+ \endgroup
+ \ctxcommand {
+ showsymbolset (
+ "#1",
+ "\symbolset{#1}",
+ \the\globalscratchcounter
+ ) }%
+ \endgroup}
+
+\protect
+
+\continueifinputfile{s-symbols-show.mkxl}
+
+\usesymbols[cc]
+
+\starttext
+
+ \showsymbolset[cc]
+
+ \symbol[cc][cc-by-sa-nc]
+
+\stoptext
+
+