summaryrefslogtreecommitdiff
path: root/tex/context/base/meta-fig.mkii
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2010-07-04 15:32:09 +0300
committerMarius <mariausol@gmail.com>2010-07-04 15:32:09 +0300
commit85b7bc695629926641c7cb752fd478adfdf374f3 (patch)
tree80293f5aaa7b95a500a78392c39688d8ee7a32fc /tex/context/base/meta-fig.mkii
downloadcontext-85b7bc695629926641c7cb752fd478adfdf374f3.tar.gz
stable 2010-05-24 13:10
Diffstat (limited to 'tex/context/base/meta-fig.mkii')
-rw-r--r--tex/context/base/meta-fig.mkii89
1 files changed, 89 insertions, 0 deletions
diff --git a/tex/context/base/meta-fig.mkii b/tex/context/base/meta-fig.mkii
new file mode 100644
index 000000000..3edd73b57
--- /dev/null
+++ b/tex/context/base/meta-fig.mkii
@@ -0,0 +1,89 @@
+%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 \starttyping
+%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 \stoptyping
+%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[\??mg]
+
+\def\setupMPpage
+ {\dodoubleargument\getparameters[\??mg]}
+
+\def\startMPpage
+ {\dodoubleempty\dostartMPpage}
+
+\long\def\dostartMPpage[#1][#2]% second arg gobbles space
+ {\dostartfittingpage[\??mg][#1]%
+ \obeyMPlines
+ \dodostartMPpage}
+
+\long\def\dodostartMPpage#1\stopMPpage
+ {\startuseMPgraphic{@@}#1\stopuseMPgraphic
+ \useMPgraphic{@@}%
+ \dostopfittingpage}
+
+\let\stopMPpage \relax % so that we can use it in \expanded
+
+\setupMPpage
+ [\c!scale=1000,
+ \c!strut=\v!no,
+ \c!align=,
+ \c!offset=\v!overlay,
+ \c!width=\v!fit,
+ \c!height=\v!fit,
+ \c!frame=\v!off]
+
+%D \macros
+%D {MPfigure}
+%D
+%D A bit out of place, here but nevertheless:
+
+\def\MPfigure#1#2% test for dup figure
+ {\bgroup
+ \getfiguredimensionsonly[#1]% [\c!object=\v!no] already set
+ \startMPcode
+ externalfigure "#1"
+ xscaled \figurewidth\space
+ yscaled \figureheight\space
+ #2 ;
+ \stopMPcode
+ \egroup}
+
+\protect \endinput