summaryrefslogtreecommitdiff
path: root/tex/context/modules/mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/modules/mkiv')
-rw-r--r--tex/context/modules/mkiv/s-abbreviations-extras.tex56
-rw-r--r--tex/context/modules/mkiv/s-abbreviations-logos.tex376
-rw-r--r--tex/context/modules/mkiv/s-obsolete-tokens.mkiv346
-rw-r--r--tex/context/modules/mkiv/s-physics-units.lua86
-rw-r--r--tex/context/modules/mkiv/s-version.mkiv123
5 files changed, 987 insertions, 0 deletions
diff --git a/tex/context/modules/mkiv/s-abbreviations-extras.tex b/tex/context/modules/mkiv/s-abbreviations-extras.tex
new file mode 100644
index 000000000..7ee6e1553
--- /dev/null
+++ b/tex/context/modules/mkiv/s-abbreviations-extras.tex
@@ -0,0 +1,56 @@
+%D \module
+%D [ file=s-abbrevations-extras.tex, % was: s-abr-01
+%D version=1996.01.01,
+%D title=\CONTEXT\ Style File,
+%D subtitle=General Abbreviated Extras,
+%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.
+
+\startmodule[abbreviations-extras]
+
+\def\SystemSpecialA#1{$\langle\it#1\rangle$}
+\def\SystemSpecialB#1{{\tttf<#1>}}
+
+\unexpanded\def\CATCODE {\SystemSpecialA{catcode}}
+\unexpanded\def\CATCODES {\SystemSpecialA{catcodes}}
+\unexpanded\def\DIMENSION {\SystemSpecialA{dimension}}
+\unexpanded\def\DIMENSIONS {\SystemSpecialA{dimensions}}
+\unexpanded\def\COUNTER {\SystemSpecialA{counter}}
+\unexpanded\def\COUNTERS {\SystemSpecialA{counters}}
+\unexpanded\def\HBOX {\SystemSpecialA{hbox}}
+\unexpanded\def\HBOXES {\SystemSpecialA{hboxes}}
+\unexpanded\def\VBOX {\SystemSpecialA{vbox}}
+\unexpanded\def\VBOXES {\SystemSpecialA{vboxes}}
+\unexpanded\def\BOX {\SystemSpecialA{box}}
+\unexpanded\def\BOXES {\SystemSpecialA{boxes}}
+\unexpanded\def\TOKENLIST {\SystemSpecialA{token list}}
+\unexpanded\def\TOKENLISTS {\SystemSpecialA{token lists}}
+\unexpanded\def\NEWLINE {\SystemSpecialA{newline}}
+\unexpanded\def\SKIP {\SystemSpecialA{skip}}
+\unexpanded\def\SKIPS {\SystemSpecialA{skips}}
+\unexpanded\def\MUSKIP {\SystemSpecialA{muskip}}
+\unexpanded\def\MUSKIPS {\SystemSpecialA{muskips}}
+\unexpanded\def\MARK {\SystemSpecialA{mark}}
+\unexpanded\def\MARKS {\SystemSpecialA{marks}}
+
+\unexpanded\def\SPACE {\SystemSpecialB{space}}
+\unexpanded\def\EOF {\SystemSpecialB{eof}}
+\unexpanded\def\TAB {\SystemSpecialB{tab}}
+\unexpanded\def\NEWPAGE {\SystemSpecialB{newpage}}
+\unexpanded\def\NEWLINE {\SystemSpecialB{newline}}
+
+\unexpanded\def\LUWATEEKH {لُواتيخ} % kh ī t ā w [u] l
+\unexpanded\def\luwateekh {luwātīkh}
+
+\doifmodeelse {mkiv} {
+ \unexpanded\def\THANH{H\agrave n Th\ecircumflexacute\ Th\agrave nh}
+} {
+ \unexpanded\def\THANH{H\`an Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh}
+}
+
+\stopmodule
diff --git a/tex/context/modules/mkiv/s-abbreviations-logos.tex b/tex/context/modules/mkiv/s-abbreviations-logos.tex
new file mode 100644
index 000000000..dfac57f0a
--- /dev/null
+++ b/tex/context/modules/mkiv/s-abbreviations-logos.tex
@@ -0,0 +1,376 @@
+%D \module
+%D [ file=s-abbrevations-logos.tex, % was: s-abr-01
+%D version=1996.01.01,
+%D title=\CONTEXT\ Style File,
+%D subtitle=General Abbreviated Logos,
+%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.
+
+% avoid two character abbreviations
+
+\startmodule[abbreviations-logos]
+
+\logo [MKI] {MkI} % joke
+\logo [MKII] {MkII}
+\logo [MKIII] {MkIII} % joke
+\logo [MKIV] {MkIV}
+\logo [MKVI] {MkVI}
+\logo [MKIX] {MkIX}
+\logo [MKXI] {MkXI}
+\logo [MKXL] {MkXL}
+\logo [MKLX] {MkLX}
+\logo [MPII] {MpII}
+\logo [MPIV] {MpIV}
+\logo [MPVI] {MpVI}
+\logo [MPLX] {MpLX}
+\logo [MPXL] {MpXL}
+\logo [LMTX] {LMTX}
+
+\logo [ACROBAT] {Acro\-bat}
+\logo [AFM] {afm}
+\logo [AI] {ai}
+\logo [ALEPH] {Aleph} % {\mathematics{\aleph}}
+\logo [ALGOL] {ALGOL}
+\logo [AMS] {ams}
+\logo [AMSLATEX] {\AmSLaTeX}
+\logo [AMSTEX] {\AmSTeX}
+\logo [ANSI] {ansi}
+\logo [APA] {apa}
+\logo [API] {api}
+\logo [ARABTEX] {Arab\TeXsuffix}
+\logo [ARM] {arm}
+\logo [ASCII] {ascii}
+\logo [ASCIIMATH] {AsciiMath}
+\logo [ASCIITEX] {ascii\TeXsuffix}
+\logo [BACHOTEX] {Bacho\TeXsuffix}
+\logo [BASIC] {Basic}
+\logo [BIBTEX] {bib\TeXsuffix}
+\logo [BLUESKY] {BlueSky}
+\logo [BMP] {bmp}
+\logo [BSD] {bsd}
+\logo [CALCMATH] {CalcMath}
+\logo [CCODE] {C}
+\logo [CD] {cd}
+\logo [CDROM] {cdrom}
+\logo [CID] {cid}
+\logo [CJK] {cjk}
+\logo [CLANG] {clang}
+\logo [CLD] {cld}
+\logo [CMAKE] {cmake}
+\logo [CMR] {cmr}
+\logo [CMYK] {cmyk}
+\logo [CNC] {cnc}
+\logo [CODHOST] {CodHost}
+\logo [CONTEXT] {\ConTeXt}
+\logo [CONTEXTGROUP] {\ConTeXt\ Group}
+\logo [CONTEXTWIKI] {\ConTeXt\ Wiki}
+\logo [CPLUSPLUS] {C\high{++}}
+\logo [CPU] {cpu}
+\logo [CSS] {css}
+\logo [CSV] {csv}
+\logo [CTAN] {ctan}
+\logo [CTXTOOLS] {ctxtools}
+\logo [CURL] {Curl}
+\logo [CWEB] {cweb}
+\logo [DAC] {dac}
+\logo [DARWIN] {Darwin}
+\logo [DECTEN] {dec-10}
+\logo [DISTILLER] {distiller}
+\logo [DNA] {dna}
+\logo [DPI] {dpi}
+%logo [DRATEX] {Dra\TeXsuffix}
+\logo [DSC] {dsc}
+\logo [DTD] {dtd}
+\logo [DTK] {dtk}
+\logo [DTP] {dtp}
+\logo [DVD] {dvd}
+\logo [DVI] {dvi}
+\logo [DVIPDFM] {dvipdfm}
+\logo [DVIPDFMX] {dvipdfmx}
+\logo [DVIPOS] {dvipos}
+\logo [DVIPS] {dvips}
+\logo [DVIPSONE] {dvipsone}
+\logo [DVISCR] {dviscr}
+\logo [DVIWINDO] {dviwindo}
+\logo [EBCDIC] {ebcdic}
+\logo [EC] {ec}
+\logo [ECMASCRIPT] {ecmascript}
+\logo [EIFFEL] {Eiffel}
+\logo [EMACS] {emacs}
+\logo [EMTEX] {em\TeXsuffix}
+\logo [ENCODING] {enc}
+\logo [ENCTEX] {enc\TeXsuffix}
+\logo [EPS] {eps}
+\logo [EPUB] {ePub}
+\logo [ETEX] {\eTeX}
+\logo [EU] {eu}
+\logo [EUROBACHOTEX] {EuroBacho\TeXsuffix}
+\logo [EUROMATH] {EuroMath}
+\logo [EUROTEX] {Euro\TeXsuffix}
+\logo [EXAMPLE] {eXaMpLe}
+\logo [EXAMPLED] {exampled}
+\logo [EXAMPLEQ] {exampleq}
+\logo [EXAMPLER] {exampler}
+\logo [EXAMPLET] {examplet}
+\logo [EXAMPLEX] {examplex}
+\logo [EXIMPLE] {eXiMpLe}
+\logo [FAQ] {faq}
+\logo [FDF] {fdf}
+\logo [FFI] {ffi}
+%logo [FGA] {fga}
+%logo [FGBBS] {fgbbs}
+\logo [FLAC] {flac}
+\logo [FONTFORGE] {FontForge}
+\logo [FOXET] {foXet}
+\logo [FPTEX] {fp\TeXsuffix}
+\logo [FREEBSD] {FreeBSD}
+\logo [FTP] {ftp}
+\logo [GCC] {gcc}
+\logo [GHOSTSCRIPT] {Ghost\-script}
+\logo [GHOSTVIEW] {Ghost\-view}
+\logo [GIF] {gif}
+\logo [GNU] {gnu}
+\logo [GNUPLOT] {gnuplot}
+\logo [GRAPHICSMAGICK]{GraphicsMagick}
+\logo [GS] {Ghost\-Script}
+\logo [GUST] {Gust}
+\logo [GWTEX] {gw\TeXsuffix}
+\logo [HSB] {hsb} % ?
+\logo [HSV] {hsv}
+\logo [HTML] {html}
+\logo [HTTP] {http}
+\logo [HTTPS] {https}
+\logo [HZ] {hz}
+\logo [IBM] {ibm}
+\logo [IMAGEMAGICK] {ImageMagick}
+\logo [INITEX] {ini\TeXsuffix}
+\logo [INRSTEX] {inrs\TeXsuffix}
+\logo [IO] {io}
+\logo [INKSCAPE] {Inkscape}
+\logo [IRCNET] {IRCnet}
+\logo [ISO] {iso}
+\logo [JAVA] {Java}
+\logo [JAVASCRIPT] {Java\-Script}
+\logo [JBIG] {jbig}
+\logo [JIT] {jit}
+\logo [JPEG] {jpeg}
+\logo [JPG] {jpg}
+\logo [JSON] {json}
+\logo [KB] {KB}
+\logo [KPATHSEA] {kpathsea}
+\logo [KPSE] {kpse}
+\logo [KPSEWHICH] {kpsewhich}
+\logo [KVM] {kvm}
+\logo [LAMSTEX] {\LamSTeX}
+\logo [LATEX] {\LaTeX}
+%logo [LATEXTE] {\LaTeX2e}
+%logo [LATEXTN] {\LaTeX2.09}
+\logo [LCD] {lcd}
+\logo [LINUX] {linux}
+\logo [LISP] {Lisp}
+\logo [LMX] {lmx}
+\logo [LPEG] {lpeg}
+\logo [LUA] {Lua}
+\logo [LUAJIT] {Lua\wordboundary JIT}
+\logo [LUAJITTEX] {Lua\wordboundary jit\TeXsuffix}
+\logo [LUAMETATEX] {\Lua\wordboundary Meta\wordboundary\TeXsuffix}
+\logo [LUATEX] {Lua\wordboundary\TeXsuffix}
+\logo [LUATOOLS] {luatools}
+\logo [MACOSX] {MacOSX}
+%logo [MACROTEX] {Macro\TeXsuffix}
+\logo [MAKEMPY] {MakeMPY}
+\logo [MAPPING] {map}
+\logo [MAPS] {Maps}
+\logo [MATHML] {MathML}
+\logo [METAFONT] {\MetaFont}
+\logo [LUAMETAFUN] {\Lua\wordboundary\MetaFun}
+\logo [METAFUN] {\MetaFun}
+\logo [METAPOST] {\MetaPost}
+\logo [METATEX] {Meta\TeXsuffix}
+\logo [METATYPE] {MetaType1}
+\logo [MICROSOFT] {Microsoft}
+\logo [MIKTEX] {Mik\TeXsuffix}
+\logo [MINGW] {MingW}
+\logo [MKTEXLSR] {mktexlsr}
+\logo [MLBIBTEX] {MLbib\TeXsuffix}
+\logo [MLTEX] {ml\TeXsuffix}
+\logo [MODULA] {Modula}
+\logo [MOV] {mov}
+\logo [MPEG] {mpeg}
+\logo [MPLIB] {mplib}
+\logo [MPS] {mps}
+\logo [MPTOPDF] {mptopdf}
+\logo [MSDOS] {msdos}
+\logo [MSEXCEL] {MS~Excel}
+\logo [MSVC] {MSVC}
+\logo [MSWINDOWS] {MS~Windows}
+\logo [MSWORD] {MS~Word}
+\logo [MTXRUN] {mtxrun}
+\logo [MTXTOOLS] {mtxtools}
+\logo [MYSQL] {MySQL}
+\logo [NETPBM] {NetPBM}
+\logo [NGINX] {nginx}
+\logo [NTG] {ntg}
+\logo [NTS] {nts}
+\logo [OFM] {ofm}
+\logo [OMEGA] {Omega}
+\logo [OPENBSD] {OpenBSD}
+\logo [OPENMATH] {OpenMath}
+\logo [OPENTYPE] {OpenType}
+\logo [OPENOFFICE] {OpenOffice}
+\logo [OPI] {opi}
+\logo [OSX] {os-x}
+\logo [OTEX] {Oriental \TeXsuffix}
+\logo [OTF] {otf}
+\logo [OTP] {otp}
+\logo [OVF] {ovf}
+\logo [PASCAL] {Pascal}
+\logo [PATGEN] {Patgen}
+\logo [PCTEX] {pc\TeXsuffix}
+\logo [PDF] {pdf}
+\logo [PDFETEX] {pdfe\TeXsuffix}
+\logo [PDFTEX] {pdf\TeXsuffix}
+\logo [PDFTOOLS] {pdftools}
+\logo [PDFTOPS] {pdftops}
+\logo [PERL] {Perl}
+\logo [PERLTK] {Perl/Tk}
+\logo [PFA] {pfa}
+\logo [PFB] {pfb}
+\logo [PICTEX] {\PiCTeX}
+\logo [PK] {pk}
+\logo [PLAIN] {Plain}
+\logo [PNG] {png}
+\logo [POSIX] {posix}
+\logo [POSTGRESS] {Post\-gress}
+\logo [POSTSCRIPT] {Post\-Script}
+\logo [PPCHTEX] {\PPCHTeX}
+\logo [PRAGMA] {Pragma ADE}
+\logo [PRESS] {press}
+\logo [PRIFIL] {prifil}
+\logo [PS] {Post\-Script}
+\logo [PSCHECK] {pscheck}
+\logo [PSTOEDIT] {pstoedit}
+\logo [PSTOPAGE] {pstopage}
+\logo [PSTOPDF] {pstopdf}
+\logo [PSTRICKS] {pstricks}
+\logo [PYTHON] {Python}
+\logo [RAID] {raid}
+\logo [RAM] {ram}
+\logo [RCA] {RCA}
+\logo [READER] {Acro\-bat Reader}
+\logo [RELAXNG] {Relax\kern.125emNG}
+\logo [RGB] {rgb}
+\logo [RLXTOOLS] {rlxtools}
+\logo [RSYNC] {Rsync}
+\logo [RUBY] {Ruby}
+\logo [SCITE] {SciTE}
+\logo [SGML] {sgml}
+\logo [SI] {si}
+\logo [SQL] {sql}
+\logo [SSD] {ssd}
+\logo [STIX] {Stix}
+\logo [SUMATRAPDF] {SumatraPDF}
+\logo [SVG] {svg}
+\logo [SVN] {svn}
+\logo [SWIG] {swig}
+\logo [SWIGLIB] {SwigLib}
+\logo [SYNCTEX] {Sync\TeX}
+\logo [SQLITE] {SQLite}
+\logo [TABLE] {\TaBlE}
+\logo [TCPIP] {tcp/ip}
+\logo [TDS] {tds} % no sc te
+\logo [TEI] {tei} % no sc te
+\logo [TETEX] {te\TeXsuffix} % no sc te
+\logo [TEX] {\TeX}
+\logo [TEXADRES] {\TeXprefix adress}
+\logo [TEXBASE] {\TeXprefix base}
+\logo [TEXEDIT] {\TeXprefix edit}
+\logo [TEXEXEC] {\TeXprefix exec}
+\logo [TEXFONT] {\TeXprefix font}
+\logo [TEXFORM] {\TeXprefix form}
+\logo [TEXGYRE] {\TeX\ Gyre}
+\logo [TEXLIVE] {\TeXprefix Live}
+\logo [TEXLUA] {\TeXprefix Lua}
+\logo [TEXMF] {texmf}
+\logo [TEXMFSTART] {texmfstart}
+\logo [TEXNL] {tex-nl}
+\logo [TEXSHOW] {\TeXprefix show}
+\logo [TEXSPELL] {\TeXprefix spell}
+\logo [TEXSYNC] {texsync}
+\logo [TEXTMATE] {TextMate}
+\logo [TEXTOOLS] {\TeXprefix tools}
+\logo [TEXUTIL] {\TeXprefix util}
+\logo [TEXWORK] {\TeXprefix work}
+\logo [TEXWORKS] {\TeXprefix works}
+\logo [TEXXET] {\TeX\XeT} \def\XeT{XeT}
+\logo [TFM] {tfm}
+\logo [THREED] {3D}
+\logo [TIF] {tif}
+\logo [TIFF] {tiff}
+\logo [TIFFINFO] {tiffinfo}
+\logo [TIFFTAGS] {tifftags}
+\logo [TMFTOOLS] {tmftools}
+\logo [TPIC] {tpic}
+\logo [TPM] {tpm}
+\logo [TRUETYPE] {TrueType}
+\logo [TTC] {ttc}
+\logo [TTF] {ttf}
+\logo [TUG] {tug}
+\logo [TUGBOAT] {Tug\-Boat}
+\logo [TUGNEWS] {Tug\-News}
+\logo [TYPEONE] {Type1}
+\logo [TYPETHREE] {Type3}
+\logo [UCS] {ucs}
+\logo [UNICODE] {Uni\-code}
+\logo [UNIX] {Unix}
+\logo [URI] {uri}
+\logo [URL] {url}
+\logo [USA] {usa}
+\logo [USB] {usb}
+\logo [USENET] {usenet}
+\logo [UTF] {utf}
+\logo [VAX] {vax}
+\logo [VF] {vf}
+\logo [VMWARE] {VMWare}
+\logo [WDT] {wdt}
+\logo [WEB] {web}
+\logo [WEBC] {web2c}
+\logo [WIKI] {Wiki}
+\logo [WINDOWS] {Windows}
+%logo [WINNT] {WinNT}
+%logo [WINNX] {Win9x}
+\logo [WTHREEC] {W3C}
+\logo [WWW] {www}
+\logo [WIKIPEDIA] {Wikipedia} % WikipediA (looks too weird)
+\logo [WYSIWYG] {wysiwyg}
+%logo [XDVI] {Xdvi}
+\logo [XETEX] {\XeTeX}
+\logo [XFDF] {xfdf}
+\logo [XHTML] {xhtml}
+\logo [XINDY] {Xindy}
+\logo [XITS] {Xits}
+\logo [XML] {xml}
+\logo [XMLTOOLS] {xmltools}
+\logo [XPATH] {xpath}
+%logo [XPDFETEX] {xpdfe\TeXsuffix}
+\logo [XSL] {xsl}
+\logo [XSLFO] {xsl-fo}
+\logo [XSLT] {xslt}
+\logo [XSLTPROC] {xsltproc}
+\logo [XYPIC] {XYPIC} % wrong logo
+\logo [YandY] {y\&y}
+\logo [YOUTUBE] {YouTube}
+\logo [ZIP] {zip}
+\logo [ZINT] {zint}
+
+\logo [KB] {KB}
+\logo [MB] {MB}
+\logo [GB] {GB}
+% \logo [TB] {TB}
+
+\stopmodule
diff --git a/tex/context/modules/mkiv/s-obsolete-tokens.mkiv b/tex/context/modules/mkiv/s-obsolete-tokens.mkiv
new file mode 100644
index 000000000..117282a60
--- /dev/null
+++ b/tex/context/modules/mkiv/s-obsolete-tokens.mkiv
@@ -0,0 +1,346 @@
+%D \module
+%D [ file=toks-tra, % was toks-ini
+%D version=2007.03.03,
+%D title=\CONTEXT\ Obsolete Modules,
+%D subtitle=Tokens,
+%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.
+
+%D The code here used to be in the \type {toks-tra} files which were made in
+%D the real early days of \LUATEX\ and used in articles and presentations
+%D about this engine. Because the code is used in manuals we keep it around
+%D as module.
+
+\writestatus{loading}{ConTeXt Obsolete Modules / Tokens}
+
+%D This used to be in \type {toks-tra.lua}:
+
+\startluacode
+
+if not modules then modules = { } end modules ['s-obsolete-tokens'] = {
+ version = 1.001,
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local utfbyte, utfchar, utfvalues = utf.byte, utf.char, utf.values
+local format, gsub = string.format, string.gsub
+local tostring = tostring
+
+local tokens = tokens
+local token = token -- the built in one
+local tex = tex
+local context = context
+local commands = commands
+
+tokens.collectors = tokens.collectors or { }
+local collectors = tokens.collectors
+
+collectors.data = collectors.data or { }
+local collectordata = collectors.data
+
+collectors.registered = collectors.registered or { }
+local registered = collectors.registered
+
+local report = logs.reporter("tokens","collectors")
+
+-- todo:
+--
+-- register : macros that will be expanded (only for demo-ing)
+-- flush : print back to tex
+-- test : fancy stuff
+
+local get_next_token = tokens.scanners.next
+local create_token = tokens.create
+
+function collectors.install(tag,end_cs)
+ local data, d = { }, 0
+ collectordata[tag] = data
+ end_cs = gsub(end_cs,"^\\","")
+ while true do
+ local t = get_next_token()
+ if t.csname == end_cs then
+ context[end_cs]()
+ return
+ else
+ d = d + 1
+ data[d] = t
+ end
+ end
+end
+
+local simple = { letter = "letter", other_char = "other" }
+
+function collectors.show(data)
+ -- We no longer have methods as we only used (in demos) method a
+ -- so there is no need to burden the core with this. We have a
+ -- different table anyway.
+ if type(data) == "string" then
+ data = collectordata[data]
+ end
+ if not data then
+ return
+ end
+ local ctx_NC = context.NC
+ local ctx_NR = context.NR
+ local ctx_bold = context.bold
+ local ctx_verbatim = context.verbatim
+ local function show(data)
+ for i=1,#data do
+ local tok = data[i]
+ if type(tok) == "table" then
+ show(tok)
+ else
+ local cmdname = tok.cmdname
+ local simple = simple[cmdname]
+ ctx_NC()
+ ctx_verbatim(simple or cmdname)
+ ctx_NC()
+ ctx_verbatim(simple and utfchar(tok.index) or tok.csname)
+ ctx_NC()
+ if tok.active then context("active ") end
+ if tok.expandable then context("expandable ") end
+ if tok.protected then context("protected ") end
+ ctx_NC()
+ ctx_NR()
+ end
+ end
+ end
+ context.starttabulate { "|Tl|Tc|Tl|" }
+ ctx_NC() ctx_bold("cmd")
+ ctx_NC() ctx_bold("meaning")
+ ctx_NC() ctx_bold("properties")
+ ctx_NC() ctx_NR()
+ context.HL()
+ show(data)
+ context.stoptabulate()
+end
+
+local function printlist(data)
+ if data and #data > 0 then
+ report("not supported (yet): printing back to tex")
+ end
+end
+
+tokens.printlist = printlist -- will change to another namespace
+
+function collectors.flush(tag)
+ printlist(collectordata[tag])
+end
+
+function collectors.test(tag,handle)
+ report("not supported (yet): testing")
+end
+
+function collectors.register(name)
+ report("not supported (yet): registering")
+end
+
+-- -- old token code
+--
+-- -- 1 = command, 2 = modifier (char), 3 = controlsequence id
+--
+-- local create = token.create
+-- local csname_id = token.csname_id
+-- local command_id = token.command_id
+-- local command_name = token.command_name
+-- local get_next = token.get_next
+-- local expand = token.expand
+-- local csname_name = token.csname_name
+--
+-- local function printlist(data)
+-- if data and #data > 0 then
+-- callbacks.push('token_filter', function ()
+-- callbacks.pop('token_filter') -- tricky but the nil assignment helps
+-- return data
+-- end)
+-- end
+-- end
+--
+-- tokens.printlist = printlist -- will change to another namespace
+--
+-- function collectors.flush(tag)
+-- printlist(collectordata[tag])
+-- end
+--
+-- function collectors.register(name)
+-- registered[csname_id(name)] = name
+-- end
+--
+-- local call = command_id("call")
+-- local letter = command_id("letter")
+-- local other = command_id("other_char")
+--
+-- function collectors.install(tag,end_cs)
+-- local data, d = { }, 0
+-- collectordata[tag] = data
+-- end_cs = gsub(end_cs,"^\\","")
+-- local endcs = csname_id(end_cs)
+-- while true do
+-- local t = get_next()
+-- local a, b = t[1], t[3]
+-- if b == endcs then
+-- context[end_cs]()
+-- return
+-- elseif a == call and registered[b] then
+-- expand()
+-- else
+-- d = d + 1
+-- data[d] = t
+-- end
+-- end
+-- end
+--
+-- function collectors.show(data)
+-- -- We no longer have methods as we only used (in demos) method a
+-- -- so there is no need to burden the core with this.
+-- if type(data) == "string" then
+-- data = collectordata[data]
+-- end
+-- if not data then
+-- return
+-- end
+-- local ctx_NC = context.NC
+-- local ctx_NR = context.NR
+-- local ctx_bold = context.bold
+-- local ctx_verbatim = context.verbatim
+-- context.starttabulate { "|T|Tr|cT|Tr|T|" }
+-- ctx_NC() ctx_bold("cmd")
+-- ctx_NC() ctx_bold("chr")
+-- ctx_NC()
+-- ctx_NC() ctx_bold("id")
+-- ctx_NC() ctx_bold("name")
+-- ctx_NC() ctx_NR()
+-- context.HL()
+-- for i=1,#data do
+-- local token = data[i]
+-- local cmd = token[1]
+-- local chr = token[2]
+-- local id = token[3]
+-- local name = command_name(token)
+-- ctx_NC()
+-- ctx_verbatim(name)
+-- ctx_NC()
+-- if tonumber(chr) >= 0 then
+-- ctx_verbatim(chr)
+-- end
+-- ctx_NC()
+-- if cmd == letter or cmd == other then
+-- ctx_verbatim(utfchar(chr))
+-- end
+-- ctx_NC()
+-- if id > 0 then
+-- ctx_verbatim(id)
+-- end
+-- ctx_NC()
+-- if id > 0 then
+-- ctx_verbatim(csname_name(token) or "")
+-- end
+-- ctx_NC() ctx_NR()
+-- end
+-- context.stoptabulate()
+-- end
+--
+-- function collectors.test(tag,handle)
+-- local t, w, tn, wn = { }, { }, 0, 0
+-- handle = handle or collectors.defaultwords
+-- local tagdata = collectordata[tag]
+-- for k=1,#tagdata do
+-- local v = tagdata[k]
+-- if v[1] == letter then
+-- wn = wn + 1
+-- w[wn] = v[2]
+-- else
+-- if wn > 0 then
+-- handle(t,w)
+-- wn = 0
+-- end
+-- tn = tn + 1
+-- t[tn] = v
+-- end
+-- end
+-- if wn > 0 then
+-- handle(t,w)
+-- end
+-- collectordata[tag] = t
+-- end
+
+-- Interfacing:
+
+commands.collecttokens = collectors.install
+commands.showtokens = collectors.show
+commands.flushtokens = collectors.flush
+commands.testtokens = collectors.test
+commands.registertoken = collectors.register
+
+-- Redundant:
+
+-- function collectors.test(tag)
+-- printlist(collectordata[tag])
+-- end
+
+-- For old times sake:
+
+collectors.dowithwords = collectors.test
+
+-- This is only used in old articles ... will move to a module:
+
+tokens.vbox = create_token("vbox")
+tokens.hbox = create_token("hbox")
+tokens.vtop = create_token("vtop")
+tokens.bgroup = create_token(utfbyte("{"),1)
+tokens.egroup = create_token(utfbyte("}"),2)
+
+tokens.letter = function(chr) return create_token(utfbyte(chr),11) end
+tokens.other = function(chr) return create_token(utfbyte(chr),12) end
+
+tokens.letters = function(str)
+ local t, n = { }, 0
+ for chr in utfvalues(str) do
+ n = n + 1
+ t[n] = create_token(chr, 11)
+ end
+ return t
+end
+
+function collectors.defaultwords(t,str)
+ if t then
+ local n = #t
+ n = n + 1 ; t[n] = tokens.bgroup
+ n = n + 1 ; t[n] = create_token("red")
+ for i=1,#str do
+ n = n + 1 ; t[n] = tokens.other('*')
+ end
+ n = n + 1 ; t[n] = tokens.egroup
+ end
+end
+
+\stopluacode
+
+%D This used to be in \type {toks-tra.mkiv}:
+
+% used to be: \registerctxluafile{toks-tra}{}
+
+\unprotect
+
+%D Handy for manuals \unknown\ but not really used in practice, so it might
+%D become a runtime loaded module instead.
+
+\unexpanded\def\starttokens [#1]{\ctxcommand{collecttokens("#1","stoptokens")}}
+ \let\stoptokens \relax
+\unexpanded\def\flushtokens [#1]{\ctxcommand{flushtokens("#1")}}
+\unexpanded\def\showtokens [#1]{\ctxcommand{showtokens("#1")}}
+\unexpanded\def\testtokens [#1]{\ctxcommand{testtokens("#1")}}
+\unexpanded\def\registertoken #1{\ctxcommand{registertoken("#1")}}
+
+\let\toks_show\showtokens % we also support the primitive
+
+\unexpanded\def\showtokens{\doifelsenextoptional\toks_show\normalshowtokens}
+
+\protect \endinput
diff --git a/tex/context/modules/mkiv/s-physics-units.lua b/tex/context/modules/mkiv/s-physics-units.lua
new file mode 100644
index 000000000..008320858
--- /dev/null
+++ b/tex/context/modules/mkiv/s-physics-units.lua
@@ -0,0 +1,86 @@
+if not modules then modules = { } end modules ['s-physics-units'] = {
+ version = 1.001,
+ comment = "companion to s-physics-units.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+moduledata.physics = moduledata.physics or { }
+moduledata.physics.units = moduledata.physics.units or { }
+
+local tables = physics.units.tables
+local units = tables.units
+local shortcuts = tables.shortcuts
+
+local HL = context.HL
+local NC = context.NC
+local NR = context.NR
+
+local function typeset(list,followup,name,category)
+ if list then
+ if followup then
+ context.TB()
+ end
+ if category then
+ HL()
+ NC()
+ context.rlap(category .. ":" .. name)
+ NC()
+ NC()
+ NR()
+ HL()
+ end
+ for k, v in table.sortedhash(list) do
+ NC()
+ context(k)
+ NC()
+ if isunit then
+ context(v)
+ else
+ context.type(v)
+ end
+ NC()
+ if name == "units" or name == "symbols" or name == "packaged" then
+ context.unittext(v)
+ elseif name == "prefixes" then
+ context.prefixtext(v)
+ elseif name == "operators" then
+ context.operatortext(v)
+ elseif name == "suffixes" then
+ context.suffixtext(v)
+ end
+ NC()
+ NR()
+ end
+ if category and name then
+ HL()
+ end
+ end
+end
+
+function moduledata.physics.units.showlist(name)
+ specification = interfaces.checkedspecification(specification)
+ context.starttabulate { "|lT|l|c|" }
+ local name = specification.name
+ if name and name ~= "" then
+ local first, second = string.match(name,"(.-):(.-)") -- [units|shortcuts]:[units|...]
+ if first then
+ typeset(tables[first] and tables[first][second],false)
+ else
+ typeset(units[name],false)
+ typeset(shortcuts[name],true)
+ end
+ else
+ local done = false
+ for what, list in table.sortedhash(units) do
+ typeset(list,done,what,"units")
+ done = true
+ end
+ for what, list in table.sortedhash(shortcuts) do
+ typeset(list,done,what,"shortcuts")
+ done = true
+ end
+ end
+ context.stoptabulate()
+end
diff --git a/tex/context/modules/mkiv/s-version.mkiv b/tex/context/modules/mkiv/s-version.mkiv
new file mode 100644
index 000000000..63005aa33
--- /dev/null
+++ b/tex/context/modules/mkiv/s-version.mkiv
@@ -0,0 +1,123 @@
+%D \module
+%D [ file=s-version,
+%D version=2011.07.28,
+%D title=\CONTEXT\ Version Pictogram,
+%D subtitle=Basics,
+%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.
+
+%D This is an oldie that we use to generate a pictogram that reflects the current
+%D version.
+
+\startMPextensions
+vardef context_version(expr variant, mark, year, month, day, hours, minutes, seconds) =
+
+ image (
+
+ interim overloadmode := 0;
+
+ save angle, min, max, mk, yr, mo, da, ho, mi, se, max_mk, max_yr, max_mo, max_da, max_ho, max_mi, max_se ;
+
+ numeric angle, delta ; pair min, max ; angle := 360/7.25 ; delta := (360-7*angle)/7 ; min := (0,10) ; max := (0,100) ;
+
+ numeric mk, max_mk ; max_mk := 8 ; mk := if (mark <= 0) or (mark > max_mk) : max_mk else : mark fi ;
+ numeric yr, max_yr ; max_yr := 2050 ; yr := if (year <= 2000) or (year > max_yr) : max_yr else : year fi ;
+ numeric mo, max_mo ; max_mo := 12 ; mo := if (month <= 0) or (month > max_mo) : max_mo else : month fi ;
+ numeric da, max_da ; max_da := 31 ; da := if (day <= 0) or (day > max_da) : max_da else : day fi ;
+ numeric ho, max_ho ; max_ho := 24 ; ho := if (hours <= 0) or (hours > max_ho) : max_ho else : hours fi ;
+ numeric mi, max_mi ; max_mi := 60 ; mi := if (minutes <= 0) or (minutes > max_mi) : max_mi else : minutes fi ;
+ numeric se, max_se ; max_se := 60 ; se := if (seconds <= 0) or (seconds > max_se) : max_se else : seconds fi ;
+
+ max_da := if (mo = 2) : 28 elseif (mo = 4) or (mo = 6) or (mo = 9) or (mo = 11) : 30 else : 31 fi ;
+
+ if da > max_da : da := max_da fi ; yr := yr - 2000 ; max_yr := max_yr - 2000 ;
+
+ if (variant = 2) or (variant = 3) :
+ fill fullcircle scaled 205 withcolor .7white ;
+ fi ;
+
+ color colorant[] ;
+
+ vardef do_context_version(expr i, amount) =
+ fill (min/2 rotated (-angle/2) -- max { dir -40 } .. max rotated -angle -- cycle) rotated -(i*(angle+delta)) withcolor .3colorant[i] ;
+ fill (min rotated (-angle/2) -- max { dir -(45+45*amount) } .. max rotated -angle -- cycle) rotated -(i*(angle+delta)) withcolor .7colorant[i] ;
+ enddef ;
+
+ color orange ; orange := (1,.62,.06) ; % .5white
+
+ colorant[0] := red ; colorant[1] := green ; colorant[2] := blue ; colorant[3] := orange ;
+ colorant[4] := cyan ; colorant[5] := magenta ; colorant[6] := yellow ;
+
+ do_context_version(0, (yr-1)/max_yr) ;
+ do_context_version(1, (mo-1)/max_mo) ;
+ do_context_version(2, (da-1)/max_da) ;
+ do_context_version(3, (mk-1)/max_mk) ;
+ do_context_version(4, (ho-1)/max_ho) ;
+ do_context_version(5, (mi-1)/max_mi) ;
+ do_context_version(6, (se-1)/max_se) ;
+
+ currentpicture := currentpicture slanted .15 ;
+
+ if (variant = 3) :
+ setbounds currentpicture to boundingbox currentpicture enlarged 10 ;
+ addbackground withcolor .3white ;
+ setbounds currentpicture to boundingbox currentpicture enlarged -5 ;
+ fi ;
+
+ )
+
+enddef ;
+
+% draw context_version(4,2011,07,28,14,50,30) ;
+% draw context_version(4,01,01,01,01,01,01) ;
+% draw context_version(4,99,12,31,24,60,60) ;
+
+\stopMPextensions
+
+\startluacode
+ moduledata.versions = moduledata.versions or { }
+
+ function moduledata.versions.drawcontextversion(variant, mark, year, month, day, hours, minutes, seconds)
+ if not variant then
+ variant = 3
+ end
+ if not mark then
+ mark = 4
+ year, month, day, hours, minutes, seconds = string.match(environment.version,"(....).(..).(..) (..).(..)")
+ seconds = 30
+ end
+ context.startMPcode()
+ context("draw context_version(%s,%s,%s,%s,%s,%s,%s,%s) ;",
+ variant or 1,
+ mark or 4,
+ year or os.date("%y"),
+ month or os.date("%m"),
+ day or os.date("%d"),
+ hours or os.date("%H"),
+ minutes or os.date("%M"),
+ seconds or os.date("%S")
+ )
+ context.stopMPcode()
+ end
+\stopluacode
+
+\continueifinputfile{s-version.mkiv}
+
+\starttext
+
+\startluacode
+ context.startTEXpage()
+ moduledata.versions.drawcontextversion()
+ context.stopTEXpage()
+\stopluacode
+
+\stoptext
+
+% d:\imagemagick\convert.exe -geometry 256x256 s-version.pdf context-version.png
+% d:\imagemagick\convert.exe -geometry 72x72 s-version.pdf context-version.ico
+% d:\imagemagick\convert.exe -geometry 128x128 s-version.pdf context-version.icns