summaryrefslogtreecommitdiff
path: root/tex/context/modules/mkiv
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2016-09-12 18:59:25 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2016-09-12 18:59:25 +0200
commite713d5aa882024dc438506c2f75eae6c5021a237 (patch)
tree28b00d15bb7d6c219d42deda996f6610747eca67 /tex/context/modules/mkiv
parentfbf22006525c920e93b9f671c2af3d4df2be902e (diff)
downloadcontext-e713d5aa882024dc438506c2f75eae6c5021a237.tar.gz
2016-09-12 18:31:00
Diffstat (limited to 'tex/context/modules/mkiv')
-rw-r--r--tex/context/modules/mkiv/m-chart.lua10
-rw-r--r--tex/context/modules/mkiv/m-chart.mkvi4
-rw-r--r--tex/context/modules/mkiv/m-visual.mkiv101
-rw-r--r--tex/context/modules/mkiv/s-mag-01.mkiv505
4 files changed, 569 insertions, 51 deletions
diff --git a/tex/context/modules/mkiv/m-chart.lua b/tex/context/modules/mkiv/m-chart.lua
index 66f2b4c5f..549b3c213 100644
--- a/tex/context/modules/mkiv/m-chart.lua
+++ b/tex/context/modules/mkiv/m-chart.lua
@@ -433,6 +433,7 @@ function commands.flow_set_location(x,y)
if type(x) == "string" and not y then
x, y = lpegmatch(splitter,x)
end
+ local oldx, oldy = x, y
if not x or x == "" then
x = last_x
elseif type(x) == "number" then
@@ -459,6 +460,15 @@ function commands.flow_set_location(x,y)
else
y = tonumber(y)
end
+ if x < 1 or y < 1 then
+ report_chart("the cell (%s,%s) ends up at (%s,%s) and gets relocated to (1,1)",oldx or"?", oldy or "?", x,y)
+ if x < 1 then
+ x = 1
+ end
+ if y < 1 then
+ y = 1
+ end
+ end
temp.x = x or 1
temp.y = y or 1
temp.realx = x or 1
diff --git a/tex/context/modules/mkiv/m-chart.mkvi b/tex/context/modules/mkiv/m-chart.mkvi
index a1def7065..69d90f47b 100644
--- a/tex/context/modules/mkiv/m-chart.mkvi
+++ b/tex/context/modules/mkiv/m-chart.mkvi
@@ -253,11 +253,11 @@
\unexpanded\def\FLOWcharts
{\dodoubleempty\FLOW_charts}
-\def\FLOW_charts[#name][#settings]
+\def\FLOW_charts[#name][#settings]%
{\begingroup
\setupFLOWchart[\c!split=\v!yes]%
\setupFLOWsplit[#settings]%
- \module_charts_process[#name][]% \FLOWchart...
+ \FLOWchart[#name]%
\endgroup}
\appendtoks
diff --git a/tex/context/modules/mkiv/m-visual.mkiv b/tex/context/modules/mkiv/m-visual.mkiv
index 01fae49e2..17d679452 100644
--- a/tex/context/modules/mkiv/m-visual.mkiv
+++ b/tex/context/modules/mkiv/m-visual.mkiv
@@ -14,7 +14,8 @@
\unprotect
%D Much will probably be replaced by \LUA\ based solutions which is
-%D rather trivial and fun doing.
+%D rather trivial and fun doing. A lot here makes no sense any more,
+%D for instance whatsits are not used.
%D This module collect a few more visual debugger features. I
%D needed them for manuals and styles. The macros are documented
@@ -24,13 +25,18 @@
\definecolor[fakebaselinecolor] [green]
\definecolor[fakeparindentcolor][blue]
-\newif\iffakebaseline \fakebaselinetrue
-\newif\iffaketrigger \faketriggerfalse
+\newif \iffakebaseline \fakebaselinetrue
+\newif \iffaketrigger \faketriggerfalse
+\newdimen \fakerulewidth \fakerulewidth=.2pt
\unexpanded\def\fakerule#1%
{\strut
\begingroup
- \directcolored[fakerulecolor]%
+ \ifx\fakerulecolor\relax
+ \directcolored[fr\recurselevel c]%
+ \else
+ \directcolored[fakerulecolor]%
+ \fi
\iffakebaseline
\vrule\s!height1.25\exheight\s!depth-.05\exheight\s!width#1%
\kern-#1%
@@ -75,7 +81,8 @@
fr8c=darkorange]
\unexpanded\def\onlyfakewords#1#2% min max / 10 40
- {\getrandomcount\scratchcounter{\ifcase0#1 10\else#1\fi}{\ifcase0#2 40\else#2\fi}%
+ {\ifvmode\noindentation\fi
+ \getrandomcount\scratchcounter{\ifcase0#1 10\else#1\fi}{\ifcase0#2 40\else#2\fi}%
\dofakewords\scratchcounter
} % no \par
@@ -102,7 +109,7 @@
\def\doshowfakewords#1%
{\bgroup
\setuppalet[fakerule]%
- \definecolor[fakerulecolor]%
+ \let\fakerulecolor\relax
\dorecurse{#1}
{\getrandomcount\scratchcounter{1}{5}%
\dorecurse\scratchcounter
@@ -141,19 +148,17 @@
\def\dofakedroppedcaps
{\setbox\scratchbox\hpack
{\setbox\scratchbox\hpack{W}%
- \scratchdimen#1\lineheight
- \advance\scratchdimen -\lineheight
- \advance\scratchdimen \dp\strutbox
+ \scratchdimen\dimexpr#1\lineheight-\lineheight+\dp\strutbox\relax
\vrule
\s!width#1\wd\scratchbox
\s!height\ht\scratchbox
\s!depth\scratchdimen}%
\ht\scratchbox\ht\strutbox
\dp\scratchbox\dp\strutbox
- \hangindent\wd\scratchbox
- \advance\hangindent .5em
+ \hangindent\dimexpr\wd\scratchbox+.5\emwidth\relax
\wd\scratchbox\hangindent
- \hangafter-#1\noindent
+ \hangafter-#1%
+ \noindent
\llap{\fakeparindentcolor\box\scratchbox}}%
\fi}
@@ -169,13 +174,15 @@
\doifelseinset{#1}{\v!left,\v!right}
{\fakewords{2}{4}}
{\fakewords{4}{10}}}%
- {\doifinset{#1}{\v!left,\v!right}
- {\dimen0=.75\dimen0
- \ifdim\dimen0>.6\hsize \dimen0=.5\hsize\fi
- \ifdim\dimen0<.3\hsize \dimen0=.3\hsize\fi}%
+ {\getrandomdimen\scratchdimenone{#3}{#4}%
+ \getrandomdimen\scratchdimentwo{#5}{#6}%
+ \doifinset{#1}{\v!left,\v!right}
+ {\scratchdimenone.75\scratchdimenone
+ \ifdim\scratchdimenone>.6\hsize \scratchdimenone.5\hsize\fi
+ \ifdim\scratchdimenone<.3\hsize \scratchdimenone.3\hsize\fi}%
\framed
- [\c!width=\dimen0,
- \c!height=\dimen2,
+ [\c!width=\scratchdimenone,
+ \c!height=\scratchdimentwo,
\c!frame=\v!off,
\c!background=\v!color,
\c!backgroundcolor=fakeparindentcolor]
@@ -183,25 +190,25 @@
\defrostrandomseed}
\unexpanded\def\fakeimage#1#2#3#4%
- {\getrandomdimen{\dimen0}{#1}{#3}%
- \getrandomdimen{\dimen2}{#2}{#4}%
+ {\getrandomdimen\scratchdimenone{#1}{#3}%
+ \getrandomdimen\scratchdimentwo{#2}{#4}%
\framed
- [\c!width=\dimen0,
- \c!height=\dimen2,
+ [\c!width=\scratchdimenone,
+ \c!height=\scratchdimentwo,
\c!frame=\v!off,
\c!background=\v!color,
\c!backgroundcolor=fakeparindentcolor]
{}}
\unexpanded\def\fakeformula
- {\dimen0\zeropoint
+ {\scratchdimenone\zeropoint
\getrandomcount\scratchcounter{3}{6}%
\dorecurse\scratchcounter
- {\getrandomdimen\scratchdimen{0.5em}{1.5em}%
- \mathord{\red\fakerule\scratchdimen}%
+ {\getrandomdimen\scratchdimentwo{0.5\emwidth}{1.5\emwidth}%
+ \mathord{\red\fakerule\scratchdimentwo}%
\ifnum\recurselevel<\scratchcounter+\fi
- \advance\scratchdimen\dimen0}%
- =\mathinner{\red\fakerule\scratchdimen}}
+ \advance\scratchdimentwo\scratchdimenone}%
+ =\mathinner{\red\fakerule\scratchdimentwo}}
\unexpanded\def\fakespacingformula
{\color[fakebaselinecolor]{\ruledbaseline}\fakeformula}
@@ -306,11 +313,10 @@
\scratchdimen#1\relax
\dontinterfere
\dontcomplain
- %boxrulewidth5\testrulewidth
#3#4\relax
\setbox\scratchbox\normalhbox to \scratchdimen
{#2{\ruledhbox to \scratchdimen
- {\vrule #5 20\testrulewidth \s!width \zeropoint
+ {\vrule #5 20\fakerulewidth \s!width \zeropoint
\normalhss}}}%
\smashbox\scratchbox
\normalpenalty\plustenthousand
@@ -321,8 +327,7 @@
{\ifdim\hangindent>\zeropoint
\ifnum\hangafter<\zerocount
\normalhbox
- {%boxrulewidth5\testrulewidth
- \setbox\scratchbox\ruledhbox to \hangindent
+ {\setbox\scratchbox\ruledhbox to \hangindent
{\scratchdimen\strutht
\advance\scratchdimen \strutdp
\vrule
@@ -354,7 +359,7 @@
\unexpanded\def\ruledpar
{\relax
\ifhmode
- \showparagraphcue{40\testrulewidth}\relax\rightrulefalse\relax\s!height
+ \showparagraphcue{40\fakerulewidth}\relax\rightrulefalse\relax\s!height
\fi
\normalpar}
@@ -362,7 +367,7 @@
{\relax
\normalnoindent
\ruledparagraphcues
- \showparagraphcue{40\testrulewidth}\llap\leftrulefalse\relax\s!height}
+ \showparagraphcue{40\fakerulewidth}\llap\leftrulefalse\relax\s!height}
\unexpanded\def\ruledindent
{\relax
@@ -371,7 +376,7 @@
\ifdim\parindent>\zeropoint
\showparagraphcue\parindent\relax\relax\relax\s!height
\else
- \showparagraphcue{40\testrulewidth}\llap\relax\relax\s!height
+ \showparagraphcue{40\fakerulewidth}\llap\relax\relax\s!height
\fi
\normalhskip\parindent}
@@ -381,10 +386,9 @@
\let\par \normalpar}
\unexpanded\def\showimplicits
- {\testrulewidth \defaulttestrulewidth
- \let\noindent \rulednoindent
- \let\indent \ruledindent
- \let\par \ruledpar}
+ {\let\noindent \rulednoindent
+ \let\indent \ruledindent
+ \let\par \ruledpar}
%D The next few||line examples show the four cues. Keep in
%D mind that we only see them when we explicitly open or close
@@ -434,8 +438,8 @@
\normalhbox
{\strut
\vrule
- \s!height \testrulewidth
- \s!depth \testrulewidth
+ \s!height \fakerulewidth
+ \s!depth \fakerulewidth
\s!width 120\points}
\normalvfill}%
\smashbox\scratchbox
@@ -452,8 +456,7 @@
\egroup}
\unexpanded\def\showbaselines
- {\testrulewidth\defaulttestrulewidth
- \EveryPar{\ruledbaseline}}
+ {\EveryPar{\ruledbaseline}}
%D \macros
%D {showpagebuilder}
@@ -504,7 +507,7 @@
{\vss\hpack to 3em{\hss#2\hss}\vss}%
\fi}}
-\def\colorrangeA#1%
+\unexpanded\def\colorrangeA#1%
{\vpack
{\startcolor[\s!white]%
\scratchdimen\dimexpr(-\colormarklength*4+\tractempheight+\tractempdepth)/21\relax
@@ -526,7 +529,7 @@
{\vss\hpack to \scratchdimen{\hss#1\hss}\vss}%
\fi}
-\def\colorrangeB
+\unexpanded\def\colorrangeB
{\hpack
{\startcolor[\s!white]%
\scratchdimen\dimexpr(-\colormarklength*\plustwo+\tractempwidth)/11\relax
@@ -553,7 +556,7 @@
{\vss\hpack to \scratchdimen{\hss#1\hss}\vss}%
\fi}
-\def\colorrangeC
+\unexpanded\def\colorrangeC
{\hpack
{\startcolor[\s!white]%
\scratchdimen\dimexpr(-\colormarklength*2+\tractempwidth)/14\relax
@@ -641,10 +644,10 @@
\let\supernormalmarks \normalmarks % mark may already been superseded
\unexpanded\def\showwhatsits
- {\protected\def\normalmark {\visualwhatsit100+m\supernormalmark }%
- \protected\def\normalmarks{\visualwhatsit100+m\supernormalmarks}%
- \protected\def\special {\visualwhatsit0100s\normalspecial }%
- \protected\def\write {\visualwhatsit001-w\normalwrite }%
+ {\unexpanded\def\normalmark {\visualwhatsit100+m\supernormalmark }%
+ \unexpanded\def\normalmarks{\visualwhatsit100+m\supernormalmarks}%
+ \unexpanded\def\special {\visualwhatsit0100s\normalspecial }%
+ \unexpanded\def\write {\visualwhatsit001-w\normalwrite }%
\let\immediate\immediatewhatsit
\appendtoks\dontshowwhatsits\to\everystoptext}
diff --git a/tex/context/modules/mkiv/s-mag-01.mkiv b/tex/context/modules/mkiv/s-mag-01.mkiv
new file mode 100644
index 000000000..7191d760c
--- /dev/null
+++ b/tex/context/modules/mkiv/s-mag-01.mkiv
@@ -0,0 +1,505 @@
+%D \module
+%D [ file=s-mag-01,
+%D version=2016.09.12, % mkiv version of 2002.12.14,
+%D title=\CONTEXT\ Style File,
+%D subtitle=\CONTEXT\ Magazine Base Style,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This style is used for producing explanationary documents. Don't misuse it for
+%D other purposes, since it may confuse users. Don't change the title either, since
+%D it provides a way to categorize documents. Numbers are disabled in instances
+%D produced outside PRAGMA ADE.
+%D
+%D The layout setup is such that one has several text areas available: headers and
+%D footers, margins and edges as well as the main text area. The surrounding (gray)
+%D makes the main page stand out and is suitable for viewing in spread mode.
+%D
+%D Since this style is under constant construction, messing around with settings
+%D will produce unwanted side effects. So, if some feature or settings is needed,
+%D let me know.
+
+% These are reserved for PRAGMA-ADE, don't use them yourself!
+
+% \setupdocument[main=Tricky]
+% \setupdocument[main=Update]
+% \setupdocument[main=HOWTO]
+
+% \setupdocument[main=This Way] % preludes to a/the manual
+% \setupdocument[main=A Better Way] % dirty versus clean
+% \setupdocument[main=No Way] % how users should not do it
+% \setupdocument[main=Your Way] % how users do it
+% \setupdocument[main=My Way] % how users do it
+% \setupdocument[main=Our Way] % how we do things at pragma
+% \setupdocument[main=Their Way] % how to do latex things in context
+
+\usemodule[narrowtt,scite]
+
+\definepapersize
+ [magazine]
+ [width=\dimexpr\paperwidth-.1\paperwidth\relax,
+ height=\dimexpr\paperheight-.1\paperheight\relax]
+
+\setuppapersize
+ [magazine]
+ [A4]
+
+\setupinteractionscreen
+ [option=doublesided]
+
+\setupexternalfigures
+ [location={local,default}]
+
+\definecolor[OuterColor][s=.3]
+\definecolor[InnerColor][s=.8]
+\definecolor[MainColor] [s=.2]
+\definecolor[TitleColor][s=.9]
+
+\definecolor[MyRed] [r=.6]
+\definecolor[MyGreen][g=.6]
+\definecolor[MyBlue] [b=.6]
+
+\startreusableMPgraphic{middlepaper}
+ fill OverlayBox
+ withshademethod "circular"
+ withshadecenter center (0.5,0.5)
+ withshadecolors ("InnerColor","OuterColor") ;
+\stopreusableMPgraphic
+
+\startreusableMPgraphic{rightpaper}
+ fill OverlayBox
+ withshademethod "circular"
+ withshadecenter center (0,0.5)
+ withshadecolors ("InnerColor","OuterColor") ;
+\stopreusableMPgraphic
+
+\startreusableMPgraphic{leftpaper}
+ fill OverlayBox
+ withshademethod "circular"
+ withshadecenter center (1,0.5)
+ withshadecolors ("InnerColor","OuterColor") ;
+\stopreusableMPgraphic
+
+\startreusableMPgraphic{page}
+ fill OverlayBox withcolor white ;
+\stopreusableMPgraphic
+
+\startusableMPgraphic{text}
+ StartPage ;
+ for i = Header,Text,Footer :
+ for j = LeftEdge, LeftMargin, Text, RightMargin, RightEdge :
+ draw Field[i][j] withpen pencircle scaled .5pt ;
+ endfor ;
+ endfor ;
+ StopPage ;
+ setbounds currentpicture to Field[Text][Text] ;
+\stopusableMPgraphic
+
+\startsetups[paper]
+
+ \doifmodeelse{*makeup} {
+ \reuseMPgraphic{middlepaper}
+ } {
+ \doifoddpageelse {
+ \reuseMPgraphic{rightpaper}
+ } {
+ \reuseMPgraphic{leftpaper}}
+ }
+
+\stopsetups
+
+\defineoverlay[paper] [\setups{paper}]
+\defineoverlay[page] [\reuseMPgraphic{page}]
+\defineoverlay[text] [\doifmode{frame}{\useMPgraphic{text}}]
+
+\setupbackgrounds [paper] [background=paper]
+\setupbackgrounds [page] [background={page,title}]
+\setupbackgrounds [text] [background=text]
+
+\definelayer
+ [title]
+ [state=repeat,
+ hoffset=-1cm,
+ voffset=1cm,
+ width=\paperwidth,
+ height=\paperheight]
+
+\setuplayout
+ [width=middle,
+ topspace=1.5cm,
+ height=middle,
+ header=1.5cm,
+ footer=1cm,
+ %grid=yes,
+ headerdistance=.25cm,
+ footerdistance=.5cm,
+ backspace=3cm,
+ margin=1.5cm,
+ margindistance=.25cm,
+ edge=.75cm,
+ edgedistance=.25cm,
+ bottomdistance=1.5cm,
+ bottom=.1\printpaperheight]
+
+\definelayout
+ [listing]
+ [backspace=15mm,
+ curspace=15mm]
+
+\definelayout
+ [makeup]
+ [topspace=1cm,
+ backspace=1cm,
+ header=0pt,
+ footer=0pt,
+ bottom=0pt]
+
+\setuppagenumbering
+ [alternative=doublesided]
+
+\setupbodyfont
+ [pagella,10pt]
+
+\setuptolerance
+ [verytolerant,stretch]
+
+\appendtoks
+ \setups[papershift]%
+\to \beforeeverypage
+
+\startsetups[papershift]
+
+ \setuppapersize[top=\vskip.5cm,bottom=\vss]
+
+ \doifmodeelse{*makeup} {
+ \setuppapersize[left=\hfill,right=\hfill]
+ } {
+ \doifoddpageelse {
+ \setuppapersize[right=\hfill]
+ } {
+ \setuppapersize[left=\hfill]
+ }
+ }
+
+\stopsetups
+
+\setupbottomtexts
+ [\setups{rightbanner}] []
+ [] [\setups{leftbanner}]
+
+\startsetups [leftbanner]
+
+ \definedfont[Regular*default at \the\bottomheight]
+
+ \TitleColor
+
+ \setbox\scratchbox\hbox {
+ \documentvariable{main}
+ }
+ \ht\scratchbox\exheight
+ \dp\scratchbox\zeropoint
+
+ \definedfont[Regular*default sa 2]
+ \doifsomething {\documentvariable{number}} {
+ \doifnot {\documentvariable{number}} {0} {
+ \#\documentvariable{number}
+ }
+ }
+ \quad
+ \currentdate
+ \quad
+ \scale
+ [height=.25\bottomheight]
+ {\box\scratchbox}
+ \quad
+ \hbox to 1.5em{\hss\pagenumber\hss}
+ \quad
+ \hskip-\backspace
+
+\stopsetups
+
+\startsetups [rightbanner]
+
+ \definedfont[Regular*default at \the\bottomheight]
+
+ \TitleColor
+
+ \setbox\scratchbox\hbox {
+ \documentvariable{main}
+ }
+ \ht\scratchbox\exheight
+ \dp\scratchbox\zeropoint
+
+ \hskip-\backspace
+ \definedfont[Regular*default sa 2]
+ \quad
+ \hbox to 1.5em{\hss\pagenumber\hss}
+ \quad
+ \scale
+ [height=.25\bottomheight]
+ {\box\scratchbox}
+ \quad
+ \currentdate
+ \quad
+ \doifmode {atpragma} {
+ \#\documentvariable{number}
+ }
+
+\stopsetups
+
+\startsetups[titlepage]
+
+ \disablemode[frame]
+
+ \doifmode {atpragma} {
+ \definecolor[pragmacolor] [r=1,g=.62,b=.06] % (Pantone 138 CV)
+ \definecolor[OuterColor][.3(\documentvariable{color})]
+ }
+
+ \setuplayout[makeup]
+
+ \startstandardmakeup[doublesided=no]
+
+ \dontcomplain
+
+ \definelayer
+ [makeup]
+ [width=\textwidth,
+ height=\textheight]
+
+ \setlayerframed [
+ makeup
+ ] [
+ corner={left,top},
+ location={right,bottom}
+ ] [
+ frame=off,
+ foregroundcolor=MainColor
+ ] {
+ \scale
+ [width=\makeupwidth]
+ {
+ \definedfont[Regular*default sa 10]
+ \documentvariable{main}
+ }
+ }
+
+ \setlayerframed [
+ makeup
+ ] [
+ corner={right,top},
+ location={left},
+ y=.4\textheight
+ ] [
+ frame=off,
+ foregroundcolor=MainColor,
+ width=\textwidth,
+ align=left
+ ] {
+ \definedfont[Regular*default sa 2.5]
+ \setupinterlinespace
+ \startmode[atpragma]
+ \strut \ConTeXt\ magazine \#\documentvariable{number}\endgraf
+ \stopmode
+ \strut \documentvariable{date} \endgraf
+ \blank
+ \strut \documentvariable{title}\endgraf
+ \doifsomething {\documentvariable{author}} {
+ \strut \documentvariable{author}\endgraf
+ }
+ \doifsomething {\documentvariable{affiliation}} {
+ \strut \documentvariable{affiliation}\endgraf
+ }
+ }
+
+ \setlayerframed [
+ makeup
+ ] [
+ corner={right,bottom},
+ location={left,top}
+ ] [
+ frame=off,
+ align=normal,
+ width=.8\textwidth,
+ foregroundcolor=MainColor
+ ] {
+ \getbuffer[abstract]
+ }
+
+ \flushlayer[makeup]
+
+ \stopstandardmakeup
+
+ \setuplayout[reset]
+
+\stopsetups
+
+\startsetups[cleanup]
+
+ \page
+
+ \setuptexttexts
+ [margin]
+ [] []
+
+\stopsetups
+
+\startsetups[listing]
+
+ \page \disablemode[frame]
+
+ \setuptexttexts [][] \setuptexttexts []
+ \setupheadertexts[][] \setupheadertexts[source code of this document]
+ \setupfootertexts[][] \setupfootertexts[]
+
+ \setuplayout[listing]
+
+ \start
+
+ \dontcomplain
+
+ \switchtobodyfont[8pt]
+
+ \scitefile[\jobfilefullname]
+
+ \page
+
+ \stop
+
+ \setuplayout
+
+\stopsetups
+
+\startsetups[lastpage]
+
+ \page \disablemode[frame] \page[even]
+
+ \doifoddpageelse {
+ } {
+ \setuplayout[makeup]
+ \startstandardmakeup[doublesided=no,page=]
+ \stopstandardmakeup
+ \setuplayout[reset]
+ }
+
+\stopsetups
+
+\startsetups[title]
+
+ \disablemode[frame]
+
+ \setlayerframed [
+ title
+ ] [
+ corner={left,top},
+ location={left,bottom},
+ rotation=90
+ ] [
+ frame=off,
+ foregroundcolor=TitleColor
+ ] {
+ \definedfont[RegularBold*default sa 2]
+ \strut\documentvariable{title}
+ }
+
+ \setlayerframed [
+ title
+ ] [
+ corner={right,top},
+ rotation=270
+ ] [
+ frame=off,
+ foregroundcolor=TitleColor
+ ] {
+ \definedfont[RegularBold*default sa 2]
+ \strut\documentvariable{title}
+ }
+
+ \doifsomething {\documentvariable{subtitle}} {
+ \setupheadertexts[\documentvariable{subtitle}]
+ }
+
+\stopsetups
+
+\startbuffer[abstract]
+ % no abstract
+\stopbuffer
+
+\setuphead
+ [chapter]
+ [page=yes,
+ after={\blank[2*big]},
+ color=MainColor,
+ style=\bfc]
+
+\setuphead
+ [section]
+ [before={\blank[2*big]},
+ after=\blank,
+ color=MainColor,
+ style=\bfb]
+
+\setuphead
+ [subsection]
+ [before=\blank,
+ after=,
+ color=MainColor,
+ style=\bf]
+
+\setupwhitespace
+ [big]
+
+\definetyping[xtyping] [style=\ttx]
+\definetyping[xxtyping][style=\ttxx]
+
+\definetyping[ntyping] \setuptyping[ntyping][style=\narrowtt]
+\definetype [ntype] \setuptype [ntype] [style=\narrowtt]
+
+\setupdocument
+ [main={\doifelsemode{atpragma}{This Way}{My Way}},
+ %color=pragmacolor,
+ title={No Title},
+ subtitle=,
+ author={No Author},
+ affiliation=,
+ date={No Date},
+ number=0,
+ before={\setups[titlepage,title]},
+ after={\setups[cleanup,listing,lastpage]}]
+
+\continueifinputfile {s-mag-01.mkiv}
+
+\startbuffer[abstract]
+ This is the zero issue of a semi periodical. The associated style can be used
+ by \CONTEXT\ users to typeset and publish their own issues.
+\stopbuffer
+
+\startdocument
+ [title={Introduction},
+ subtitle={Welcome},
+ author={Hans Hagen},
+ affiliation=PRAGMA ADE,
+ date=Januari 2003,
+ number=0 \MKIV]
+
+This is the zero issue of a range of \CONTEXT\ related publications, in most
+cases short introductions to new functionality. The style may be used by users
+for providing similar documents, but preferably not for other purposes, since it
+may confuse readers in their expectations.
+
+We've chosen a layout which is more functional than beautiful. This layout
+provides several text areas: headers and footers, margins and edges as well as a
+main text area. The surrounding (gray or color) makes the main page (which is
+slightly smaller than A4) stand out and is suitable for viewing in spread mode.
+
+The documents produced at \PRAGMA\ are called {\bf This Way}, user documents gets
+the title {\bf My Way}. The \PRAGMA\ issues are numbered. We strongly advise you
+not to use the \type {mag-} prefix for your issues, since this may lead to
+clashes with files distributed by \PRAGMA.
+
+\stopdocument