From 66a814af45f6ebe7ff0210238b2b9eba7dd3a499 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Thu, 18 Mar 2010 14:42:00 +0100 Subject: beta 2010.03.18 14:42 --- tex/context/base/m-pstricks.mkii | 123 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 tex/context/base/m-pstricks.mkii (limited to 'tex/context/base/m-pstricks.mkii') diff --git a/tex/context/base/m-pstricks.mkii b/tex/context/base/m-pstricks.mkii new file mode 100644 index 000000000..384812ecc --- /dev/null +++ b/tex/context/base/m-pstricks.mkii @@ -0,0 +1,123 @@ +%D \module +%D [ file=m-pstricks, +%D version=1997.01.15, +%D title=\CONTEXT\ Extra Modules, +%D subtitle=\PSTRICKS\ Connections, +%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. + +%M \usemodule[pstric] + +\letvalue{@unused}\plussixteen +\letvalue{alloc@}\gobblefivearguments + +\chardef\oldbarcode\the\catcode`\| \catcode`\|=12 + +\def\loadpstrickscolors#1% + {\pushmacro\dodefinecolor + \pushmacro\dodefinepalet + \pushmacro\dodefinecolorgroup + \def\dodefinecolor[##1][##2]% + {\doifassignmentelse{##2} + {\getparameters[pstricks][r=0,g=0,b=0,##2]% + \expanded{\newrgbcolor{##1}{{\pstricksr} {\pstricksg} {\pstricksb}}}}% + {}}% + \def\dodefinepalet [##1][##2]{}% + \def\dodefinecolorgroup[##1][##2][##3]{}% + \writestatus{pstricks}{loading colors from #1}% + \input #1 \relax + \popmacro\dodefinecolorgroup + \popmacro\dodefinepalet + \popmacro\dodefinecolor} + +\doifelse{\jobsuffix}{dvi} + {\input multido \relax + \input pstricks \relax + \input pst-plot \relax + \loadpstrickscolors{colo-rgb}} + {\writestatus{pstricks}{using indirect method; enable write18}} + +\catcode`\|=\oldbarcode + +\def\loadpstricksmodule[#1]% + {\chardef\oldbarcode\the\catcode`\| + \catcode`\|=12 + \readfile{#1}{}{}% + \catcode`\|=\oldbarcode} + +%D The next piece of code is for John Culleton who suggested to +%D handle \PSTRICKS\ in a similar fashion as \METAPOST, i.e.\ +%D using a child process. For the moment there is no support +%D for passing environments, so these should be called +%D explicitly inside this environment. + +\unprotect + +%D \startPSTRICKS[offset=2pt] ... \stopPSTRICKS +%D +%D works in both dvi and pdf mode +%D +%D % \usemodule[pstric] +%D +%D \startPSTRICKS +%D \pspicture(0,0)(10,10) +%D \dorecurse{10}{\psline(0,0)(\recurselevel,10)} +%D \dorecurse{10}{\psline(0,0)(10,\recurselevel)} +%D \endpspicture +%D \stopPSTRICKS + +\def\startPSTRICKS + {\dosingleempty\dostartPSTRICKS} + +% \ifx\startTEXapplication\undefined +% +% \long\def\dostartPSTRICKS[#1]#2\stopPSTRICKS +% {\doifelse{\jobsuffix}{dvi} +% {#2} +% {\bgroup +% \setbuffer[pstricks]% +% \usemodule[pstric]% +% \setbox\scratchbox\hbox{#2}% +% % There is probably a nicer way to handle this +% \immediate\openout\scratchwrite=\bufferprefix dim.tmp +% \immediate\write\scratchwrite{\dimen0=\the\ht\scratchbox}% +% \immediate\write\scratchwrite{\dimen2=\the\wd\scratchbox}% +% \immediate\closeout\scratchwrite +% % Quick and dirty +% \startTEXpage[#1]\box\scratchbox\stopTEXpage +% \endbuffer +% % Here we go! +% %\immediate\write18{texexec \bufferprefix pstricks.tmp --once --batch}% +% %\immediate\write18{dvips -G0 -Ppdf \bufferprefix pstricks -o}% +% %\immediate\write18{ps2pdf \bufferprefix pstricks.ps \bufferprefix pstricks.pdf}% +% \executesystemcommand{texexec \bufferprefix pstricks.tmp --once --batch}% +% \executesystemcommand{dvips -G0 -Ppdf \bufferprefix pstricks -o}% +% \executesystemcommand{texmfstart pstopdf \bufferprefix pstricks.ps \bufferprefix pstricks.pdf}% +% % We pick up the dimensions from the scratch file. +% \readlocfile{\bufferprefix pstricks-dim.tmp}{}{}% +% % Since the graphic is put on a page (sigh) by dvips/gs +% % we need to shift it around a bit. +% \setbox\scratchbox\hbox +% {\externalfigure[\bufferprefix pstricks.pdf][\c!object=\v!no]}% +% \setbox\scratchbox\hbox +% {\lower\ht\scratchbox\hbox{\raise\dimen2\box\scratchbox}}% +% \wd\scratchbox\dimen0 +% \ht\scratchbox\dimen2 +% \dp\scratchbox\zeropoint +% \box\scratchbox +% \egroup}} +% +% \fi + +\long\def\dostartPSTRICKS[#1]#2\stopPSTRICKS + {\doifelse{\jobsuffix}{dvi} % will some day move to app as switch + {\hbox{#2}} +% {\startTEXapplication[#1]{\usemodule[pstric]}#2\stopTEXapplication}} + {\startTEXapplication[#1]{}#2\stopTEXapplication}} + +\protect \endinput -- cgit v1.2.3