From f67b9a6b70277a30f7e7ef9a7a3913447ee525f8 Mon Sep 17 00:00:00 2001 From: Marius Date: Fri, 31 Dec 2010 10:20:13 +0200 Subject: beta 2010.12.31 08:59 --- tex/context/base/attr-col.lua | 2 +- tex/context/base/cldf-com.lua | 20 ++ tex/context/base/cont-new.tex | 2 +- tex/context/base/context.tex | 2 +- tex/context/base/font-chk.lua | 2 +- tex/context/base/font-ini.mkiv | 87 +++-- tex/context/base/s-mod-00.mkii | 511 +++++++++++++++++++++++++++ tex/context/base/s-mod-00.mkiv | 481 ++++++++++++++++++++++++++ tex/context/base/s-mod-00.tex | 513 ---------------------------- tex/context/base/s-mod-01.mkii | 155 +++++++++ tex/context/base/s-mod-01.mkiv | 146 ++++++++ tex/context/base/s-mod-01.tex | 157 --------- tex/context/base/s-mod-02.mkii | 419 +++++++++++++++++++++++ tex/context/base/s-mod-02.mkiv | 421 +++++++++++++++++++++++ tex/context/base/s-mod-02.tex | 419 ----------------------- tex/context/base/type-otf.mkiv | 1 + tex/generic/context/luatex-fonts-merged.lua | 2 +- tex/generic/context/luatex-mplib.lua | 491 ++++++++++++++++++++++++++ 18 files changed, 2707 insertions(+), 1124 deletions(-) create mode 100644 tex/context/base/s-mod-00.mkii create mode 100644 tex/context/base/s-mod-00.mkiv delete mode 100644 tex/context/base/s-mod-00.tex create mode 100644 tex/context/base/s-mod-01.mkii create mode 100644 tex/context/base/s-mod-01.mkiv delete mode 100644 tex/context/base/s-mod-01.tex create mode 100644 tex/context/base/s-mod-02.mkii create mode 100644 tex/context/base/s-mod-02.mkiv delete mode 100644 tex/context/base/s-mod-02.tex create mode 100644 tex/generic/context/luatex-mplib.lua diff --git a/tex/context/base/attr-col.lua b/tex/context/base/attr-col.lua index 0a60ba52a..d4f1c1198 100644 --- a/tex/context/base/attr-col.lua +++ b/tex/context/base/attr-col.lua @@ -508,7 +508,7 @@ end commands.enablecolor = colors.enable commands.enabletransparency = transparencies.enable -commands.enablecolorintent = colorintents.enable +commands.enablecolorintents = colorintents.enable function commands.registercolor (...) context(colors .register(...)) end function commands.registertransparency(...) context(transparencies.register(...)) end diff --git a/tex/context/base/cldf-com.lua b/tex/context/base/cldf-com.lua index d64b75ee6..caffe44ce 100644 --- a/tex/context/base/cldf-com.lua +++ b/tex/context/base/cldf-com.lua @@ -83,3 +83,23 @@ function context.hrule(w,h,d,dir) end context.vrule = context.hrule + +--~ local hbox, bgroup, egroup = context.hbox, context.bgroup, context.egroup + +--~ function context.hbox(a,...) +--~ if type(a) == "table" then +--~ local s = { } +--~ if a.width then +--~ s[#s+1] = "to " .. a.width -- todo: check for number +--~ elseif a.spread then +--~ s[#s+1] = "spread " .. a.spread -- todo: check for number +--~ end +--~ -- todo: dir, attr etc +--~ hbox(false,table.concat(s," ")) +--~ bgroup() +--~ context(string.format(...)) +--~ egroup() +--~ else +--~ hbox(a,...) +--~ end +--~ end diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex index e45976994..f30487135 100644 --- a/tex/context/base/cont-new.tex +++ b/tex/context/base/cont-new.tex @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2010.12.22 20:18} +\newcontextversion{2010.12.31 08:59} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex index 582b645f2..cf8581536 100644 --- a/tex/context/base/context.tex +++ b/tex/context/base/context.tex @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2010.12.22 20:18} +\edef\contextversion{2010.12.31 08:59} %D For those who want to use this: diff --git a/tex/context/base/font-chk.lua b/tex/context/base/font-chk.lua index 78b3253c5..b8a4e924c 100644 --- a/tex/context/base/font-chk.lua +++ b/tex/context/base/font-chk.lua @@ -49,7 +49,7 @@ local function registermessage(font,char,message) end end -local registermessage = fonts.registermessage +fonts.registermessage = registermessage function checkers.missing(head) if checkers.enabled then diff --git a/tex/context/base/font-ini.mkiv b/tex/context/base/font-ini.mkiv index 932f471ef..667bce92b 100644 --- a/tex/context/base/font-ini.mkiv +++ b/tex/context/base/font-ini.mkiv @@ -1450,7 +1450,7 @@ \@@beginfontdef \doifelse{#2}\s!default {\getparameters[\??ft\s!default][#3]} - {\normalizebodyfontsize#2\to\tempbodyfontsize + {\edef\tempbodyfontsize{\thenormalizedbodyfontsize{#2}}% \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#1][#3]}% \@@endfontdef @@ -1473,7 +1473,7 @@ % but some day we will clean this up anyway \def\docommand##1% {\scratchdimen\csname\??ft\s!default##1\endcsname\dimexpr#1\relax - \normalizebodyfontsize\scratchdimen\to\tempbodyfontsize + \edef\tempbodyfontsize{\thenormalizedbodyfontsize\scratchdimen}% \letvalue{\??ft#2#1##1}\tempbodyfontsize}% \processcommacommand[\fontrelativesizelist]\docommand \copyparameters @@ -1518,15 +1518,44 @@ %D So, apart from an occasional switch, one should define an %D environment at the outer level. -\def\checkbodyfontenvironment[#1]% - {\definebodyfontenvironment[\fontclass][#1][]} +% \def\checkbodyfontenvironment[#1]% +% {\definebodyfontenvironment[\fontclass][#1][]} +% +% \def\checkbodyfontenvironment[#1]% +% {\ifcsname\??ft\fontclass#1\c!em\endcsname +% % we test for em as we assume it to be set +% \else +% \definebodyfontenvironment[\fontclass][#1][]% +% \fi} +% +% will be adapted with parent chain: \def\checkbodyfontenvironment[#1]% - {\ifcsname\??ft\fontclass#1\c!em\endcsname - % we test for em as we assume it to be set - \else - \definebodyfontenvironment[\fontclass][#1][]% - \fi} + {\ifcsname\??ft #1\c!em\endcsname\else\docheckbodyfontenvironment\empty {#1}\fi + \ifcsname\??ft\fontclass#1\c!em\endcsname\else\docheckbodyfontenvironment\fontclass{#1}\fi} + +\def\docheckbodyfontenvironment#1#2% class size (simplified version of definebodyfontenvironment) + {\@@beginfontdef + \edef\tempbodyfontsize{\thenormalizedbodyfontsize{#2}}% + \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist + \def\docommand##1% text script scriptscript x xx big small + {\setevalue{\??ft#1\tempbodyfontsize##1}% + {\thenormalizedbodyfontsize{\csname\??ft\s!default##1\endcsname\dimexpr\tempbodyfontsize\relax}}}% + \processcommacommand[\fontrelativesizelist]\docommand + \copyparameters % can inherit + [\??ft#1\tempbodyfontsize][\??ft\s!default] + [\c!interlinespace,\c!em]% +% \ifproductionrun + \ifcsname\@size@\tempbodyfontsize\endcsname \else + \letvalueempty{\@size@\tempbodyfontsize}% prevent loop + \pushmacro\fontclass + \edef\fontclass{#1}% + \normalexpanded{\defineunknownfont{\tempbodyfontsize}}% we can also inherit here + \popmacro\fontclass + \fi +% \fi + \setevalue{\@size@#1}{\noexpand\docompletefontswitch[#1]}% + \@@endfontdef} % this one already catches both define/setup @@ -1534,6 +1563,16 @@ %D Just a couple of interface macros: +% todo: +% +% \letvalueempty{\??ft\s!empty} +% +% \def\currentbodyfontvariable#1% +% {\csname\??ft +% \ifcsname\??ft\fontclass#1\endcsname\fontclass#1\else +% \ifcsname\??ft #1\endcsname #1\else \s!empty \fi +% \fi} + \def\bodyfontvariable#1% {\??ft\ifcsname\??ft\fontclass#1\endcsname\fontclass\fi#1} @@ -1805,7 +1844,7 @@ \def\dodefineunknownfont#1#2% {\ifcsname\??ft\s!default#2\endcsname \donetrue - \normalizebodyfontsize\csname\??ft\s!default#2\endcsname\dimexpr#1\relax\to\tempbodyfontsize + \edef\tempbodyfontsize{\thenormalizedbodyfontsize{\csname\??ft\s!default#2\endcsname\dimexpr#1\relax}}% \letvalue{\??ft#1#2}\tempbodyfontsize \fi} @@ -1930,9 +1969,9 @@ \def\thenormalizedbodyfontsize#1% {\ctxlua{fonts.nbfs(\number\dimexpr#1\relax,\number\fontdigits)}} -\normalizebodyfontsize\bodyfontsize\to\normalizedglobalbodyfontsize -\normalizebodyfontsize\bodyfontsize\to\normalizedlocalbodyfontsize -\normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize +\edef\normalizedglobalbodyfontsize{\thenormalizedbodyfontsize\bodyfontsize} +\edef\normalizedlocalbodyfontsize {\thenormalizedbodyfontsize\bodyfontsize} +\edef\normalizedbodyfontsize {\thenormalizedbodyfontsize\bodyfontsize} %D \macros %D {fontstyle,fontalternative,fontsize} @@ -1976,8 +2015,8 @@ \ifcsname\@size@#1\endcsname \csname\@size@#1\endcsname \localbodyfontsize#1\relax - \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize % \edef\fontbody{\fontbody}% to be tested but we can clean up mkiv further + \edef\normalizedbodyfontsize{\thenormalizedbodyfontsize\localbodyfontsize}% \checkbodyfontenvironment[\normalizedbodyfontsize]% \else \showmessage\m!fonts4{#1}% @@ -2060,7 +2099,7 @@ {\resetpreloadfonts \usetypescript[modern]% \setuptypeface[modern]% - %\setuptypeface[\s!default]% + %\setupbodyfont[modern]% \showmessage\m!fonts6{\normalizedbodyfontsize\normalspace\fontstyle}} \def\resetpreloadfonts @@ -2156,7 +2195,7 @@ \fi\fi} \def\dodododosetfont#1#2#3% #1 = set/switch state - {\normalizebodyfontsize#2\to\normalizedsetfont + {\edef\normalizedsetfont{\thenormalizedbodyfontsize{#2}}% \ifcsname\@size@\normalizedsetfont\endcsname \else \defineunknownfont{#2}% \fi @@ -2223,18 +2262,6 @@ \settrue\autotypescripts -% \def\trycurrentfontclass#1% -% {\ifconditional\autotypescripts -% \usetypescript[#1]% -% \ifcsname\@fontclass@#1\endcsname -% \edef\fontclass{#1}% -% \else -% \letvalueempty{\@no@fontclass@#1}% -% \fi -% \else -% \letvalueempty{\@no@fontclass@#1}% -% \fi} - \def\trycurrentfontclass#1% {\ifconditional\autotypescripts % try to load typescript #1 @@ -2646,7 +2673,7 @@ {\bodyfontsize#1\relax \dimensiontocount\bodyfontsize\bodyfontpoints % rounded, still used in m-chart \edef\bodyfontfactor{\withoutpt\the\bodyfontsize}% - \normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize + \edef\normalizedbodyfontsize{\thenormalizedbodyfontsize\bodyfontsize}% \dosetbodyfontface \textface \s!text \dosetbodyfontface \scriptface \s!script \dosetbodyfontface \scriptscriptface \s!scriptscript} @@ -2695,7 +2722,7 @@ {\doifsomething{#1} {\dosetfont1{#1}% \globalbodyfontsize\localbodyfontsize - \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize + \edef\normalizedglobalbodyfontsize{\thenormalizedbodyfontsize\globalbodyfontsize}% \let\globalfontstyle\fontstyle \ifproductionrun \the\everybodyfont diff --git a/tex/context/base/s-mod-00.mkii b/tex/context/base/s-mod-00.mkii new file mode 100644 index 000000000..e2d07200c --- /dev/null +++ b/tex/context/base/s-mod-00.mkii @@ -0,0 +1,511 @@ +%D \module +%D [ file=s-mod-00, +%D version=very-old, +%D title=\CONTEXT\ Style File, +%D subtitle=Documentation Base Environment, +%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. + +%D This module looks like crap, is not documented, will +%D change, and used to be called modu-*.tex. + +% todo: +% +% file inclusions -> hyperlinks + +\mainlanguage[en] % better not here + +\usemodule[units] + +\enableactivediscretionaries +\newprettytrue + +\unprotect + +% beter: +% +% group -> title +% title -> category +% subtitle -> subtitle + +% herzien ivm fonts + +% nog eens \interface \\ \\ verder doorvoeren + +\def\resetmodule + {\getrawparameters + [Module] + [ file=\jobname, + type=, + version={\currentdate[\v!year,{.},\v!month,{.},\v!day]}, + system=\CONTEXT, + title=Unknown Title, + subtitle=, + author=Unknown Author, + date=\currentdate, + copyright=Unknown Copyright, + suggestions=]} + +\resetmodule + +\def\dostartmodule[#1]% + {\newcounter\ParagraphNumber + \resetmodule + \getrawparameters[Module][type=tex,#1]} + +\def\startmodule + {\starttext + \dosingleempty\dostartmodule} + +\def\complexmodule[#1]% + {\startglobal % i.v.m. \bgroup in \startdocumentation + \getrawparameters[Module][#1] + \stopglobal % i.v.m. \bgroup in \startdocumentation + \moduletitle} + +\def\stopmodule + {\page + \placeregister + [\v!index] + [\c!balance=\v!yes, + \c!indicator=\v!no, + \c!criterium=\v!text] + \stoptext} + +\def\simplemodule#1% + {\type{#1}} + +\definecomplexorsimple\module + +% \startmode[atpragma] +% +% \def\TitlePage#1% can be done more efficient +% {\startMPrun +% mpgraph := #1 ; +% input mp-cont ; +% \stopMPrun +% \externalfigure +% [\bufferprefix mprun.#1] +% [\c!height=\vsize, +% \c!width=\hsize]} +% +% \defineoverlay[titlepage][\TitlePage{512}] +% +% \stopmode + +\startuseMPgraphic{titlepage} + + width := PaperWidth ; + height := PaperHeight ; + + color local_red, local_white, local_blue ; + + local_white := white ; + + local_blue := local_white randomized (.6,.8) ; + local_red := local_white randomized (.3,.4) ; + + u := width/400 ; + + def a_module (expr dx, dy) = + picture p ; p := image + ( ddy := 0 ; sx := 60u ; + for i=1 upto (4 randomized 2) : + sy := 7u randomized 3u ; + fill unitsquare xyscaled(sx,sy) shifted (0,ddy) + withcolor local_red ; + ddy := ddy + sy + 4u ; + endfor ) ; + p := p shifted (dx,dy) shifted - center p ; + fill boundingbox p enlarged 8u withcolor local_white ; + fill boundingbox p enlarged 4u withcolor local_blue ; + draw p ; + enddef ; + + set_grid(width, height, width/15, height/15) ; + forever: + if new_on_grid(uniformdeviate width,uniformdeviate height): + a_module(dx,dy) ; + fi ; + exitif grid_full ; + endfor ; + + clip currentpicture to unitsquare xyscaled(width,height) ; +\stopuseMPgraphic + +\defineoverlay + [titlepage] + [\useMPgraphic{titlepage}] + +\doifmode{atpragma}{\readfile{s-mod-04.tex}{}{}} + +\defineframed + [TitleFrame] + [\c!background=\v!color, + \c!backgroundcolor=white, + \c!align=\v!right, + \c!offset=12pt, + \c!strut=\v!no, + \c!frame=\v!off, + \c!bottom=] + +\definelayout + [titlepage] + [\c!backspace=0pt, + \c!topspace=0pt, + \c!header=0pt, + \c!footer=0pt, + \c!height=\v!middle, + \c!width=\v!middle] + +\def\moduletitle + {\setuplayout[titlepage] + \ifx\ModuleNumber\undefined \else + \ifnum\ModuleNumber<10 + \edef\ModuleNumber{00\ModuleNumber} + \else\ifnum\ModuleNumber<100 + \edef\ModuleNumber{0\ModuleNumber} + \fi\fi + \setupbackgrounds + [\v!page] + [\c!background=titlepage] + \fi + \startmakeup[\v!standard][\c!headerstate=\v!none,\c!footerstate=\v!none] + \switchtobodyfont[14.4pt,ss] + \bgroup + \def\CONTEXT {Con\kern-.15em\TeX t} + \def\TEXUTIL {\TeX Util} + \def\PPCHTEX {PPCH\TeX} + \def\METAPOST{MetaPost} + \hfill + {\definedfont[SansBold at 96pt]\setstrut + \TitleFrame{\Modulesystem}} + \vfill + \definetabulate[temp][|l|l|]% + \switchtobodyfont[17.3pt,ss] + \hfill + {\bf\setstrut + \TitleFrame + {\insidefloattrue\setuptabulate[\c!before=,\c!after=]% + \starttemp + \doifsomething{\Moduletitle} + {\NC title \EQ \Moduletitle \NC\NR}% + \doifsomething{\Modulesubtitle} + {\NC subtitle \EQ \Modulesubtitle \NC\NR}% + \doifsomething{\Moduleauthor} + {\NC author \EQ \Moduleauthor \NC\NR}% + \NC date \EQ \currentdate \NC\NR + %\doifsomething{\Modulesuggestions} % todo: generates space + % {\NC suggestions \NC \Modulesuggestions \NC\NR}% + \stoptemp}} + \egroup + \stopmakeup + \ifx\ModuleNumber\undefined \else + \setupbackgrounds + [\v!page] + [\c!background=] + \fi + \setuplayout} + +\let\stopdocumentation=\relax + +\def\startdocumentation + {\bgroup + \doglobal\newcounter\NOfMarginLines + \def\stopdocumentation{\par\egroup}} + +\newif\ifcompressdefinitions + +\def\startcompressdefinitions {\global\compressdefinitionstrue} +\def\stopcompressdefinitions {\global\compressdefinitionsfalse} + +\gdef\CompressDefinitions% + {\ifcompressdefinitions + \switchtobodyfont[\v!small]% + \fi} + +\startnotmode[nocode] + + \definetyping + [definition] + + \setuptyping + [definition] + [\c!before={\page[\v!preference]}\blank\PresetParagraphNumber\CompressDefinitions, + \c!after=\ResetParagraphNumber\blank, + \c!option=\Moduletype] + +\stopnotmode + +\startmode[nocode] + +% \definieerbuffer[definition] % ignore + + \long\def\startdefinition#1\stopdefinition{} + +\stopmode + +\definetyping [PL] [\c!option=PL, \c!margin=\v!standard] +\definetyping [JV] [\c!option=JV, \c!margin=\v!standard] +\definetyping [MP] [\c!option=MP, \c!margin=\v!standard] +\definetyping [TEX] [\c!option=TEX,\c!margin=\v!standard] + +\setuptyping [\v!typing] [\c!margin=\v!standard] +\setuptyping [\v!file] [\c!margin=\v!standard] +\setuptyping [definition] [\c!margin=0pt] + +\newcounter\NOfMarginLines +\newcounter\ParagraphNumber + +\def\ResetParagraphNumber + {\egroup} + +\def\PresetParagraphNumber + {\bgroup + \xdef\NOfTextLines% + {\the\prevgraf}% + \doglobal\decrement\NOfMarginLines + \doglobal\increment\ParagraphNumber + \message{.}% + \gdef\ShowParagraphNumber% + {\llap{\slx\ParagraphNumber\hskip\leftmargindistance}}% + \gdef\ShowParagraphNumberA% + {\ifnum\NOfMarginLines>\NOfTextLines\relax + \doglobal\increment\NOfTextLines + \else + \ShowParagraphNumber + \global\let\ShowParagraphNumberA=\relax + \global\let\ShowParagraphNumberB=\ShowParagraphNumber + \doglobal\newcounter\NOfMarginLines + \fi}% + \gdef\ShowParagraphNumberB% + {}% + \EveryLine + {\ShowParagraphNumberA}% + \EveryPar + {\vadjust{\nobreak}% + \ShowParagraphNumberB}} + +\EveryPar % skip one + {\EveryPar + {\doglobal\newcounter\NOfMarginLines}} + +\def\dodomargeaanduidingen[#1]#2% + {\def\docommand##1% + {\indent\hbox + {\ifx#2\relax + \index{##1}% + \else + \index{#2{##1}}% + \fi + #2{\doboundtext{##1}{\leftmarginwidth}{..}}}% + \doglobal\increment\NOfMarginLines + \endgraf}% + \processcommalist[#1]\docommand} + +\def\margeaanduidingen#1[#2]% + {\def\domargeaanduidingen##1##2% + {\margintitle[#2]% + {\switchtobodyfont[\v!small]% + \doglobal\newcounter\NOfMarginLines + \dodomargeaanduidingen[##1]#1% + \scratchcounter=\NOfMarginLines + \multiply\scratchcounter by 10 + \divide\scratchcounter by 12 + \advance\scratchcounter by 1 + \xdef\NOfMarginLines{\the\scratchcounter}% + \processcommalist[##2]\index}}% + \dodoublegroupempty\domargeaanduidingen} + +\def\complexmacros{\margeaanduidingen\tex } +\def\complexextras{\margeaanduidingen\relax} + +\def\complexelements + {\margeaanduidingen\someelement} + +\def\someelement#1{\type{<#1>}} + +\definecomplexorsimpleempty\macros +\definecomplexorsimpleempty\extras +\definecomplexorsimpleempty\elements + +\def\showelements{\dodoubleempty\doshowelements} + +\def\doshowelements[#1][#2] + {\bgroup + \processXMLbuffer + \typebuffer + \setupcolors[\c!state=\v!stop] + \showXSDcomponent[#1][#2] + \egroup} + +% \macros{a,b} +% \macros{a,b}{b} +% \macros[a]{a,b}{b} + +% weg ermee + +\defineparagraphs [interface] [\c!n=2] +\setupparagraphs [interface] [1] [\c!width=4cm] + +\def\startexample{\par\startnarrower} \let\startvoorbeeld\startexample +\def\stopexample {\stopnarrower} \let\stopvoorbeeld \stopexample + +\gdef\VisualizeLastSpace{\ifdim\lastskip>0pt\unskip\tttf\char32\fi} + +\gdef\ShowHeadText #1{\tttf#1\VL\mainlanguage[\currentlanguage]\headtext {#1}\VisualizeLastSpace} +\gdef\ShowLabelText#1{\tttf#1\VL\mainlanguage[\currentlanguage]\labeltext{#1}\VisualizeLastSpace} + +\startbuffer[lang-a] +\starttable[|l|l|] + \HL + \VL \bf head key \VL \bf current value \VL\SR + \HL + \VL \ShowHeadText \v!abbreviations \VL\FR + \VL \ShowHeadText \v!units \VL\MR + \VL \ShowHeadText \v!figures \VL\MR + \VL \ShowHeadText \v!graphics \VL\MR + \VL \ShowHeadText \v!index \VL\MR + \VL \ShowHeadText \v!content \VL\MR + \VL \ShowHeadText \v!intermezzi \VL\MR + \VL \ShowHeadText \v!logos \VL\MR + \VL \ShowHeadText \v!tables \VL\LR + \HL +\stoptable +\stopbuffer + +\startbuffer[lang-b] +\starttable[|l|l|] + \HL + \VL \bf label key \VL \bf current value \VL\SR + \HL + \VL \ShowLabelText \v!table \VL\FR + \VL \ShowLabelText \v!figure \VL\MR + \VL \ShowLabelText \v!intermezzo \VL\MR + \VL \ShowLabelText \v!graphic \VL\MR + \VL \ShowLabelText \v!chapter \VL\MR + \VL \ShowLabelText \v!section \VL\MR + \VL \ShowLabelText \v!subsection \VL\MR + \VL \ShowLabelText \v!subsubsection \VL\MR + \VL \ShowLabelText \v!appendix \VL\MR + \VL \ShowLabelText \v!part \VL\MR + \VL \ShowLabelText \v!line \VL\MR + \VL \ShowLabelText \v!lines \VL\LR + \HL +\stoptable +\stopbuffer + +\startbuffer[lang-c] +\starttable[|l|l|] + \HL + \VL \bf label key \VL \bf current value \VL\SR + \HL + \VL \ShowLabelText \v!january \VL\FR + \VL \ShowLabelText \v!february \VL\MR + \VL \ShowLabelText \v!march \VL\MR + \VL \ShowLabelText \v!april \VL\MR + \VL \ShowLabelText \v!may \VL\MR + \VL \ShowLabelText \v!june \VL\MR + \VL \ShowLabelText \v!july \VL\MR + \VL \ShowLabelText \v!august \VL\MR + \VL \ShowLabelText \v!september \VL\MR + \VL \ShowLabelText \v!october \VL\MR + \VL \ShowLabelText \v!november \VL\MR + \VL \ShowLabelText \v!december \VL\LR + \HL +\stoptable +\stopbuffer + +\startbuffer[lang-d] +\starttable[|l|l|] + \HL + \VL \bf label key \VL \bf current value \VL\SR + \HL + \VL \ShowLabelText \v!sunday \VL\FR + \VL \ShowLabelText \v!monday \VL\MR + \VL \ShowLabelText \v!tuesday \VL\MR + \VL \ShowLabelText \v!wednesday \VL\MR + \VL \ShowLabelText \v!thursday \VL\MR + \VL \ShowLabelText \v!friday \VL\MR + \VL \ShowLabelText \v!saturday \VL\LR + \HL +\stoptable +\stopbuffer + +\gdef\ShowTextsValues[#1][#2]% + {\vbox\bgroup + \language[#1]% + \setbox\scratchbox\hbox to \hsize{\hss\bfb#2 language defaults\hss} + \dp\scratchbox\zeropoint + \box\scratchbox + \vskip1em + \hrule + \vskip2em + \halign + {\hss##\hss&##\hskip1em&\hss##\hss\cr + $\vcenter{\getbuffer[lang-a]}$&&$\vcenter{\getbuffer[lang-b]}$\cr + \noalign{\vskip1em} + $\vcenter{\getbuffer[lang-c]}$&&$\vcenter{\getbuffer[lang-d]}$\cr}% + \egroup} + +\gdef\ShowLanguageValues[#1][#2]#3#4% + {\hbox to \hsize + {\hss + \vbox + \bgroup + \language[#1]% + \let\normalbar=| + \starttable[||||] + \HL + \VL \THREE{\bf subsentence symbol and quotes} \VL\SR + \HL + \VL \quotation{#3 #4} \VL \quote{#2} \VL \let|=\normalbar |<||<|#3|>|#4|>| \VL\FR + \VL \quotation{#3 #4} \VL \quote{#2} \VL |<||<|#3|>|#4|>| \VL\LR + \HL + \stoptable + \egroup + \hss}} + +\gdef\doShowAllLanguageValues[#1][#2]#3#4% + {\vbox + {\ShowTextsValues[#1][#2] + \vskip2em + \ShowLanguageValues[#1][#2]{#3}{#4}} + \protect + \page} + +\gdef\ShowAllLanguageValues + {\page + \unprotect + \dodoubleargument\doShowAllLanguageValues} + +\protect + +%D Command references: + +% \input setupa +% \input setupb + +\usemodule[int-load] \loadsetups + +\unprotect + +% \def\showsetup +% {\doglobal\newcounter\CurrentArgument +% \setup} + +\def\showsetup#1% + {{\def\y##1{\writestatus{setups}{warning: remove y! from #1}}% + \setup{#1}}} + +\setupframedtexts + [setuptext] + [\c!background=\v!screen, + \c!frame=\v!off] + +\protect \endinput diff --git a/tex/context/base/s-mod-00.mkiv b/tex/context/base/s-mod-00.mkiv new file mode 100644 index 000000000..f6b6f7ba2 --- /dev/null +++ b/tex/context/base/s-mod-00.mkiv @@ -0,0 +1,481 @@ +%D \module +%D [ file=s-mod-00, +%D version=very-old, +%D title=\CONTEXT\ Style File, +%D subtitle=Documentation Base Environment, +%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. + +%D This module looks like crap, is not documented, will +%D change, and used to be called modu-*.tex. + +% now split in mkii/mkiv so we will cleanup + +\mainlanguage[en] % better not here + +\usemodule[units] + +\unprotect + +% beter: +% +% group -> title +% title -> category +% subtitle -> subtitle + +% herzien ivm fonts + +% nog eens \interface \\ \\ verder doorvoeren + +\def\resetmodule + {\getrawparameters + [Module] + [ file=\jobname, + type=, + version={\currentdate[\v!year,{.},\v!month,{.},\v!day]}, + system=\CONTEXT, + title=Unknown Title, + subtitle=, + author=Unknown Author, + date=\currentdate, + copyright=Unknown Copyright, + suggestions=]} + +\resetmodule + +\def\dostartmodule[#1]% + {\newcounter\ParagraphNumber + \resetmodule + \getrawparameters[Module][type=tex,#1]} + +\def\startmodule + {\starttext + \dosingleempty\dostartmodule} + +\def\complexmodule[#1]% + {\startglobal % i.v.m. \bgroup in \startdocumentation + \getrawparameters[Module][#1] + \stopglobal % i.v.m. \bgroup in \startdocumentation + \moduletitle} + +\def\stopmodule + {\page + \placeregister + [\v!index] + [\c!balance=\v!yes, + \c!indicator=\v!no, + \c!criterium=\v!text] + \stoptext} + +\def\simplemodule#1% + {\type{#1}} + +\definecomplexorsimple\module + +\startuseMPgraphic{titlepage} + + width := PaperWidth ; + height := PaperHeight ; + + color local_red, local_white, local_blue ; + + local_white := white ; + + local_blue := local_white randomized (.6,.8) ; + local_red := local_white randomized (.3,.4) ; + + u := width/400 ; + + def a_module (expr dx, dy) = + picture p ; p := image + ( ddy := 0 ; sx := 60u ; + for i=1 upto (4 randomized 2) : + sy := 7u randomized 3u ; + fill unitsquare xyscaled(sx,sy) shifted (0,ddy) + withcolor local_red ; + ddy := ddy + sy + 4u ; + endfor ) ; + p := p shifted (dx,dy) shifted - center p ; + fill boundingbox p enlarged 8u withcolor local_white ; + fill boundingbox p enlarged 4u withcolor local_blue ; + draw p ; + enddef ; + + set_grid(width, height, width/15, height/15) ; + forever: + if new_on_grid(uniformdeviate width,uniformdeviate height): + a_module(dx,dy) ; + fi ; + exitif grid_full ; + endfor ; + + clip currentpicture to unitsquare xyscaled(width,height) ; +\stopuseMPgraphic + +\defineoverlay + [titlepage] + [\useMPgraphic{titlepage}] + +\doifmode{atpragma}{\readfile{s-mod-04.tex}{}{}} + +\defineframed + [TitleFrame] + [\c!background=\v!color, + \c!backgroundcolor=white, + \c!align=\v!right, + \c!offset=12pt, + \c!strut=\v!no, + \c!frame=\v!off, + \c!bottom=] + +\definelayout + [titlepage] + [\c!backspace=0pt, + \c!topspace=0pt, + \c!header=0pt, + \c!footer=0pt, + \c!height=\v!middle, + \c!width=\v!middle] + +\def\moduletitle + {\setuplayout[titlepage] + \ifx\ModuleNumber\undefined \else + \ifnum\ModuleNumber<10 + \edef\ModuleNumber{00\ModuleNumber} + \else\ifnum\ModuleNumber<100 + \edef\ModuleNumber{0\ModuleNumber} + \fi\fi + \setupbackgrounds + [\v!page] + [\c!background=titlepage] + \fi + \startmakeup[\v!standard][\c!headerstate=\v!none,\c!footerstate=\v!none] + \switchtobodyfont[14.4pt,ss] + \bgroup + \def\CONTEXT {Con\kern-.15em\TeX t} + \def\TEXUTIL {\TeX Util} + \def\PPCHTEX {PPCH\TeX} + \def\METAPOST{MetaPost} + \hfill + {\definedfont[SansBold at 96pt]\setstrut + \TitleFrame{\Modulesystem}} + \vfill + \definetabulate[temp][|l|l|]% + \switchtobodyfont[17.3pt,ss] + \hfill + {\bf\setstrut + \TitleFrame + {\insidefloattrue\setuptabulate[\c!before=,\c!after=]% + \starttemp + \doifsomething{\Moduletitle} + {\NC title \EQ \Moduletitle \NC\NR}% + \doifsomething{\Modulesubtitle} + {\NC subtitle \EQ \Modulesubtitle \NC\NR}% + \doifsomething{\Moduleauthor} + {\NC author \EQ \Moduleauthor \NC\NR}% + \NC date \EQ \currentdate \NC\NR + %\doifsomething{\Modulesuggestions} % todo: generates space + % {\NC suggestions \NC \Modulesuggestions \NC\NR}% + \stoptemp}} + \egroup + \stopmakeup + \ifx\ModuleNumber\undefined \else + \setupbackgrounds + [\v!page] + [\c!background=] + \fi + \setuplayout} + +\let\stopdocumentation=\relax + +\def\startdocumentation + {\bgroup + \doglobal\newcounter\NOfMarginLines + \def\stopdocumentation{\par\egroup}} + +\newif\ifcompressdefinitions + +\def\startcompressdefinitions {\global\compressdefinitionstrue} +\def\stopcompressdefinitions {\global\compressdefinitionsfalse} + +\gdef\CompressDefinitions% + {\ifcompressdefinitions + \switchtobodyfont[\v!small]% + \fi} + +\startnotmode[nocode] + + \definetyping + [definition] + + \setuptyping + [definition] + [\c!before={\page[\v!preference]}\blank\PresetParagraphNumber\CompressDefinitions, + \c!after=\ResetParagraphNumber\blank, + \c!option=\Moduletype] + +\stopnotmode + +\startmode[nocode] + + \long\def\startdefinition#1\stopdefinition{} + +\stopmode + +\definetyping [PL] [\c!option=PL, \c!margin=\v!standard] +\definetyping [JV] [\c!option=JV, \c!margin=\v!standard] +\definetyping [MP] [\c!option=MP, \c!margin=\v!standard] +\definetyping [TEX] [\c!option=TEX,\c!margin=\v!standard] + +\setuptyping [\v!typing] [\c!margin=\v!standard] +\setuptyping [\v!file] [\c!margin=\v!standard] +\setuptyping [definition] [\c!margin=0pt] + +\newcounter\NOfMarginLines +\newcounter\ParagraphNumber + +\def\ResetParagraphNumber + {\egroup} + +\def\PresetParagraphNumber + {\bgroup + \xdef\NOfTextLines% + {\the\prevgraf}% + \doglobal\decrement\NOfMarginLines + \doglobal\increment\ParagraphNumber + \message{.}% + \gdef\ShowParagraphNumber% + {\llap{\slx\ParagraphNumber\hskip\leftmargindistance}}% + \gdef\ShowParagraphNumberA% + {\ifnum\NOfMarginLines>\NOfTextLines\relax + \doglobal\increment\NOfTextLines + \else + \ShowParagraphNumber + \global\let\ShowParagraphNumberA=\relax + \global\let\ShowParagraphNumberB=\ShowParagraphNumber + \doglobal\newcounter\NOfMarginLines + \fi}% + \gdef\ShowParagraphNumberB% + {}% + \EveryLine + {\ShowParagraphNumberA}% + \EveryPar + {\vadjust{\nobreak}% + \ShowParagraphNumberB}} + +\EveryPar % skip one + {\EveryPar + {\doglobal\newcounter\NOfMarginLines}} + +\def\dodomargeaanduidingen[#1]#2% + {\def\docommand##1% + {\indent\hbox + {\ifx#2\relax + \index{##1}% + \else + \index{#2{##1}}% + \fi + #2{\doboundtext{##1}{\leftmarginwidth}{..}}}% + \doglobal\increment\NOfMarginLines + \endgraf}% + \processcommalist[#1]\docommand} + +\def\margeaanduidingen#1[#2]% + {\def\domargeaanduidingen##1##2% + {\margintitle[#2]% + {\switchtobodyfont[\v!small]% + \doglobal\newcounter\NOfMarginLines + \dodomargeaanduidingen[##1]#1% + \scratchcounter=\NOfMarginLines + \multiply\scratchcounter by 10 + \divide\scratchcounter by 12 + \advance\scratchcounter by 1 + \xdef\NOfMarginLines{\the\scratchcounter}% + \processcommalist[##2]\index}}% + \dodoublegroupempty\domargeaanduidingen} + +\def\complexmacros{\margeaanduidingen\tex } +\def\complexextras{\margeaanduidingen\relax} + +\def\complexelements + {\margeaanduidingen\someelement} + +\def\someelement#1{\type{<#1>}} + +\definecomplexorsimpleempty\macros +\definecomplexorsimpleempty\extras +\definecomplexorsimpleempty\elements + +\def\showelements{\dodoubleempty\doshowelements} + +\def\doshowelements[#1][#2] + {\bgroup + \processXMLbuffer + \typebuffer + \setupcolors[\c!state=\v!stop] + \showXSDcomponent[#1][#2] + \egroup} + +% \macros{a,b} +% \macros{a,b}{b} +% \macros[a]{a,b}{b} + +% weg ermee + +\defineparagraphs [interface] [\c!n=2] +\setupparagraphs [interface] [1] [\c!width=4cm] + +\def\startexample{\par\startnarrower} \let\startvoorbeeld\startexample +\def\stopexample {\stopnarrower} \let\stopvoorbeeld \stopexample + +\gdef\VisualizeLastSpace{\ifdim\lastskip>0pt\unskip\tttf\char32\fi} + +\gdef\ShowHeadText #1{\tttf#1\VL\mainlanguage[\currentlanguage]\headtext {#1}\VisualizeLastSpace} +\gdef\ShowLabelText#1{\tttf#1\VL\mainlanguage[\currentlanguage]\labeltext{#1}\VisualizeLastSpace} + +\startbuffer[lang-a] +\starttable[|l|l|] + \HL + \VL \bf head key \VL \bf current value \VL\SR + \HL + \VL \ShowHeadText \v!abbreviations \VL\FR + \VL \ShowHeadText \v!units \VL\MR + \VL \ShowHeadText \v!figures \VL\MR + \VL \ShowHeadText \v!graphics \VL\MR + \VL \ShowHeadText \v!index \VL\MR + \VL \ShowHeadText \v!content \VL\MR + \VL \ShowHeadText \v!intermezzi \VL\MR + \VL \ShowHeadText \v!logos \VL\MR + \VL \ShowHeadText \v!tables \VL\LR + \HL +\stoptable +\stopbuffer + +\startbuffer[lang-b] +\starttable[|l|l|] + \HL + \VL \bf label key \VL \bf current value \VL\SR + \HL + \VL \ShowLabelText \v!table \VL\FR + \VL \ShowLabelText \v!figure \VL\MR + \VL \ShowLabelText \v!intermezzo \VL\MR + \VL \ShowLabelText \v!graphic \VL\MR + \VL \ShowLabelText \v!chapter \VL\MR + \VL \ShowLabelText \v!section \VL\MR + \VL \ShowLabelText \v!subsection \VL\MR + \VL \ShowLabelText \v!subsubsection \VL\MR + \VL \ShowLabelText \v!appendix \VL\MR + \VL \ShowLabelText \v!part \VL\MR + \VL \ShowLabelText \v!line \VL\MR + \VL \ShowLabelText \v!lines \VL\LR + \HL +\stoptable +\stopbuffer + +\startbuffer[lang-c] +\starttable[|l|l|] + \HL + \VL \bf label key \VL \bf current value \VL\SR + \HL + \VL \ShowLabelText \v!january \VL\FR + \VL \ShowLabelText \v!february \VL\MR + \VL \ShowLabelText \v!march \VL\MR + \VL \ShowLabelText \v!april \VL\MR + \VL \ShowLabelText \v!may \VL\MR + \VL \ShowLabelText \v!june \VL\MR + \VL \ShowLabelText \v!july \VL\MR + \VL \ShowLabelText \v!august \VL\MR + \VL \ShowLabelText \v!september \VL\MR + \VL \ShowLabelText \v!october \VL\MR + \VL \ShowLabelText \v!november \VL\MR + \VL \ShowLabelText \v!december \VL\LR + \HL +\stoptable +\stopbuffer + +\startbuffer[lang-d] +\starttable[|l|l|] + \HL + \VL \bf label key \VL \bf current value \VL\SR + \HL + \VL \ShowLabelText \v!sunday \VL\FR + \VL \ShowLabelText \v!monday \VL\MR + \VL \ShowLabelText \v!tuesday \VL\MR + \VL \ShowLabelText \v!wednesday \VL\MR + \VL \ShowLabelText \v!thursday \VL\MR + \VL \ShowLabelText \v!friday \VL\MR + \VL \ShowLabelText \v!saturday \VL\LR + \HL +\stoptable +\stopbuffer + +\gdef\ShowTextsValues[#1][#2]% + {\vbox\bgroup + \language[#1]% + \setbox\scratchbox\hbox to \hsize{\hss\bfb#2 language defaults\hss} + \dp\scratchbox\zeropoint + \box\scratchbox + \vskip1em + \hrule + \vskip2em + \halign + {\hss##\hss&##\hskip1em&\hss##\hss\cr + $\vcenter{\getbuffer[lang-a]}$&&$\vcenter{\getbuffer[lang-b]}$\cr + \noalign{\vskip1em} + $\vcenter{\getbuffer[lang-c]}$&&$\vcenter{\getbuffer[lang-d]}$\cr}% + \egroup} + +\gdef\ShowLanguageValues[#1][#2]#3#4% + {\hbox to \hsize + {\hss + \vbox + \bgroup + \language[#1]% + \let\normalbar=| + \starttable[||||] + \HL + \VL \THREE{\bf subsentence symbol and quotes} \VL\SR + \HL + \VL \quotation{#3 #4} \VL \quote{#2} \VL \let|=\normalbar |<||<|#3|>|#4|>| \VL\FR + \VL \quotation{#3 #4} \VL \quote{#2} \VL |<||<|#3|>|#4|>| \VL\LR + \HL + \stoptable + \egroup + \hss}} + +\gdef\doShowAllLanguageValues[#1][#2]#3#4% + {\vbox + {\ShowTextsValues[#1][#2] + \vskip2em + \ShowLanguageValues[#1][#2]{#3}{#4}} + \protect + \page} + +\gdef\ShowAllLanguageValues + {\page + \unprotect + \dodoubleargument\doShowAllLanguageValues} + +\protect + +%D Command references: + +\usemodule[int-load] \loadsetups + +\unprotect + +\def\showsetup#1% + {{\def\y##1{\writestatus{setups}{warning: remove y! from #1}}% + \setup{#1}}} + +\setupframedtexts + [setuptext] + [\c!background=\v!screen, + \c!frame=\v!off] + +\protect \endinput diff --git a/tex/context/base/s-mod-00.tex b/tex/context/base/s-mod-00.tex deleted file mode 100644 index 5ce7dcdf4..000000000 --- a/tex/context/base/s-mod-00.tex +++ /dev/null @@ -1,513 +0,0 @@ -%D \module -%D [ file=s-mod-00, -%D version=very-old, -%D title=\CONTEXT\ Style File, -%D subtitle=Documentation Base Environment, -%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. - -%D This module looks like crap, is not documented, will -%D change, and used to be called modu-*.tex. - -% todo: -% -% file inclusions -> hyperlinks - -\mainlanguage[en] % better not here - -\usemodule[units] - -\doifnotmode{mkiv}{ - \enableactivediscretionaries - \newprettytrue -} - -\unprotect - -% beter: -% -% group -> title -% title -> category -% subtitle -> subtitle - -% herzien ivm fonts - -% nog eens \interface \\ \\ verder doorvoeren - -\def\resetmodule - {\getrawparameters - [Module] - [ file=\jobname, - type=, - version={\currentdate[\v!year,{.},\v!month,{.},\v!day]}, - system=\CONTEXT, - title=Unknown Title, - subtitle=, - author=Unknown Author, - date=\currentdate, - copyright=Unknown Copyright, - suggestions=]} - -\resetmodule - -\def\dostartmodule[#1]% - {\newcounter\ParagraphNumber - \resetmodule - \getrawparameters[Module][type=tex,#1]} - -\def\startmodule - {\starttext - \dosingleempty\dostartmodule} - -\def\complexmodule[#1]% - {\startglobal % i.v.m. \bgroup in \startdocumentation - \getrawparameters[Module][#1] - \stopglobal % i.v.m. \bgroup in \startdocumentation - \moduletitle} - -\def\stopmodule - {\page - \placeregister - [\v!index] - [\c!balance=\v!yes, - \c!indicator=\v!no, - \c!criterium=\v!text] - \stoptext} - -\def\simplemodule#1% - {\type{#1}} - -\definecomplexorsimple\module - -% \startmode[atpragma] -% -% \def\TitlePage#1% can be done more efficient -% {\startMPrun -% mpgraph := #1 ; -% input mp-cont ; -% \stopMPrun -% \externalfigure -% [\bufferprefix mprun.#1] -% [\c!height=\vsize, -% \c!width=\hsize]} -% -% \defineoverlay[titlepage][\TitlePage{512}] -% -% \stopmode - -\startuseMPgraphic{titlepage} - - width := PaperWidth ; - height := PaperHeight ; - - color local_red, local_white, local_blue ; - - local_white := white ; - - local_blue := local_white randomized (.6,.8) ; - local_red := local_white randomized (.3,.4) ; - - u := width/400 ; - - def a_module (expr dx, dy) = - picture p ; p := image - ( ddy := 0 ; sx := 60u ; - for i=1 upto (4 randomized 2) : - sy := 7u randomized 3u ; - fill unitsquare xyscaled(sx,sy) shifted (0,ddy) - withcolor local_red ; - ddy := ddy + sy + 4u ; - endfor ) ; - p := p shifted (dx,dy) shifted - center p ; - fill boundingbox p enlarged 8u withcolor local_white ; - fill boundingbox p enlarged 4u withcolor local_blue ; - draw p ; - enddef ; - - set_grid(width, height, width/15, height/15) ; - forever: - if new_on_grid(uniformdeviate width,uniformdeviate height): - a_module(dx,dy) ; - fi ; - exitif grid_full ; - endfor ; - - clip currentpicture to unitsquare xyscaled(width,height) ; -\stopuseMPgraphic - -\defineoverlay - [titlepage] - [\useMPgraphic{titlepage}] - -\doifmode{atpragma}{\readfile{s-mod-04.tex}{}{}} - -\defineframed - [TitleFrame] - [\c!background=\v!color, - \c!backgroundcolor=white, - \c!align=\v!right, - \c!offset=12pt, - \c!strut=\v!no, - \c!frame=\v!off, - \c!bottom=] - -\definelayout - [titlepage] - [\c!backspace=0pt, - \c!topspace=0pt, - \c!header=0pt, - \c!footer=0pt, - \c!height=\v!middle, - \c!width=\v!middle] - -\def\moduletitle - {\setuplayout[titlepage] - \ifx\ModuleNumber\undefined \else - \ifnum\ModuleNumber<10 - \edef\ModuleNumber{00\ModuleNumber} - \else\ifnum\ModuleNumber<100 - \edef\ModuleNumber{0\ModuleNumber} - \fi\fi - \setupbackgrounds - [\v!page] - [\c!background=titlepage] - \fi - \startmakeup[\v!standard][\c!headerstate=\v!none,\c!footerstate=\v!none] - \switchtobodyfont[14.4pt,ss] - \bgroup - \def\CONTEXT {Con\kern-.15em\TeX t} - \def\TEXUTIL {\TeX Util} - \def\PPCHTEX {PPCH\TeX} - \def\METAPOST{MetaPost} - \hfill - {\definedfont[SansBold at 96pt]\setstrut - \TitleFrame{\Modulesystem}} - \vfill - \definetabulate[temp][|l|l|]% - \switchtobodyfont[17.3pt,ss] - \hfill - {\bf\setstrut - \TitleFrame - {\insidefloattrue\setuptabulate[\c!before=,\c!after=]% - \starttemp - \doifsomething{\Moduletitle} - {\NC title \EQ \Moduletitle \NC\NR}% - \doifsomething{\Modulesubtitle} - {\NC subtitle \EQ \Modulesubtitle \NC\NR}% - \doifsomething{\Moduleauthor} - {\NC author \EQ \Moduleauthor \NC\NR}% - \NC date \EQ \currentdate \NC\NR - %\doifsomething{\Modulesuggestions} % todo: generates space - % {\NC suggestions \NC \Modulesuggestions \NC\NR}% - \stoptemp}} - \egroup - \stopmakeup - \ifx\ModuleNumber\undefined \else - \setupbackgrounds - [\v!page] - [\c!background=] - \fi - \setuplayout} - -\let\stopdocumentation=\relax - -\def\startdocumentation - {\bgroup - \doglobal\newcounter\NOfMarginLines - \def\stopdocumentation{\par\egroup}} - -\newif\ifcompressdefinitions - -\def\startcompressdefinitions {\global\compressdefinitionstrue} -\def\stopcompressdefinitions {\global\compressdefinitionsfalse} - -\gdef\CompressDefinitions% - {\ifcompressdefinitions - \switchtobodyfont[\v!small]% - \fi} - -\startnotmode[nocode] - - \definetyping - [definition] - - \setuptyping - [definition] - [\c!before={\page[\v!preference]}\blank\PresetParagraphNumber\CompressDefinitions, - \c!after=\ResetParagraphNumber\blank, - \c!option=\Moduletype] - -\stopnotmode - -\startmode[nocode] - -% \definieerbuffer[definition] % ignore - - \long\def\startdefinition#1\stopdefinition{} - -\stopmode - -\definetyping [PL] [\c!option=PL, \c!margin=\v!standard] -\definetyping [JV] [\c!option=JV, \c!margin=\v!standard] -\definetyping [MP] [\c!option=MP, \c!margin=\v!standard] -\definetyping [TEX] [\c!option=TEX,\c!margin=\v!standard] - -\setuptyping [\v!typing] [\c!margin=\v!standard] -\setuptyping [\v!file] [\c!margin=\v!standard] -\setuptyping [definition] [\c!margin=0pt] - -\newcounter\NOfMarginLines -\newcounter\ParagraphNumber - -\def\ResetParagraphNumber - {\egroup} - -\def\PresetParagraphNumber - {\bgroup - \xdef\NOfTextLines% - {\the\prevgraf}% - \doglobal\decrement\NOfMarginLines - \doglobal\increment\ParagraphNumber - \message{.}% - \gdef\ShowParagraphNumber% - {\llap{\slx\ParagraphNumber\hskip\leftmargindistance}}% - \gdef\ShowParagraphNumberA% - {\ifnum\NOfMarginLines>\NOfTextLines\relax - \doglobal\increment\NOfTextLines - \else - \ShowParagraphNumber - \global\let\ShowParagraphNumberA=\relax - \global\let\ShowParagraphNumberB=\ShowParagraphNumber - \doglobal\newcounter\NOfMarginLines - \fi}% - \gdef\ShowParagraphNumberB% - {}% - \EveryLine - {\ShowParagraphNumberA}% - \EveryPar - {\vadjust{\nobreak}% - \ShowParagraphNumberB}} - -\EveryPar % skip one - {\EveryPar - {\doglobal\newcounter\NOfMarginLines}} - -\def\dodomargeaanduidingen[#1]#2% - {\def\docommand##1% - {\indent\hbox - {\ifx#2\relax - \index{##1}% - \else - \index{#2{##1}}% - \fi - #2{\doboundtext{##1}{\leftmarginwidth}{..}}}% - \doglobal\increment\NOfMarginLines - \endgraf}% - \processcommalist[#1]\docommand} - -\def\margeaanduidingen#1[#2]% - {\def\domargeaanduidingen##1##2% - {\margintitle[#2]% - {\switchtobodyfont[\v!small]% - \doglobal\newcounter\NOfMarginLines - \dodomargeaanduidingen[##1]#1% - \scratchcounter=\NOfMarginLines - \multiply\scratchcounter by 10 - \divide\scratchcounter by 12 - \advance\scratchcounter by 1 - \xdef\NOfMarginLines{\the\scratchcounter}% - \processcommalist[##2]\index}}% - \dodoublegroupempty\domargeaanduidingen} - -\def\complexmacros{\margeaanduidingen\tex } -\def\complexextras{\margeaanduidingen\relax} - -\def\complexelements - {\margeaanduidingen\someelement} - -\def\someelement#1{\type{<#1>}} - -\definecomplexorsimpleempty\macros -\definecomplexorsimpleempty\extras -\definecomplexorsimpleempty\elements - -\def\showelements{\dodoubleempty\doshowelements} - -\def\doshowelements[#1][#2] - {\bgroup - \processXMLbuffer - \typebuffer - \setupcolors[\c!state=\v!stop] - \showXSDcomponent[#1][#2] - \egroup} - -% \macros{a,b} -% \macros{a,b}{b} -% \macros[a]{a,b}{b} - -% weg ermee - -\defineparagraphs [interface] [\c!n=2] -\setupparagraphs [interface] [1] [\c!width=4cm] - -\def\startexample{\par\startnarrower} \let\startvoorbeeld\startexample -\def\stopexample {\stopnarrower} \let\stopvoorbeeld \stopexample - -\gdef\VisualizeLastSpace{\ifdim\lastskip>0pt\unskip\tttf\char32\fi} - -\gdef\ShowHeadText #1{\tttf#1\VL\mainlanguage[\currentlanguage]\headtext {#1}\VisualizeLastSpace} -\gdef\ShowLabelText#1{\tttf#1\VL\mainlanguage[\currentlanguage]\labeltext{#1}\VisualizeLastSpace} - -\startbuffer[lang-a] -\starttable[|l|l|] - \HL - \VL \bf head key \VL \bf current value \VL\SR - \HL - \VL \ShowHeadText \v!abbreviations \VL\FR - \VL \ShowHeadText \v!units \VL\MR - \VL \ShowHeadText \v!figures \VL\MR - \VL \ShowHeadText \v!graphics \VL\MR - \VL \ShowHeadText \v!index \VL\MR - \VL \ShowHeadText \v!content \VL\MR - \VL \ShowHeadText \v!intermezzi \VL\MR - \VL \ShowHeadText \v!logos \VL\MR - \VL \ShowHeadText \v!tables \VL\LR - \HL -\stoptable -\stopbuffer - -\startbuffer[lang-b] -\starttable[|l|l|] - \HL - \VL \bf label key \VL \bf current value \VL\SR - \HL - \VL \ShowLabelText \v!table \VL\FR - \VL \ShowLabelText \v!figure \VL\MR - \VL \ShowLabelText \v!intermezzo \VL\MR - \VL \ShowLabelText \v!graphic \VL\MR - \VL \ShowLabelText \v!chapter \VL\MR - \VL \ShowLabelText \v!section \VL\MR - \VL \ShowLabelText \v!subsection \VL\MR - \VL \ShowLabelText \v!subsubsection \VL\MR - \VL \ShowLabelText \v!appendix \VL\MR - \VL \ShowLabelText \v!part \VL\MR - \VL \ShowLabelText \v!line \VL\MR - \VL \ShowLabelText \v!lines \VL\LR - \HL -\stoptable -\stopbuffer - -\startbuffer[lang-c] -\starttable[|l|l|] - \HL - \VL \bf label key \VL \bf current value \VL\SR - \HL - \VL \ShowLabelText \v!january \VL\FR - \VL \ShowLabelText \v!february \VL\MR - \VL \ShowLabelText \v!march \VL\MR - \VL \ShowLabelText \v!april \VL\MR - \VL \ShowLabelText \v!may \VL\MR - \VL \ShowLabelText \v!june \VL\MR - \VL \ShowLabelText \v!july \VL\MR - \VL \ShowLabelText \v!august \VL\MR - \VL \ShowLabelText \v!september \VL\MR - \VL \ShowLabelText \v!october \VL\MR - \VL \ShowLabelText \v!november \VL\MR - \VL \ShowLabelText \v!december \VL\LR - \HL -\stoptable -\stopbuffer - -\startbuffer[lang-d] -\starttable[|l|l|] - \HL - \VL \bf label key \VL \bf current value \VL\SR - \HL - \VL \ShowLabelText \v!sunday \VL\FR - \VL \ShowLabelText \v!monday \VL\MR - \VL \ShowLabelText \v!tuesday \VL\MR - \VL \ShowLabelText \v!wednesday \VL\MR - \VL \ShowLabelText \v!thursday \VL\MR - \VL \ShowLabelText \v!friday \VL\MR - \VL \ShowLabelText \v!saturday \VL\LR - \HL -\stoptable -\stopbuffer - -\gdef\ShowTextsValues[#1][#2]% - {\vbox\bgroup - \language[#1]% - \setbox\scratchbox\hbox to \hsize{\hss\bfb#2 language defaults\hss} - \dp\scratchbox\zeropoint - \box\scratchbox - \vskip1em - \hrule - \vskip2em - \halign - {\hss##\hss&##\hskip1em&\hss##\hss\cr - $\vcenter{\getbuffer[lang-a]}$&&$\vcenter{\getbuffer[lang-b]}$\cr - \noalign{\vskip1em} - $\vcenter{\getbuffer[lang-c]}$&&$\vcenter{\getbuffer[lang-d]}$\cr}% - \egroup} - -\gdef\ShowLanguageValues[#1][#2]#3#4% - {\hbox to \hsize - {\hss - \vbox - \bgroup - \language[#1]% - \let\normalbar=| - \starttable[||||] - \HL - \VL \THREE{\bf subsentence symbol and quotes} \VL\SR - \HL - \VL \quotation{#3 #4} \VL \quote{#2} \VL \let|=\normalbar |<||<|#3|>|#4|>| \VL\FR - \VL \quotation{#3 #4} \VL \quote{#2} \VL |<||<|#3|>|#4|>| \VL\LR - \HL - \stoptable - \egroup - \hss}} - -\gdef\doShowAllLanguageValues[#1][#2]#3#4% - {\vbox - {\ShowTextsValues[#1][#2] - \vskip2em - \ShowLanguageValues[#1][#2]{#3}{#4}} - \protect - \page} - -\gdef\ShowAllLanguageValues - {\page - \unprotect - \dodoubleargument\doShowAllLanguageValues} - -\protect - -%D Command references: - -% \input setupa -% \input setupb - -\usemodule[int-load] \loadsetups - -\unprotect - -% \def\showsetup -% {\doglobal\newcounter\CurrentArgument -% \setup} - -\def\showsetup#1% - {{\def\y##1{\writestatus{setups}{warning: remove y! from #1}}% - \setup{#1}}} - -\setupframedtexts - [setuptext] - [\c!background=\v!screen, - \c!frame=\v!off] - -\protect \endinput diff --git a/tex/context/base/s-mod-01.mkii b/tex/context/base/s-mod-01.mkii new file mode 100644 index 000000000..64b533d03 --- /dev/null +++ b/tex/context/base/s-mod-01.mkii @@ -0,0 +1,155 @@ +%D \module +%D [ file=s-mod-01, +%D version=very-old, +%D title=\CONTEXT\ Style File, +%D subtitle=Documentation Paper Environment, +%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. + +%D This module looks like crap, is not documented, will +%D change, and used to be called modu-*.tex. + +\usemodule[mod-00,abr-01] + +\dontcomplain + +\unprotect + +\setupbodyfont + [10pt] + +\definetypeface + [narrowtt] [tt] + [mono] [modern-cond] [default] [encoding=\defaultencoding] + +\setuptyping[\v!typing][\c!style=\narrowtt] +\setuptype [\v!type] [\c!style=\narrowtt] + +\mainlanguage + [en] + +\setupwhitespace + [\v!big] + +\setuptolerance + [\v!verytolerant,\v!!stretch] + +\setuplayout + [\c!backspace=3.5cm, + \c!leftmargin=1.75cm, + \c!rightmargin=0cm, + \c!margindistance=.5cm, + \c!leftedgedistance=.25cm, + \c!rightedgedistance=.5cm, + \c!edge=1.5cm, + \c!width=15.55333cm, % 13.998cm at 9pt => 15.55333 at 10pt + \c!topspace=2cm, + \c!header=1.25cm, + \c!footer=1.25cm, + \c!height=middle, + \c!style=\ss] + +\setupsetup + [\c!reference=1] + +\startnotmode[single] + + \setuppagenumbering + [\c!alternative={\v!doublesided,\v!singlesided}] + +\stopnotmode + +\setuppagenumbering + [\c!location=] + +\expanded{\setupfootertexts + [\v!edge] + [][\v!pagenumber]} + +\startmode[single] + + \setupfootertexts + [\v!margin] + [\filename{\Modulefile}][] + +\stopmode + +\startnotmode[single] + + \setupfootertexts + [\v!margin] + [\filename{\Modulefile}][] + [\filename{\Modulefile}][] + +\stopnotmode + +\setupfootertexts + [\v!text] + [\CONTEXT] + [\Moduletitle] + +\setupheadertexts + [\v!text] + [] + [\Modulesubtitle] + +\setupinmargin + [\c!location=\v!left] + +\setupheads + [\c!alternative=\v!inmargin] + +\setuphead + [\v!chapter] + [\c!style=\ssc, + \c!page=\v!right, + \c!header=\v!empty] + +\setuphead + [\v!section] + [\c!style=\ssb, + \c!page=\v!right] + +\setuplist + [\v!chapter] + [\c!style=\v!bold, + \c!after=\blank] + +\setupcombinedlist + [\v!content] + [\c!width=3em, + \c!aligntitle=\v!yes] + +\setupregister + [\v!index] + [\c!balance=\v!yes, + \c!indicator=\v!no] + +\startnotmode[nocolor] + +\setupcolors + [\c!state=\v!start] + +\stopnotmode + +\startnotmode[color] + + \setupcolors + [\c!conversion=\v!always] + + \setuptyping + [\c!palet=graypretty] + +\stopnotmode + +\setupinteraction + [\c!state=\v!start, + \c!color=, + \c!style=] + +\protect \endinput diff --git a/tex/context/base/s-mod-01.mkiv b/tex/context/base/s-mod-01.mkiv new file mode 100644 index 000000000..fe42b832f --- /dev/null +++ b/tex/context/base/s-mod-01.mkiv @@ -0,0 +1,146 @@ +%D \module +%D [ file=s-mod-01, +%D version=very-old, +%D title=\CONTEXT\ Style File, +%D subtitle=Documentation Paper Environment, +%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. + +%D This module looks like crap, is not documented, will +%D change, and used to be called modu-*.tex. + +% now split in mkii/mkiv so we will cleanup + +\usemodule[mod-00,abr-01] + +\dontcomplain + +\unprotect + +\setupbodyfont + [10pt] + +\definetypeface [narrowtt] [tt] [mono] [modern-cond] [default] + +\setuptyping[\v!typing][\c!style=\narrowtt] +\setuptype [\v!type] [\c!style=\narrowtt] + +\mainlanguage + [en] + +\setupwhitespace + [\v!big] + +\setuptolerance + [\v!verytolerant,\v!!stretch] + +\setuplayout + [\c!backspace=3.5cm, + \c!leftmargin=1.75cm, + \c!rightmargin=0cm, + \c!margindistance=.5cm, + \c!leftedgedistance=.25cm, + \c!rightedgedistance=.5cm, + \c!edge=1.5cm, + \c!width=15.55333cm, % 13.998cm at 9pt => 15.55333 at 10pt + \c!topspace=2cm, + \c!header=1.25cm, + \c!footer=1.25cm, + \c!height=middle, + \c!style=\ss] + +\setupsetup + [\c!reference=1] % mkiv? + +\startnotmode[single] + + \setuppagenumbering + [\c!alternative={\v!doublesided,\v!singlesided}] + +\stopnotmode + +\setuppagenumbering + [\c!location=] + +\setupfootertexts + [\v!edge] + [][\v!pagenumber] + +\startmode[single] + + \setupfootertexts + [\v!margin] + [\filename{\Modulefile}][] + +\stopmode + +\startnotmode[single] + + \setupfootertexts + [\v!margin] + [\filename{\Modulefile}][] + [\filename{\Modulefile}][] + +\stopnotmode + +\setupfootertexts + [\v!text] + [\CONTEXT] + [\Moduletitle] + +\setupheadertexts + [\v!text] + [] + [\Modulesubtitle] + +\setupinmargin + [\c!location=\v!left] + +\setupheads + [\c!alternative=\v!inmargin] + +\setuphead + [\v!chapter] + [\c!style=\ssc, + \c!page=\v!right, + \c!header=\v!empty] + +\setuphead + [\v!section] + [\c!style=\ssb, + \c!page=\v!right] + +\setuplist + [\v!chapter] + [\c!style=\v!bold, + \c!after=\blank] + +\setupcombinedlist + [\v!content] + [\c!width=3em, + \c!aligntitle=\v!yes] + +\setupregister + [\v!index] + [\c!balance=\v!yes, + \c!indicator=\v!no] + +\startmode[nocolor] + + \setupcolors + [\c!conversion=\v!always] + +\stopmode + +\setupinteraction + [\c!state=\v!start, + \c!color=, + \c!contrastcolor=, + \c!style=] + +\protect \endinput diff --git a/tex/context/base/s-mod-01.tex b/tex/context/base/s-mod-01.tex deleted file mode 100644 index 4454986ce..000000000 --- a/tex/context/base/s-mod-01.tex +++ /dev/null @@ -1,157 +0,0 @@ -%D \module -%D [ file=s-mod-01, -%D version=very-old, -%D title=\CONTEXT\ Style File, -%D subtitle=Documentation Paper Environment, -%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. - -%D This module looks like crap, is not documented, will -%D change, and used to be called modu-*.tex. - -\usemodule[mod-00,abr-01] - -\dontcomplain - -\unprotect - -\setupbodyfont - [10pt] - -\definetypeface - [narrowtt] [tt] - [mono] [modern-cond] [default] [encoding=\defaultencoding] - -\setuptyping[\v!typing][\c!style=\narrowtt] -\setuptype [\v!type] [\c!style=\narrowtt] - -\mainlanguage - [en] - -\setupwhitespace - [\v!big] - -\setuptolerance - [\v!tolerant] - -\emergencystretch=5em - -\setuplayout - [\c!backspace=3.5cm, - \c!leftmargin=1.75cm, - \c!rightmargin=0cm, - \c!margindistance=.5cm, - \c!leftedgedistance=.25cm, - \c!rightedgedistance=.5cm, - \c!edge=1.5cm, - \c!width=15.55333cm, % 13.998cm at 9pt => 15.55333 at 10pt - \c!topspace=2cm, - \c!header=1.25cm, - \c!footer=1.25cm, - \c!height=middle, - \c!style=\ss] - -\setupsetup - [\c!reference=1] - -\startnotmode[single] - - \setuppagenumbering - [\c!alternative={\v!doublesided,\v!singlesided}] - -\stopnotmode - -\setuppagenumbering - [\c!location=] - -\expanded{\setupfootertexts - [\v!edge] - [][\v!pagenumber]} - -\startmode[single] - - \setupfootertexts - [\v!margin] - [\filename{\Modulefile}][] - -\stopmode - -\startnotmode[single] - - \setupfootertexts - [\v!margin] - [\filename{\Modulefile}][] - [\filename{\Modulefile}][] - -\stopnotmode - -\setupfootertexts - [\v!text] - [\CONTEXT] - [\Moduletitle] - -\setupheadertexts - [\v!text] - [] - [\Modulesubtitle] - -\setupinmargin - [\c!location=\v!left] - -\setupheads - [\c!alternative=\v!inmargin] - -\setuphead - [\v!chapter] - [\c!style=\ssc, - \c!page=\v!right, - \c!header=\v!empty] - -\setuphead - [\v!section] - [\c!style=\ssb, - \c!page=\v!right] - -\setuplist - [\v!chapter] - [\c!style=\v!bold, - \c!after=\blank] - -\setupcombinedlist - [\v!content] - [\c!width=3em, - \c!aligntitle=\v!yes] - -\setupregister - [\v!index] - [\c!balance=\v!yes, - \c!indicator=\v!no] - -\startnotmode[nocolor] - -\setupcolors - [\c!state=\v!start] - -\stopnotmode - -\startnotmode[color] - - \setupcolors - [\c!conversion=\v!always] - - \setuptyping - [\c!palet=graypretty] - -\stopnotmode - -\setupinteraction - [\c!state=\v!start, - \c!color=, - \c!style=] - -\protect \endinput diff --git a/tex/context/base/s-mod-02.mkii b/tex/context/base/s-mod-02.mkii new file mode 100644 index 000000000..fac5c23e6 --- /dev/null +++ b/tex/context/base/s-mod-02.mkii @@ -0,0 +1,419 @@ +%D \module +%D [ file=s-mod-02, +%D version=very-old, +%D title=\CONTEXT\ Style File, +%D subtitle=Documentation Screen Environment, +%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. + +%D This module looks like crap, is not documented, will +%D change, and used to be called modu-*.tex. + +% Macro's + +\usemodule[mod-00] + +% todo: internationalize + setups + +\setuphead[paragraaf][expansion=command] +\setuphead[section][expansion=command] + +\def\complexmodule[#1]% redefined + {\startglobal % i.v.m. \bgroup in \startdocumentation + \getparameters[Module][#1] + \stopglobal % i.v.m. \bgroup in \startdocumentation + %%\section{\Modulesubtitle} + \xdef\Temp{\Modulesubtitle}%%Modulesubtitle:\framed{BEGIN \Modulesubtitle END} :#1 !} + \@EA\section\@EA{\Temp} + \WriteLists} + +\def\stopmodule % redefined + {\page + \determineregistercharacteristics + [index] + [criterium=section] + \doifmode{*register} + {\pagereference + [index] + \placeregister + [index] + [balance=yes, + indicator=no, + criterium=section]}} + +\let\ComposeLists=\relax + +\newcounter\ModuleNumber + +\newwrite\BatchFile \openout\BatchFile=\jobname.bat + +\def\WriteBatchFile + {\doglobal\increment\ModuleNumber +% \immediate\write\BatchFile{call modu-run \FileName\space \ModuleNumber}} +% \immediate\write\BatchFile{texmfstart texutil --modu \FileName}} + \immediate\write\BatchFile{texmfstart texexec --pdf --modu --batch \FileName }} + +\newif\ifProcessingPublic + +\def\WriteLists + {\writetolist[FileNames] {}{\FileName} + \writetolist[GroupItems]{}{\GroupItem}} + +\def\moduletitle{} + +\def\TypeZeroModule#1% + {\section{[to be extracted: #1]} + {\em This module is not yet split off.} + \WriteLists} + +\def\TypeOneModule#1% + {\section{[to be documented: #1]} + {\em This module is not yet fully documented.} + \WriteLists} + +\def\TypeTwoModule#1% + {\ifProcessingPublic + \readfile{#1.ted}{}{}% + \WriteBatchFile + \else + \section{[not yet public: #1]} + {\em This module is documented but not yet public.} + \WriteLists + \fi} + +\def\TypeThreeModule#1% + {\readfile{#1.ted}{}{}% + \WriteBatchFile} + +\def\processmodule#1#2% + {\page + \bgroup + \def\FileName{#1} + \setupreferencing[prefix=#1] + \useexternaldocument[PaperVersion][#1][] + \aftersplitstring#1\at-\to\GroupItem + \ComposeLists + \ifcase#2 + \TypeZeroModule{#1} + \or + \TypeOneModule{#1} + \or + \TypeTwoModule{#1} + \or + \TypeThreeModule{#1} + \fi + \page + \setupreferencing[prefix=] + \egroup} + +\def\ModuleGroup#1#2% + {\page + \let\Modulefile=\empty + \setupreferencing[prefix=#1] + \def\FileGroup{#1} + \writetolist[FileGroups]{}{\FileGroup} + \chapter[content]{#2} + \MakeListOfItems + \MakeListOfNames + \MakeListOfGroups + \placecontent[criterium=chapter,level=section]} + +% Layout + +\setupbodyfont + [9pt] + +\setuppapersize + [S6][S6] + +\setuplayout + [backspace=72.5pt, + leftmargin=50pt, + leftmargindistance=12.5pt, + rightmargin=0pt, + rightedge=80pt, + rightedgedistance=10pt, + leftedge=0pt, + width=430pt, + topspace=10pt, + header=0pt, + footer=30pt, + bottomdistance=10pt, + bottom=15pt, + height=410pt, + style=\ss] + +\setuptyping + [palet=colorpretty] + +\setupsetup + [reference=3] + +\definecolor [AchtergrondKleur] [s=.6] +\definecolor [ButtonKleur] [r=.2,g=.2,b=.6] +\definecolor [TekstKleur] [r=.6,g=.2,b=.2] + +\definecolor [colorprettyone] [r=.6,g=.0,b=.0] % red +\definecolor [colorprettytwo] [r=.0,g=.6,b=.0] % green +\definecolor [colorprettythree] [r=.0,g=.0,b=.6] % blue +\definecolor [colorprettyfour] [r=.6,g=.6,b=.0] % yellow + +\setupinteraction + [state=start, + page=yes, + contrastcolor=, + menu=on, + color=] + +\setupbackgrounds + [page] + [background=color, + backgroundcolor=AchtergrondKleur, + offset=2.5pt] % this offset influences the menus! + +\setupbackgrounds + [text,footer] + [text,leftmargin] + [background=color, + backgroundcolor=white] + +\setupsubpagenumber + [way=bysection, + state=start] + +\setupinteractionbar + [frame=off, + offset=0pt, + height=fit] + +\setupwhitespace + [big] + +\setuptyping + [typing] + [option=color] + +\setuptyping + [definition] + [option=color] + +\setuptyping + [file] + [option=color] + +\setuppagenumbering + [alternative=singlesided, + way=bysection, + state=none] + +\setupinmargin + [location=left] + +\setupheads + [alternative=inmargin] + +\setuphead + [chapter] + [style=\ssc, + page=right] + +\setuphead + [section] + [style=\ssb, + page=right] + +\setuplist + [chapter] + [style=bold, + after=\blank] + +\setupcontent + [width=2em] + +\setupindex + [balance=yes, + indicator=no] + +\setupcolors + [state=start] + +\def\TitelBlad#1% + {\startstandardmakeup + \definefont[GrootFont] [SansBold at 72pt] + \definefont[MiddelFont][Sans at 32pt] + \definefont[KleinFont] [Sans at 24pt] + \startcolor[AchtergrondKleur] + \vskip12pt + \midaligned{\GrootFont\setstrut\strut Con\TeX t} + \vskip24pt + \midaligned{\MiddelFont\setstrut\strut #1} + \vskip24pt + \midaligned{\KleinFont\setstrut\strut Hans Hagen} + \vfilll + \midaligned{\KleinFont\setstrut\strut PRAGMA ADE} + \vskip24pt + \midaligned{\KleinFont\setstrut\strut www.pragma-ade.com --- \currentdate} + \vskip12pt + \stopcolor + \stopstandardmakeup} + +\def\ColofonBlad + {\startmode[atpragma] + \page + \bgroup + \def\PragmaHoogte {\makeupheight} + \def\PragmaBreedte{\textwidth} + \def\PragmaKopwit {\topspace} + \def\PragmaRugwit {\backspace} + \def\PragmaMarge {0pt} + \PragmaLijnentrue + \PlaatsPragmaLogo[ADE] + \vfill + todo: colofon + \startnarrower[3*middle] + This is the official documentation of \CONTEXT\ version + \referraldate, a \TEX\ macropackage developed by J.~Hagen + \& A.F.~Otten, who both hold the copyrights. + \stopnarrower + \vfill + \page + \egroup + \stopmode} + +\def\ColofonBlad + {} + +\newbox\ListOfItems +\newbox\ListOfGroups +\newbox\ListOfNames + +\definelist[FileNames] \def\FileName {} +\definelist[FileGroups] \def\FileGroup {} +\definelist[GroupItems] \def\GroupItem {} + +\setuplist + [FileNames,FileGroups,FileGroups] + [expansion=yes, + pagenumber=no, + style=\ss\bf] + +\setuplist + [FileNames] + [command=\FileNameEntry, + after=\endgraf, + alternative=none] % horizontal + +\setuplist + [FileGroups] + [command=\FileGroupEntry, + after=\hss, + alternative=horizontal] + +\def\FileNameEntry#1#2#3% + {\strut\hbox{#2}\endgraf} + +\def\FileGroupEntry#1#2#3% + {\strut\hbox{#2}\endgraf} + +\def\MakeListOfItems + {\setbox\ListOfItems=\vbox + {\ss\bf + \placelist[GroupItems][color=ButtonKleur,contrastcolor=white,criterium=chapter]}} + +\def\MakeListOfNames + {\setbox\ListOfNames=\vbox + {\hsize\rightedgewidth + \ss\bf\setupinterlinespace + \startsimplecolumns[distance=10pt] + \placelist[FileNames][color=ButtonKleur,contrastcolor=white,criterium=chapter] + \stopsimplecolumns}} + +\def\MakeListOfGroups + {\setbox\ListOfGroups=\hbox to \textwidth + {\ss\bf + \setupinteraction[color=ButtonKleur]% + \placelist[FileGroups][color=ButtonKleur,contrastcolor=white,criterium=all]\unskip\unskip}} + +\setbox\ListOfGroups=\hbox{} + +%\setupfootertexts +% [rand] +% [] +% [{\interactiebalk[variant=g]}] + +\setupinteractionmenu + [right,bottom] + [state=start, + frame=off, + color=AchtergrondKleur, + contrastcolor=white, + style=\ss\bf, + height=15pt, + offset=0pt, + inbetween=\vskip5pt, + background=color, + backgroundcolor=ButtonKleur] + +\startinteractionmenu[right] + \boxofsize \vbox \textheight \footerdistance \footerheight 5pt + \bgroup + \copy\ListOfNames + \vfill + \but [\FileGroup:content] local contents \\ + \but [\FileName:index] local register \\ + \but [PaperVersion::begin] paper version \\ + \but [content] main contents \\ + \but [index] main register \\ + \but [PreviousJump] previous jump \\ + \but [CloseDocument] close document \\ + \unskip + \egroup +\stopinteractionmenu + +\startinteractionmenu[bottom] + \unhcopy\ListOfGroups +\stopinteractionmenu + +\def\placemoduleregister + {\startbackmatter + \setupsubpagenumber[reset] + \title[-:index]{Register} + \placeregister[index] + \stopbackmatter} + +\def\placemodulecontent + {\startfrontmatter + \title[-:content]{Contents} + \setupinteractionbar[state=stop] + \placecontent[criterium=text,level=chapter] + \stopfrontmatter} + +\setupcontent + [pagenumber=no, + level=chapter, + interaction=all, + style=, + before=, + after=] + +\setupfootertexts + [margin] + [\tt\Modulefile] + [] + +\setupfootertexts + [text] + [chapter][chapter] + +\setupindex + [symbol=1] + +\setuptolerance + [verytolerant] + +\endinput diff --git a/tex/context/base/s-mod-02.mkiv b/tex/context/base/s-mod-02.mkiv new file mode 100644 index 000000000..f62513dd3 --- /dev/null +++ b/tex/context/base/s-mod-02.mkiv @@ -0,0 +1,421 @@ +%D \module +%D [ file=s-mod-02, +%D version=very-old, +%D title=\CONTEXT\ Style File, +%D subtitle=Documentation Screen Environment, +%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. + +%D This module looks like crap, is not documented, will +%D change, and used to be called modu-*.tex. + +% now split in mkii/mkiv so we will cleanup + +% Macro's + +\usemodule[mod-00] + +% todo: internationalize + setups + +\setuphead[paragraaf][expansion=command] +\setuphead[section][expansion=command] + +\def\complexmodule[#1]% redefined + {\startglobal % i.v.m. \bgroup in \startdocumentation + \getparameters[Module][#1] + \stopglobal % i.v.m. \bgroup in \startdocumentation + %%\section{\Modulesubtitle} + \xdef\Temp{\Modulesubtitle}%%Modulesubtitle:\framed{BEGIN \Modulesubtitle END} :#1 !} + \@EA\section\@EA{\Temp} + \WriteLists} + +\def\stopmodule % redefined + {\page + \determineregistercharacteristics + [index] + [criterium=section] + \doifmode{*register} + {\pagereference + [index] + \placeregister + [index] + [balance=yes, + indicator=no, + criterium=section]}} + +\let\ComposeLists=\relax + +\newcounter\ModuleNumber + +\newwrite\BatchFile \openout\BatchFile=\jobname.bat + +\def\WriteBatchFile + {\doglobal\increment\ModuleNumber +% \immediate\write\BatchFile{call modu-run \FileName\space \ModuleNumber}} +% \immediate\write\BatchFile{texmfstart texutil --modu \FileName}} + \immediate\write\BatchFile{texmfstart texexec --pdf --modu --batch \FileName }} + +\newif\ifProcessingPublic + +\def\WriteLists + {\writetolist[FileNames] {}{\FileName} + \writetolist[GroupItems]{}{\GroupItem}} + +\def\moduletitle{} + +\def\TypeZeroModule#1% + {\section{[to be extracted: #1]} + {\em This module is not yet split off.} + \WriteLists} + +\def\TypeOneModule#1% + {\section{[to be documented: #1]} + {\em This module is not yet fully documented.} + \WriteLists} + +\def\TypeTwoModule#1% + {\ifProcessingPublic + \readfile{#1.ted}{}{}% + \WriteBatchFile + \else + \section{[not yet public: #1]} + {\em This module is documented but not yet public.} + \WriteLists + \fi} + +\def\TypeThreeModule#1% + {\readfile{#1.ted}{}{}% + \WriteBatchFile} + +\def\processmodule#1#2% + {\page + \bgroup + \def\FileName{#1} + \setupreferencing[prefix=#1] + \useexternaldocument[PaperVersion][#1][] + \aftersplitstring#1\at-\to\GroupItem + \ComposeLists + \ifcase#2 + \TypeZeroModule{#1} + \or + \TypeOneModule{#1} + \or + \TypeTwoModule{#1} + \or + \TypeThreeModule{#1} + \fi + \page + \setupreferencing[prefix=] + \egroup} + +\def\ModuleGroup#1#2% + {\page + \let\Modulefile=\empty + \setupreferencing[prefix=#1] + \def\FileGroup{#1} + \writetolist[FileGroups]{}{\FileGroup} + \chapter[content]{#2} + \MakeListOfItems + \MakeListOfNames + \MakeListOfGroups + \placecontent[criterium=chapter,level=section]} + +% Layout + +\setupbodyfont + [9pt] + +\setuppapersize + [S6][S6] + +\setuplayout + [backspace=72.5pt, + leftmargin=50pt, + leftmargindistance=12.5pt, + rightmargin=0pt, + rightedge=80pt, + rightedgedistance=10pt, + leftedge=0pt, + width=430pt, + topspace=10pt, + header=0pt, + footer=30pt, + bottomdistance=10pt, + bottom=15pt, + height=410pt, + style=\ss] + +\setuptyping + [palet=colorpretty] + +\setupsetup + [reference=3] + +\definecolor [AchtergrondKleur] [s=.6] +\definecolor [ButtonKleur] [r=.2,g=.2,b=.6] +\definecolor [TekstKleur] [r=.6,g=.2,b=.2] + +\definecolor [colorprettyone] [r=.6,g=.0,b=.0] % red +\definecolor [colorprettytwo] [r=.0,g=.6,b=.0] % green +\definecolor [colorprettythree] [r=.0,g=.0,b=.6] % blue +\definecolor [colorprettyfour] [r=.6,g=.6,b=.0] % yellow + +\setupinteraction + [state=start, + page=yes, + contrastcolor=, + menu=on, + color=] + +\setupbackgrounds + [page] + [background=color, + backgroundcolor=AchtergrondKleur, + offset=2.5pt] % this offset influences the menus! + +\setupbackgrounds + [text,footer] + [text,leftmargin] + [background=color, + backgroundcolor=white] + +\setupsubpagenumber + [way=bysection, + state=start] + +\setupinteractionbar + [frame=off, + offset=0pt, + height=fit] + +\setupwhitespace + [big] + +\setuptyping + [typing] + [option=color] + +\setuptyping + [definition] + [option=color] + +\setuptyping + [file] + [option=color] + +\setuppagenumbering + [alternative=singlesided, + way=bysection, + state=none] + +\setupinmargin + [location=left] + +\setupheads + [alternative=inmargin] + +\setuphead + [chapter] + [style=\ssc, + page=right] + +\setuphead + [section] + [style=\ssb, + page=right] + +\setuplist + [chapter] + [style=bold, + after=\blank] + +\setupcontent + [width=2em] + +\setupindex + [balance=yes, + indicator=no] + +\setupcolors + [state=start] + +\def\TitelBlad#1% + {\startstandardmakeup + \definefont[GrootFont] [SansBold at 72pt] + \definefont[MiddelFont][Sans at 32pt] + \definefont[KleinFont] [Sans at 24pt] + \startcolor[AchtergrondKleur] + \vskip12pt + \midaligned{\GrootFont\setstrut\strut Con\TeX t} + \vskip24pt + \midaligned{\MiddelFont\setstrut\strut #1} + \vskip24pt + \midaligned{\KleinFont\setstrut\strut Hans Hagen} + \vfilll + \midaligned{\KleinFont\setstrut\strut PRAGMA ADE} + \vskip24pt + \midaligned{\KleinFont\setstrut\strut www.pragma-ade.com --- \currentdate} + \vskip12pt + \stopcolor + \stopstandardmakeup} + +\def\ColofonBlad + {\startmode[atpragma] + \page + \bgroup + \def\PragmaHoogte {\makeupheight} + \def\PragmaBreedte{\textwidth} + \def\PragmaKopwit {\topspace} + \def\PragmaRugwit {\backspace} + \def\PragmaMarge {0pt} + \PragmaLijnentrue + \PlaatsPragmaLogo[ADE] + \vfill + todo: colofon + \startnarrower[3*middle] + This is the official documentation of \CONTEXT\ version + \referraldate, a \TEX\ macropackage developed by J.~Hagen + \& A.F.~Otten, who both hold the copyrights. + \stopnarrower + \vfill + \page + \egroup + \stopmode} + +\def\ColofonBlad + {} + +\newbox\ListOfItems +\newbox\ListOfGroups +\newbox\ListOfNames + +\definelist[FileNames] \def\FileName {} +\definelist[FileGroups] \def\FileGroup {} +\definelist[GroupItems] \def\GroupItem {} + +\setuplist + [FileNames,FileGroups,FileGroups] + [expansion=yes, + pagenumber=no, + style=\ss\bf] + +\setuplist + [FileNames] + [command=\FileNameEntry, + after=\endgraf, + alternative=none] % horizontal + +\setuplist + [FileGroups] + [command=\FileGroupEntry, + after=\hss, + alternative=horizontal] + +\def\FileNameEntry#1#2#3% + {\strut\hbox{#2}\endgraf} + +\def\FileGroupEntry#1#2#3% + {\strut\hbox{#2}\endgraf} + +\def\MakeListOfItems + {\setbox\ListOfItems=\vbox + {\ss\bf + \placelist[GroupItems][color=ButtonKleur,contrastcolor=white,criterium=chapter]}} + +\def\MakeListOfNames + {\setbox\ListOfNames=\vbox + {\hsize\rightedgewidth + \ss\bf\setupinterlinespace + \startsimplecolumns[distance=10pt] + \placelist[FileNames][color=ButtonKleur,contrastcolor=white,criterium=chapter] + \stopsimplecolumns}} + +\def\MakeListOfGroups + {\setbox\ListOfGroups=\hbox to \textwidth + {\ss\bf + \setupinteraction[color=ButtonKleur]% + \placelist[FileGroups][color=ButtonKleur,contrastcolor=white,criterium=all]\unskip\unskip}} + +\setbox\ListOfGroups=\hbox{} + +%\setupfootertexts +% [rand] +% [] +% [{\interactiebalk[variant=g]}] + +\setupinteractionmenu + [right,bottom] + [state=start, + frame=off, + color=AchtergrondKleur, + contrastcolor=white, + style=\ss\bf, + height=15pt, + offset=0pt, + inbetween=\vskip5pt, + background=color, + backgroundcolor=ButtonKleur] + +\startinteractionmenu[right] + \boxofsize \vbox \textheight \footerdistance \footerheight 5pt + \bgroup + \copy\ListOfNames + \vfill + \but [\FileGroup:content] local contents \\ + \but [\FileName:index] local register \\ + \but [PaperVersion::begin] paper version \\ + \but [content] main contents \\ + \but [index] main register \\ + \but [PreviousJump] previous jump \\ + \but [CloseDocument] close document \\ + \unskip + \egroup +\stopinteractionmenu + +\startinteractionmenu[bottom] + \unhcopy\ListOfGroups +\stopinteractionmenu + +\def\placemoduleregister + {\startbackmatter + \setupsubpagenumber[reset] + \title[-:index]{Register} + \placeregister[index] + \stopbackmatter} + +\def\placemodulecontent + {\startfrontmatter + \title[-:content]{Contents} + \setupinteractionbar[state=stop] + \placecontent[criterium=text,level=chapter] + \stopfrontmatter} + +\setupcontent + [pagenumber=no, + level=chapter, + interaction=all, + style=, + before=, + after=] + +\setupfootertexts + [margin] + [\tt\Modulefile] + [] + +\setupfootertexts + [text] + [chapter][chapter] + +\setupindex + [symbol=1] + +\setuptolerance + [verytolerant] + +\endinput diff --git a/tex/context/base/s-mod-02.tex b/tex/context/base/s-mod-02.tex deleted file mode 100644 index fac5c23e6..000000000 --- a/tex/context/base/s-mod-02.tex +++ /dev/null @@ -1,419 +0,0 @@ -%D \module -%D [ file=s-mod-02, -%D version=very-old, -%D title=\CONTEXT\ Style File, -%D subtitle=Documentation Screen Environment, -%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. - -%D This module looks like crap, is not documented, will -%D change, and used to be called modu-*.tex. - -% Macro's - -\usemodule[mod-00] - -% todo: internationalize + setups - -\setuphead[paragraaf][expansion=command] -\setuphead[section][expansion=command] - -\def\complexmodule[#1]% redefined - {\startglobal % i.v.m. \bgroup in \startdocumentation - \getparameters[Module][#1] - \stopglobal % i.v.m. \bgroup in \startdocumentation - %%\section{\Modulesubtitle} - \xdef\Temp{\Modulesubtitle}%%Modulesubtitle:\framed{BEGIN \Modulesubtitle END} :#1 !} - \@EA\section\@EA{\Temp} - \WriteLists} - -\def\stopmodule % redefined - {\page - \determineregistercharacteristics - [index] - [criterium=section] - \doifmode{*register} - {\pagereference - [index] - \placeregister - [index] - [balance=yes, - indicator=no, - criterium=section]}} - -\let\ComposeLists=\relax - -\newcounter\ModuleNumber - -\newwrite\BatchFile \openout\BatchFile=\jobname.bat - -\def\WriteBatchFile - {\doglobal\increment\ModuleNumber -% \immediate\write\BatchFile{call modu-run \FileName\space \ModuleNumber}} -% \immediate\write\BatchFile{texmfstart texutil --modu \FileName}} - \immediate\write\BatchFile{texmfstart texexec --pdf --modu --batch \FileName }} - -\newif\ifProcessingPublic - -\def\WriteLists - {\writetolist[FileNames] {}{\FileName} - \writetolist[GroupItems]{}{\GroupItem}} - -\def\moduletitle{} - -\def\TypeZeroModule#1% - {\section{[to be extracted: #1]} - {\em This module is not yet split off.} - \WriteLists} - -\def\TypeOneModule#1% - {\section{[to be documented: #1]} - {\em This module is not yet fully documented.} - \WriteLists} - -\def\TypeTwoModule#1% - {\ifProcessingPublic - \readfile{#1.ted}{}{}% - \WriteBatchFile - \else - \section{[not yet public: #1]} - {\em This module is documented but not yet public.} - \WriteLists - \fi} - -\def\TypeThreeModule#1% - {\readfile{#1.ted}{}{}% - \WriteBatchFile} - -\def\processmodule#1#2% - {\page - \bgroup - \def\FileName{#1} - \setupreferencing[prefix=#1] - \useexternaldocument[PaperVersion][#1][] - \aftersplitstring#1\at-\to\GroupItem - \ComposeLists - \ifcase#2 - \TypeZeroModule{#1} - \or - \TypeOneModule{#1} - \or - \TypeTwoModule{#1} - \or - \TypeThreeModule{#1} - \fi - \page - \setupreferencing[prefix=] - \egroup} - -\def\ModuleGroup#1#2% - {\page - \let\Modulefile=\empty - \setupreferencing[prefix=#1] - \def\FileGroup{#1} - \writetolist[FileGroups]{}{\FileGroup} - \chapter[content]{#2} - \MakeListOfItems - \MakeListOfNames - \MakeListOfGroups - \placecontent[criterium=chapter,level=section]} - -% Layout - -\setupbodyfont - [9pt] - -\setuppapersize - [S6][S6] - -\setuplayout - [backspace=72.5pt, - leftmargin=50pt, - leftmargindistance=12.5pt, - rightmargin=0pt, - rightedge=80pt, - rightedgedistance=10pt, - leftedge=0pt, - width=430pt, - topspace=10pt, - header=0pt, - footer=30pt, - bottomdistance=10pt, - bottom=15pt, - height=410pt, - style=\ss] - -\setuptyping - [palet=colorpretty] - -\setupsetup - [reference=3] - -\definecolor [AchtergrondKleur] [s=.6] -\definecolor [ButtonKleur] [r=.2,g=.2,b=.6] -\definecolor [TekstKleur] [r=.6,g=.2,b=.2] - -\definecolor [colorprettyone] [r=.6,g=.0,b=.0] % red -\definecolor [colorprettytwo] [r=.0,g=.6,b=.0] % green -\definecolor [colorprettythree] [r=.0,g=.0,b=.6] % blue -\definecolor [colorprettyfour] [r=.6,g=.6,b=.0] % yellow - -\setupinteraction - [state=start, - page=yes, - contrastcolor=, - menu=on, - color=] - -\setupbackgrounds - [page] - [background=color, - backgroundcolor=AchtergrondKleur, - offset=2.5pt] % this offset influences the menus! - -\setupbackgrounds - [text,footer] - [text,leftmargin] - [background=color, - backgroundcolor=white] - -\setupsubpagenumber - [way=bysection, - state=start] - -\setupinteractionbar - [frame=off, - offset=0pt, - height=fit] - -\setupwhitespace - [big] - -\setuptyping - [typing] - [option=color] - -\setuptyping - [definition] - [option=color] - -\setuptyping - [file] - [option=color] - -\setuppagenumbering - [alternative=singlesided, - way=bysection, - state=none] - -\setupinmargin - [location=left] - -\setupheads - [alternative=inmargin] - -\setuphead - [chapter] - [style=\ssc, - page=right] - -\setuphead - [section] - [style=\ssb, - page=right] - -\setuplist - [chapter] - [style=bold, - after=\blank] - -\setupcontent - [width=2em] - -\setupindex - [balance=yes, - indicator=no] - -\setupcolors - [state=start] - -\def\TitelBlad#1% - {\startstandardmakeup - \definefont[GrootFont] [SansBold at 72pt] - \definefont[MiddelFont][Sans at 32pt] - \definefont[KleinFont] [Sans at 24pt] - \startcolor[AchtergrondKleur] - \vskip12pt - \midaligned{\GrootFont\setstrut\strut Con\TeX t} - \vskip24pt - \midaligned{\MiddelFont\setstrut\strut #1} - \vskip24pt - \midaligned{\KleinFont\setstrut\strut Hans Hagen} - \vfilll - \midaligned{\KleinFont\setstrut\strut PRAGMA ADE} - \vskip24pt - \midaligned{\KleinFont\setstrut\strut www.pragma-ade.com --- \currentdate} - \vskip12pt - \stopcolor - \stopstandardmakeup} - -\def\ColofonBlad - {\startmode[atpragma] - \page - \bgroup - \def\PragmaHoogte {\makeupheight} - \def\PragmaBreedte{\textwidth} - \def\PragmaKopwit {\topspace} - \def\PragmaRugwit {\backspace} - \def\PragmaMarge {0pt} - \PragmaLijnentrue - \PlaatsPragmaLogo[ADE] - \vfill - todo: colofon - \startnarrower[3*middle] - This is the official documentation of \CONTEXT\ version - \referraldate, a \TEX\ macropackage developed by J.~Hagen - \& A.F.~Otten, who both hold the copyrights. - \stopnarrower - \vfill - \page - \egroup - \stopmode} - -\def\ColofonBlad - {} - -\newbox\ListOfItems -\newbox\ListOfGroups -\newbox\ListOfNames - -\definelist[FileNames] \def\FileName {} -\definelist[FileGroups] \def\FileGroup {} -\definelist[GroupItems] \def\GroupItem {} - -\setuplist - [FileNames,FileGroups,FileGroups] - [expansion=yes, - pagenumber=no, - style=\ss\bf] - -\setuplist - [FileNames] - [command=\FileNameEntry, - after=\endgraf, - alternative=none] % horizontal - -\setuplist - [FileGroups] - [command=\FileGroupEntry, - after=\hss, - alternative=horizontal] - -\def\FileNameEntry#1#2#3% - {\strut\hbox{#2}\endgraf} - -\def\FileGroupEntry#1#2#3% - {\strut\hbox{#2}\endgraf} - -\def\MakeListOfItems - {\setbox\ListOfItems=\vbox - {\ss\bf - \placelist[GroupItems][color=ButtonKleur,contrastcolor=white,criterium=chapter]}} - -\def\MakeListOfNames - {\setbox\ListOfNames=\vbox - {\hsize\rightedgewidth - \ss\bf\setupinterlinespace - \startsimplecolumns[distance=10pt] - \placelist[FileNames][color=ButtonKleur,contrastcolor=white,criterium=chapter] - \stopsimplecolumns}} - -\def\MakeListOfGroups - {\setbox\ListOfGroups=\hbox to \textwidth - {\ss\bf - \setupinteraction[color=ButtonKleur]% - \placelist[FileGroups][color=ButtonKleur,contrastcolor=white,criterium=all]\unskip\unskip}} - -\setbox\ListOfGroups=\hbox{} - -%\setupfootertexts -% [rand] -% [] -% [{\interactiebalk[variant=g]}] - -\setupinteractionmenu - [right,bottom] - [state=start, - frame=off, - color=AchtergrondKleur, - contrastcolor=white, - style=\ss\bf, - height=15pt, - offset=0pt, - inbetween=\vskip5pt, - background=color, - backgroundcolor=ButtonKleur] - -\startinteractionmenu[right] - \boxofsize \vbox \textheight \footerdistance \footerheight 5pt - \bgroup - \copy\ListOfNames - \vfill - \but [\FileGroup:content] local contents \\ - \but [\FileName:index] local register \\ - \but [PaperVersion::begin] paper version \\ - \but [content] main contents \\ - \but [index] main register \\ - \but [PreviousJump] previous jump \\ - \but [CloseDocument] close document \\ - \unskip - \egroup -\stopinteractionmenu - -\startinteractionmenu[bottom] - \unhcopy\ListOfGroups -\stopinteractionmenu - -\def\placemoduleregister - {\startbackmatter - \setupsubpagenumber[reset] - \title[-:index]{Register} - \placeregister[index] - \stopbackmatter} - -\def\placemodulecontent - {\startfrontmatter - \title[-:content]{Contents} - \setupinteractionbar[state=stop] - \placecontent[criterium=text,level=chapter] - \stopfrontmatter} - -\setupcontent - [pagenumber=no, - level=chapter, - interaction=all, - style=, - before=, - after=] - -\setupfootertexts - [margin] - [\tt\Modulefile] - [] - -\setupfootertexts - [text] - [chapter][chapter] - -\setupindex - [symbol=1] - -\setuptolerance - [verytolerant] - -\endinput diff --git a/tex/context/base/type-otf.mkiv b/tex/context/base/type-otf.mkiv index 4d6f00bfe..c9b4857bb 100644 --- a/tex/context/base/type-otf.mkiv +++ b/tex/context/base/type-otf.mkiv @@ -1712,6 +1712,7 @@ \definefontsynonym [Libertine-Italic] [\s!file:fxlri] \definefontsynonym [Libertine-Bold] [\s!file:fxlb] \definefontsynonym [Libertine-BoldItalic] [\s!file:fxlbi] + \definefontsynonym [Libertine-SmallCaps] [\s!file:fxlr] [\s!features=\s!smallcaps] \stoptypescript \starttypescript [serif] [libertine] [name] diff --git a/tex/generic/context/luatex-fonts-merged.lua b/tex/generic/context/luatex-fonts-merged.lua index 890e2bac4..a182687cd 100644 --- a/tex/generic/context/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 12/22/10 20:19:01 +-- merge date : 12/31/10 08:59:52 do -- begin closure to overcome local limits and interference diff --git a/tex/generic/context/luatex-mplib.lua b/tex/generic/context/luatex-mplib.lua new file mode 100644 index 000000000..c6628acb3 --- /dev/null +++ b/tex/generic/context/luatex-mplib.lua @@ -0,0 +1,491 @@ +if not modules then modules = { } end modules ['luatex-mplib'] = { + version = 1.001, + comment = "companion to luatex-mplib.tex", + author = "Hans Hagen & Taco Hoekwater", + copyright = "ConTeXt Development Team", + license = "public domain", +} + +--[[ldx-- +

This module is a stripped down version of libraries that are used +by . It can be used in other macro packages and/or +serve as an example. Embedding in a macro package is upto others and +normally boils down to inputting supp-mpl.tex.

+--ldx]]-- + +if metapost and metapost.version then + + --[[ldx-- +

Let's silently quit and make sure that no one loads it + manually in .

+ --ldx]]-- + +else + + local format, concat, abs, match = string.format, table.concat, math.abs, string.match + + local mplib = require ('mplib') + local kpse = require ('kpse') + + --[[ldx-- +

We create a namespace and some variables to it. If a namespace is + already defined it wil not be initialized. This permits hooking + in code beforehand.

+ +

We don't make a format automatically. After all, distributions + might have their own preferences and normally a format (mem) file will + have some special place in the tree. Also, there can already + be format files, different memort settings and other nasty pitfalls that + we don't want to interfere with. If you want, you can define a function + metapost.make(name,mem_name) that does the job.

+ --ldx]]-- + + metapost = metapost or { } + metapost.version = 1.00 + metapost.showlog = metapost.showlog or false + metapost.lastlog = "" + + --[[ldx-- +

A few helpers, taken from l-file.lua.

+ --ldx]]-- + + local file = file or { } + + function file.replacesuffix(filename, suffix) + return (string.gsub(filename,"%.[%a%d]+$","")) .. "." .. suffix + end + + function file.stripsuffix(filename) + return (string.gsub(filename,"%.[%a%d]+$","")) + end + + --[[ldx-- +

We use the library unless a finder is already + defined.

+ --ldx]]-- + + local mpkpse = kpse.new("luatex","mpost") + + metapost.finder = metapost.finder or function(name, mode, ftype) + if mode == "w" then + return name + else + return mpkpse:find_file(name,ftype) + end + end + + --[[ldx-- +

You can use your own reported if needed, as long as it handles multiple + arguments and formatted strings.

+ --ldx]]-- + + metapost.report = metapost.report or function(...) + texio.write(format("",format(...))) + end + + --[[ldx-- +

The rest of this module is not documented. More info can be found in the + manual, articles in user group journals and the files that + ship with .

+ --ldx]]-- + + function metapost.resetlastlog() + metapost.lastlog = "" + end + + local mplibone = tonumber(mplib.version()) <= 1.50 + + if mplibone then + + metapost.make = metapost.make or function(name,mem_name,dump) + local t = os.clock() + local mpx = mplib.new { + ini_version = true, + find_file = metapost.finder, + job_name = file.stripsuffix(name) + } + mpx:execute(string.format("input %s ;",name)) + if dump then + mpx:execute("dump ;") + metapost.report("format %s made and dumped for %s in %0.3f seconds",mem_name,name,os.clock()-t) + else + metapost.report("%s read in %0.3f seconds",name,os.clock()-t) + end + return mpx + end + + function metapost.load(name) + local mem_name = file.replacesuffix(name,"mem") + local mpx = mplib.new { + ini_version = false, + mem_name = mem_name, + find_file = metapost.finder + } + if not mpx and type(metapost.make) == "function" then + -- when i have time i'll locate the format and dump + mpx = metapost.make(name,mem_name) + end + if mpx then + metapost.report("using format %s",mem_name,false) + return mpx, nil + else + return nil, { status = 99, error = "out of memory or invalid format" } + end + end + + else + + local preamble = [[ + boolean mplib ; mplib := true ; + let dump = endinput ; + input %s ; + ]] + + metapost.make = metapost.make or function() + end + + function metapost.load(name) + local mpx = mplib.new { + ini_version = true, + find_file = metapost.finder, + } + local result + if not mpx then + result = { status = 99, error = "out of memory"} + else + result = mpx:execute(format(preamble, file.replacesuffix(name,"mp"))) + end + metapost.reporterror(result) + return mpx, result + end + + end + + function metapost.unload(mpx) + if mpx then + mpx:finish() + end + end + + function metapost.reporterror(result) + if not result then + metapost.report("mp error: no result object returned") + elseif result.status > 0 then + local t, e, l = result.term, result.error, result.log + if t then + metapost.report("mp terminal: %s",t) + end + if e then + metapost.report("mp error: %s", e) + end + if not t and not e and l then + metapost.lastlog = metapost.lastlog .. "\n " .. l + metapost.report("mp log: %s",l) + else + metapost.report("mp error: unknown, no error, terminal or log messages") + end + else + return false + end + return true + end + + function metapost.process(mpx, data) + local converted, result = false, {} + mpx = metapost.load(mpx) + if mpx and data then + local result = mpx:execute(data) + if not result then + metapost.report("mp error: no result object returned") + elseif result.status > 0 then + metapost.report("mp error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error")) + elseif metapost.showlog then + metapost.lastlog = metapost.lastlog .. "\n" .. result.term + metapost.report("mp info: %s",result.term or "no-term") + elseif result.fig then + converted = metapost.convert(result) + else + metapost.report("mp error: unknown error, maybe no beginfig/endfig") + end + else + metapost.report("mp error: mem file not found") + end + return converted, result + end + + local function getobjects(result,figure,f) + return figure:objects() + end + + function metapost.convert(result, flusher) + metapost.flush(result, flusher) + return true -- done + end + + --[[ldx-- +

We removed some message and tracing code. We might even remove the flusher

+ --ldx]]-- + + local function pdf_startfigure(n,llx,lly,urx,ury) + tex.sprint(format("\\startMPLIBtoPDF{%s}{%s}{%s}{%s}",llx,lly,urx,ury)) + end + + local function pdf_stopfigure() + tex.sprint("\\stopMPLIBtoPDF") + end + + function pdf_literalcode(fmt,...) -- table + tex.sprint(format("\\MPLIBtoPDF{%s}",format(fmt,...))) + end + + function pdf_textfigure(font,size,text,width,height,depth) + text = text:gsub(".","\\hbox{%1}") -- kerning happens in metapost + tex.sprint(format("\\MPLIBtextext{%s}{%s}{%s}{%s}{%s}",font,size,text,0,-( 7200/ 7227)/65536*depth)) + end + + local bend_tolerance = 131/65536 + + local rx, sx, sy, ry, tx, ty, divider = 1, 0, 0, 1, 0, 0, 1 + + local function pen_characteristics(object) + local t = mplib.pen_info(object) + rx, ry, sx, sy, tx, ty = t.rx, t.ry, t.sx, t.sy, t.tx, t.ty + divider = sx*sy - rx*ry + return not (sx==1 and rx==0 and ry==0 and sy==1 and tx==0 and ty==0), t.width + end + + local function concat(px, py) -- no tx, ty here + return (sy*px-ry*py)/divider,(sx*py-rx*px)/divider + end + + local function curved(ith,pth) + local d = pth.left_x - ith.right_x + if abs(ith.right_x - ith.x_coord - d) <= bend_tolerance and abs(pth.x_coord - pth.left_x - d) <= bend_tolerance then + d = pth.left_y - ith.right_y + if abs(ith.right_y - ith.y_coord - d) <= bend_tolerance and abs(pth.y_coord - pth.left_y - d) <= bend_tolerance then + return false + end + end + return true + end + + local function flushnormalpath(path,open) + local pth, ith + for i=1,#path do + pth = path[i] + if not ith then + pdf_literalcode("%f %f m",pth.x_coord,pth.y_coord) + elseif curved(ith,pth) then + pdf_literalcode("%f %f %f %f %f %f c",ith.right_x,ith.right_y,pth.left_x,pth.left_y,pth.x_coord,pth.y_coord) + else + pdf_literalcode("%f %f l",pth.x_coord,pth.y_coord) + end + ith = pth + end + if not open then + local one = path[1] + if curved(pth,one) then + pdf_literalcode("%f %f %f %f %f %f c",pth.right_x,pth.right_y,one.left_x,one.left_y,one.x_coord,one.y_coord ) + else + pdf_literalcode("%f %f l",one.x_coord,one.y_coord) + end + elseif #path == 1 then + -- special case .. draw point + local one = path[1] + pdf_literalcode("%f %f l",one.x_coord,one.y_coord) + end + return t + end + + local function flushconcatpath(path,open) + pdf_literalcode("%f %f %f %f %f %f cm", sx, rx, ry, sy, tx ,ty) + local pth, ith + for i=1,#path do + pth = path[i] + if not ith then + pdf_literalcode("%f %f m",concat(pth.x_coord,pth.y_coord)) + elseif curved(ith,pth) then + local a, b = concat(ith.right_x,ith.right_y) + local c, d = concat(pth.left_x,pth.left_y) + pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concat(pth.x_coord, pth.y_coord)) + else + pdf_literalcode("%f %f l",concat(pth.x_coord, pth.y_coord)) + end + ith = pth + end + if not open then + local one = path[1] + if curved(pth,one) then + local a, b = concat(pth.right_x,pth.right_y) + local c, d = concat(one.left_x,one.left_y) + pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concat(one.x_coord, one.y_coord)) + else + pdf_literalcode("%f %f l",concat(one.x_coord,one.y_coord)) + end + elseif #path == 1 then + -- special case .. draw point + local one = path[1] + pdf_literalcode("%f %f l",concat(one.x_coord,one.y_coord)) + end + return t + end + + --[[ldx-- +

Support for specials has been removed.

+ --ldx]]-- + + function metapost.flush(result,flusher) + if result then + local figures = result.fig + if figures then + for f=1, #figures do + metapost.report("flushing figure %s",f) + local figure = figures[f] + local objects = getobjects(result,figure,f) + local fignum = tonumber(match(figure:filename(),"([%d]+)$") or figure:charcode() or 0) + local miterlimit, linecap, linejoin, dashed = -1, -1, -1, false + local bbox = figure:boundingbox() + local llx, lly, urx, ury = bbox[1], bbox[2], bbox[3], bbox[4] -- faster than unpack + if urx < llx then + -- invalid + pdf_startfigure(fignum,0,0,0,0) + pdf_stopfigure() + else + pdf_startfigure(fignum,llx,lly,urx,ury) + pdf_literalcode("q") + if objects then + for o=1,#objects do + local object = objects[o] + local objecttype = object.type + if objecttype == "start_bounds" or objecttype == "stop_bounds" then + -- skip + elseif objecttype == "start_clip" then + pdf_literalcode("q") + flushnormalpath(object.path,t,false) + pdf_literalcode("W n") + elseif objecttype == "stop_clip" then + pdf_literalcode("Q") + miterlimit, linecap, linejoin, dashed = -1, -1, -1, false + elseif objecttype == "special" then + -- not supported + elseif objecttype == "text" then + local ot = object.transform -- 3,4,5,6,1,2 + pdf_literalcode("q %f %f %f %f %f %f cm",ot[3],ot[4],ot[5],ot[6],ot[1],ot[2]) + pdf_textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth) + pdf_literalcode("Q") + else + local cs = object.color + if cs and #cs > 0 then + pdf_literalcode(metapost.colorconverter(cs)) + end + local ml = object.miterlimit + if ml and ml ~= miterlimit then + miterlimit = ml + pdf_literalcode("%f M",ml) + end + local lj = object.linejoin + if lj and lj ~= linejoin then + linejoin = lj + pdf_literalcode("%i j",lj) + end + local lc = object.linecap + if lc and lc ~= linecap then + linecap = lc + pdf_literalcode("%i J",lc) + end + local dl = object.dash + if dl then + local d = format("[%s] %i d",concat(dl.dashes or {}," "),dl.offset) + if d ~= dashed then + dashed = d + pdf_literalcode(dashed) + end + elseif dashed then + pdf_literalcode("[] 0 d") + dashed = false + end + local path = object.path + local transformed, penwidth = false, 1 + local open = path and path[1].left_type and path[#path].right_type + local pen = object.pen + if pen then + if pen.type == 'elliptical' then + transformed, penwidth = pen_characteristics(object) -- boolean, value + pdf_literalcode("%f w",penwidth) + if objecttype == 'fill' then + objecttype = 'both' + end + else -- calculated by mplib itself + objecttype = 'fill' + end + end + if transformed then + pdf_literalcode("q") + end + if path then + if transformed then + flushconcatpath(path,open) + else + flushnormalpath(path,open) + end + if objecttype == "fill" then + pdf_literalcode("h f") + elseif objecttype == "outline" then + pdf_literalcode((open and "S") or "h S") + elseif objecttype == "both" then + pdf_literalcode("h B") + end + end + if transformed then + pdf_literalcode("Q") + end + local path = object.htap + if path then + if transformed then + pdf_literalcode("q") + end + if transformed then + flushconcatpath(path,open) + else + flushnormalpath(path,open) + end + if objecttype == "fill" then + pdf_literalcode("h f") + elseif objecttype == "outline" then + pdf_literalcode((open and "S") or "h S") + elseif objecttype == "both" then + pdf_literalcode("h B") + end + if transformed then + pdf_literalcode("Q") + end + end + if cr then + pdf_literalcode(cr) + end + end + end + end + pdf_literalcode("Q") + pdf_stopfigure() + end + end + end + end + end + + function metapost.colorconverter(cr) + local n = #cr + if n == 4 then + local c, m, y, k = cr[1], cr[2], cr[3], cr[4] + return format("%.3f %.3f %.3f %.3f k %.3f %.3f %.3f %.3f K",c,m,y,k,c,m,y,k), "0 g 0 G" + elseif n == 3 then + local r, g, b = cr[1], cr[2], cr[3] + return format("%.3f %.3f %.3f rg %.3f %.3f %.3f RG",r,g,b,r,g,b), "0 g 0 G" + else + local s = cr[1] + return format("%.3f g %.3f G",s,s), "0 g 0 G" + end + end + +end -- cgit v1.2.3