diff options
Diffstat (limited to 'tex/context/base/meta-fig.tex')
-rw-r--r-- | tex/context/base/meta-fig.tex | 85 |
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 |