diff options
Diffstat (limited to 'tex/context/modules/mkiv')
-rw-r--r-- | tex/context/modules/mkiv/s-abbreviations-extras.tex | 56 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-abbreviations-logos.tex | 376 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-obsolete-tokens.mkiv | 346 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-physics-units.lua | 86 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-version.mkiv | 123 |
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 |