Tex Program Sample1
Tex Program Sample1
\startMPenvironment[+]
\enableregime[il1]
\mainlanguage[de]
\setupencoding[default=texnansi]
\setupcolors[state=start,expansion=yes]
\setupcolors[rgb=no,spot=no,cmyk=no]
\setupsystem[random=261]
\stopMPenvironment
\definecolor[bgnd][s=.75]
\startMPinclusions
input figur
background := \MPcolor{bgnd} ;
lineposSetForPage := -1;
\stopMPinclusions
\setuppagenumbering[location=,state=stop]
% grey background
\startuseMPgraphic{grey}
StartPage;
fill Page enlarged 1cm withcolor background;
BoundPageAreas;
\stopuseMPgraphic
% the artists
% It would have been cleaner to draw all the lines
% in one go, but MetaPost's memory limits can't be
% increased far enough. So, this code is called
% often enough, communicating through the global
% variable linepos. This implies texexec must
% be called with --automp.
\startuseMPgraphic{bgnd}
save width, height, hordist;
StartPage;
if lineposSetForPage < PageNumber :
linepos := -1cm;
lineposSetForPage := PageNumber;
fi;
background := lightgray;
width = \overlaywidth;
height = \overlayheight;
hordist = 2cm;
interim truecorners := 1;
for lineno := 0 upto 5 :
exitif linepos > width + height;
picture line;
line := nullpicture;
addto line doublepath
((0, 0) -- (-height, -height)) shifted
ulcorner Page
withpen pencircle scaled .5pt;
% start at the top
y1 := abs(normaldeviate*0.5*hordist) - min(0, linepos - width);
x1 := y1;
forever:
picture img;
numeric rnd;
rnd = uniformdeviate(4.29);
if rnd < .9 :
% message "diabolo ";
img = diabolo_front rotated 45;
fi; % elseif doesn't work for some reason
if (unknown img) and (rnd < 1.3):
% message "juggler_front ";
img = juggler_front rotated 45;
fi;
if (unknown img) and (rnd < 1.5):
forever :
num := 3 + abs(2 + 3*normaldeviate);
exitif num < 12;
endfor;
% message "juggler_side_balls("&decimal(num)&") ";
img = juggler_side_balls(num) rotated 45;
fi;
if (unknown img) and (rnd < 1.7):
forever :
num := 3 + abs(2 + 3*normaldeviate);
exitif num < 12;
endfor;
% message "juggler_side_balls("&decimal(num)&") ";
img = juggler_side_balls(num) xscaled -1 rotated 45;
fi;
if (unknown img) and (rnd < 1.9):
forever:
num := 3 + abs(2 + 3*normaldeviate);
exitif num < 10;
endfor;
% message "juggler_side_clubs("&decimal(num)&") ";
img = juggler_side_clubs(num) rotated 45;
fi;
if (unknown img) and (rnd < 2.1):
forever:
num := 3 + abs(2 + 3*normaldeviate);
exitif num < 10;
endfor;
% message "juggler_side_clubs("&decimal(num)&") ";
img = juggler_side_clubs(num) xscaled -1 rotated 45;
fi;
if unknown img and (rnd < 2.7) :
forever:
num := 6 + abs(4 * normaldeviate);
exitif num < 20;
endfor;
% message "juggler_passing("&decimal(num)&") ";
img = juggler_passing(num) rotated 45;
fi;
if unknown img and (rnd < 2.85) :
% message "poi ";
img = poi_side rotated 45;
fi;
if unknown img and (rnd < 3) :
% message "poi ";
img = poi_side xscaled -1 rotated 45;
fi;
if unknown img and (rnd < 3.3) :
% message "rope ";
img = rope_walker rotated 45;
fi;
if unknown img and (rnd < 3.5) :
% message "rope ";
img = rope_walker xscaled -1 rotated 45;
fi;
picture img_nonrot;
if unknown img and (rnd < 3.7) :
% message "flieger ";
img = acro_flieger rotated 45;
fi;
if unknown img and (rnd < 3.9) :
% message "flieger ";
img = acro_flieger xscaled -1 rotated 45;
fi;
if unknown img and (rnd < 4.1) :
% message "bolk ";
img = acro_bolk rotated 45;
fi;
if unknown img and (rnd < 4.3) :
% message "bolk ";
img = acro_bolk xscaled -1 rotated 45;
fi;
picture img_nonrot;
img_nonrot = img rotated -45;
%% for debugging:
% addto line doublepath (ulcorner Page + z1) withpen pencircle scaled 4pt
% withcolor green;
numeric h;
h = .6*((xpart lrcorner img_nonrot) - (xpart llcorner img_nonrot));
\defineoverlay[bgnd][\useMPgraphic{bgnd}]
\definelayer[content][width=\textwidth,x=1cm,
height=\textheight,y=1cm]
\setupbackgrounds[page][background={color,
bgnd,bgnd,bgnd,bgnd,
brighten,content},
backgroundcolor=bgnd,backgroundoffset=1cm]
\starttext
\newdimen\contwidth
\newdimen\borderdist
\getfiguredimensionsonly[content][page=1]
\contwidth=\naturalfigurewidth
\borderdist=\dimexpr(148mm-\naturalfigurewidth)/2\relax
\getfiguredimensionsonly[Postkarte][width=\contwidth]
\expanded{\setupMPvariables[brighten]
[xLeft=\the\dimexpr\borderdist-3mm\relax,
PostkarteTop=\the\dimexpr\borderdist-3mm\relax,
colwidth=\the\dimexpr\figurewidth+6mm\relax,
PostkarteHeight=\the\dimexpr\figureheight+6mm\relax,
Borderdist=\the\borderdist]}
\expanded{\setupMPvariables[brighten2]
[xLeft=\the\dimexpr\borderdist-3mm\relax,
PostkarteTop=\the\dimexpr\borderdist-3mm\relax,
colwidth=\the\dimexpr\figurewidth+6mm\relax,
PostkarteHeight=\the\dimexpr\figureheight+6mm\relax,
Borderdist=\the\borderdist]}
\expanded{\setupMPvariables[whitebar]
[xLeft=\the\dimexpr\borderdist-3mm\relax,
PostkarteTop=\the\dimexpr\borderdist-3mm\relax,
colwidth=\the\dimexpr\figurewidth+6mm\relax,
PostkarteHeight=\the\dimexpr\figureheight+6mm\relax,
Borderdist=\the\borderdist]}
\setlayerframed[content][preset=topleft,align={middle,lohi},
width=148mm,height=105mm,
x=\dimexpr1cm+\borderdist\relax,
y=\dimexpr1cm+\borderdist\relax]
[frame=off]
{\externalfigure[Postkarte][width=\contwidth]}
\setlayerframed[content][preset=topleft,
x=\dimexpr1cm+\borderdist\relax,
y=\dimexpr1cm+105mm+\borderdist\relax]
[frame=off]
{\externalfigure[content][page=1]}
\getfiguredimensionsonly[Sparkasse][height=85mm]
\setlayerframed[content][preset=leftbottom,align={middle,lohi},
width=297mm,height=105mm,
hoffset=\dimexpr(297mm-\figurewidth)/2\relax,
voffset=\dimexpr\borderdist-2cm\relax]
[frame=off]
{\externalfigure[Sparkasse][height=95mm]}
\setlayerframed[content][preset=topleft,
x=\dimexpr1cm+148.5mm+\borderdist\relax,
y=\dimexpr1cm+\borderdist-2mm\relax]
[frame=off]
{\rotate[rotation=180]{\externalfigure[content][page=2]}}
\hbox{}
\page
\defineoverlay[brighten][\useMPgraphic{brighten2}]
\setlayerframed[content][preset=topleft,
offset=\borderdist\relax]
[frame=off]
{\externalfigure[hueter][width=\contwidth]}
\getfiguredimensionsonly[hueter][width=\contwidth]
\expanded{\setlayerframed[content][preset=topleft,
hoffset=\borderdist,
voffset=\the\dimexpr\borderdist+\figureheight+8mm\relax]}
[frame=off]
{\externalfigure[content][page=3]}
\setlayerframed[content][preset=leftbottom,
hoffset=\dimexpr\borderdist+45mm\relax,
voffset=\dimexpr\borderdist-2.5cm\relax]
[frame=off]
{\externalfigure[TicketDirekt][width=180mm]}
\setlayerframed[content][preset=topleft,
x=\dimexpr1cm+148.5mm+\borderdist\relax,
y=\dimexpr1cm+\borderdist\relax]
[frame=off]
{\rotate[rotation=180]{\externalfigure[content][page=4]}}
\setlayerframed[content][preset=topleft,
x=\dimexpr1cm+148.5mm+\borderdist\relax,
y=\dimexpr1cm+\borderdist\relax]
[frame=off]
{\rotate[rotation=180]{\externalfigure[Igges][width=\contwidth]}}
\hbox{}
\stoptext