diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/m-pstric.tex')
-rw-r--r-- | Master/texmf-dist/tex/context/base/m-pstric.tex | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/m-pstric.tex b/Master/texmf-dist/tex/context/base/m-pstric.tex new file mode 100644 index 00000000000..707984d288f --- /dev/null +++ b/Master/texmf-dist/tex/context/base/m-pstric.tex @@ -0,0 +1,113 @@ +%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] + +\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 + +%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{ps2pdf \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}} + +\protect \endinput |