summaryrefslogtreecommitdiff
path: root/tex/context/base/meta-fig.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/meta-fig.tex')
-rw-r--r--tex/context/base/meta-fig.tex85
1 files changed, 85 insertions, 0 deletions
diff --git a/tex/context/base/meta-fig.tex b/tex/context/base/meta-fig.tex
new file mode 100644
index 000000000..c282f36c7
--- /dev/null
+++ b/tex/context/base/meta-fig.tex
@@ -0,0 +1,85 @@
+%D \module
+%D [ file=meta-fig,
+%D version=2000.09.07,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Stand Alone Graphics,
+%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.
+
+\writestatus{loading}{MetaPost Graphics / Stand Alone Graphics}
+
+\unprotect
+
+%D This module implements a method for defining
+%D stand||alone||graphics, that is, each graphic gets is own
+%D page. Because graphics are wrapped in a \type {\framed},
+%D you can add overlays to the graphic directly, and since the
+%D whole \CONTEXT\ machinery is available, you can also add
+%D page backgrounds.
+%D
+%D \starttypen
+%D \setupMPpage
+%D [offset=1pt,
+%D background=color,
+%D backgroundcolor=green]
+%D
+%D \startMPpage
+%D fill fullcircle scaled 10cm withcolor red ;
+%D \stopMPpage
+%D
+%D \startMPpage
+%D fill fullsquare rotated 45 scaled 8cm withcolor blue ;
+%D \stopMPpage
+%D \stoptypen
+%D
+%D Although this is hardly of any use, you can mix these
+%D definitions with the text flow, since all settings are
+%D kept local. The page is clipped to the image size.
+
+\presetlocalframed[\??mp]
+
+\def\setupMPpage%
+ {\dodoubleargument\getparameters[\??mp]}
+
+\def\startMPpage%
+ {\dosingleempty\dostartMPpage}
+
+\long\def\dostartMPpage[#1]#2\stopMPpage
+ {\page
+ \bgroup
+ \setbox\scratchbox=\hbox
+ {\localframed[\??mp][#1]{\startMPcode#2\stopMPcode}}
+ \edef\MPwd{\the\wd\scratchbox}
+ \edef\MPht{\the\ht\scratchbox}
+ \definepapersize
+ [\s!dummy]
+ [\c!breedte=\MPwd,
+ \c!hoogte=\MPht]
+ \startlocal % keep settings as local as can be
+ \setuppapersize
+ [\s!dummy][\s!dummy]
+ \setuplayout
+ [\c!breedte=\MPwd,\c!hoogte=\MPht,
+ \c!kopwit=\!!zeropoint,\c!rugwit=\!!zeropoint,
+ \c!snijwit=\!!zeropoint,\c!bodemwit=\!!zeropoint,
+ \c!hoofd=\!!zeropoint,\c!voet=\!!zeropoint]
+ \stoplocal % which saves us the trouble of push/pop
+ \startstandardmakeup
+ \centerbox{\box\scratchbox}
+ \stopstandardmakeup
+ \egroup}
+
+\setupMPpage
+ [\c!strut=\v!nee,
+ \c!uitlijnen=,
+ \c!offset=\v!overlay,
+ \c!breedte=\v!passend,
+ \c!hoogte=\v!passend,
+ \c!kader=\v!uit]
+
+\protect \endinput