summaryrefslogtreecommitdiff
path: root/tex/context/base/supp-mps.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2004-01-13 00:00:00 +0100
committerHans Hagen <pragma@wxs.nl>2004-01-13 00:00:00 +0100
commit0b61aa2fbf3667649962132eadfb1d78eab0be41 (patch)
tree781defc3254dcfbcb708a2c46e33ea9c0495c54d /tex/context/base/supp-mps.tex
parent722c56251cf3c197a4a8474aa7024265ba284ec0 (diff)
downloadcontext-0b61aa2fbf3667649962132eadfb1d78eab0be41.tar.gz
stable 2004.01.13
Diffstat (limited to 'tex/context/base/supp-mps.tex')
-rw-r--r--tex/context/base/supp-mps.tex176
1 files changed, 94 insertions, 82 deletions
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 7e37bf1b4..ca56f6eaf 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -46,7 +46,7 @@
\def\@@MPG{@MPG@}
-%D First we define a handy constant:
+%D First we define a handy constant:
\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
@@ -64,7 +64,7 @@
%D This is implemented as:
\long\def\startMPgraphic#1\stopMPgraphic
- {\checkMPTEXgraphic{#1}% % potential speedup: pass #1 as macro
+ {\checkMPTEXgraphic{#1}% % potential speedup: pass #1 as macro
\startwritingMPgraphic
\writeMPgraphic{#1}%
\stopwritingMPgraphic}
@@ -207,17 +207,17 @@
\newtoks \MPinitializations
-% buggy
+% buggy
%
% \long\def\startMPinclusions#1\stopMPinclusions
% {\long\def\theMPinclusions
-% {% \expanded !
+% {% \expanded !
% \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
% \writeMPgraphic{#1}}}
\long\def\startMPinclusions#1\stopMPinclusions
{\long\def\theMPinclusions
- {% \expanded !
+ {% \expanded !
% \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
\writeMPgraphic{#1}}}
@@ -318,13 +318,13 @@
\newif\ifforceMPTEXgraphic
-%D Before we supported the graph module, we had:
+%D Before we supported the graph module, we had:
%D
-%D \starttypen
+%D \starttypen
%D \convertargument etex\to\MPasciiB
%D \convertargument textext\to\MPasciiC % geen "text"
%D \convertargument graphictext\to\MPasciiD % geen "text"
-%D
+%D
%D \long\def\checkMPTEXgraphic#1%
%D {\ifforceMPTEXgraphic
%D \global\MPTEXgraphictrue
@@ -335,10 +335,10 @@
%D {\doifstringinstringelse\MPasciiD\MPasciiA{\global\MPTEXgraphictrue}
%D {\global\MPTEXgraphicfalse}}}%
%D \fi}
-%D \stoptypen
+%D \stoptypen
%D
%D The next alternative permits extensions in other modules
-%D without the need to know the details of testing.
+%D without the need to know the details of testing.
\newtoks\MPTEXgrapicchecks
@@ -351,10 +351,10 @@
\the\MPTEXgrapicchecks\relax
\fi}
-%D We could have used a kind of array approach using a
-%D counter appended to \type {MPascii}, but this is an
-%D as efficient alternative. (The uglyness comes from
-%D expanding after the string \type {#1}).
+%D We could have used a kind of array approach using a
+%D counter appended to \type {MPascii}, but this is an
+%D as efficient alternative. (The uglyness comes from
+%D expanding after the string \type {#1}).
\def\forceMPTEXcheck#1%
{\expanded{\convertargument#1\noexpand\to
@@ -368,6 +368,18 @@
\forceMPTEXcheck{textext}
\forceMPTEXcheck{graphictext}
+%D \starttypen
+%D \forceMPTEXgraphictrue
+%D
+%D \forceMPTEXcheck{lintext}
+%D \forceMPTEXcheck{logtext}
+%D
+%D \startMPcode
+%D draw hlintext.lft(0, 20, 5, 20cm, "@3e") ;
+%D draw vlogtext.bot(0, 10, 9, 10cm, "@3e") ;
+%D \stopMPcode
+%D \stoptypen
+
\def\flushMPTEXgraphic
{\ifMPTEXgraphic \ifx\everyMPTEXgraphic\emptytoks \else
\immediate\write\MPwrite{verbatimtex \the\everyMPTEXgraphic\space etex;}%
@@ -380,7 +392,7 @@
\fi}
% the next one fails on btex \vbox {\hbox .. leading to \vbox \hbox
-%
+%
% \long\def\dodowriteMPgraphicline#1tex #2#3etex#4\MPend
% {\ifx\next\empty\else\ifx\next\relax\else
% \bgroup
@@ -400,8 +412,8 @@
% \dowriteMPgraphicline#4tex \relax etex\MPend
% \fi
% \fi\fi}
-%
-% so we need a two step approach
+%
+% so we need a two step approach
\long\def\dodowriteMPgraphicline#1tex %
{\doifnextcharelse\relax
@@ -444,19 +456,19 @@
\newtoks\everyMPgraphic \everyMPgraphic{\everyMPgraphic\emptytoks}
-\ifx\blabelgroup\undefined
+\ifx\blabelgroup\undefined
- \let\blabelgroup\bgroup
+ \let\blabelgroup\bgroup
\let\elabelgroup\egroup
\fi
\newconditional\firstMPgraphic \settrue\firstMPgraphic
-\appendtoks
+\appendtoks
\let \# \letterhash
\let \_ \letterunderscore
- \let \& \letterampersand
+ \let \& \letterampersand
\let \{ \letteropenbrace
\let \} \letterclosebrace
\to \everyMPgraphic
@@ -466,16 +478,16 @@
\beginTEX
-\ifx \honorunexpanded \undefined \else % not really needed
+\ifx \honorunexpanded \undefined \else % not really needed
\prependtoks \honorunexpanded \to \everyMPgraphic
-\fi
+\fi
\endTEX
-% buggy (at least in collected graphics, lazy expansion)
+% buggy (at least in collected graphics, lazy expansion)
%
% \def\startwritingMPgraphic
% {\blabelgroup
-% \global\advance\nofMPgraphics 1
+% \global\advance\nofMPgraphics 1
% \ifMPrun \else
% \allocateMPslot\currentMPgraphic
% \fi
@@ -485,12 +497,12 @@
% \ifrunMPgraphics
% \openMPgraphicfile1{runtime}%
% % no reset here !
-% \theMPinclusions
+% \theMPinclusions
% \else
-% \openMPgraphicfile0{collected}%
+% \openMPgraphicfile0{collected}%
% % reset here ! global added (due to adding \blabelgroup)
-% \theMPinclusions
-% \global\let\theMPinclusions\relax
+% \theMPinclusions
+% \global\let\theMPinclusions\relax
% \fi
% \flushMPTEXgraphic
% \ifMPrun \else
@@ -502,7 +514,7 @@
\def\startwritingMPgraphic
{\blabelgroup
- \global\advance\nofMPgraphics 1
+ \global\advance\nofMPgraphics 1
\ifMPrun \else
\allocateMPslot\currentMPgraphic
\fi
@@ -512,13 +524,13 @@
\ifrunMPgraphics
\openMPgraphicfile1{runtime}%
% no reset here !
- \theMPinclusions
+ \theMPinclusions
\@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
\else
- \openMPgraphicfile0{collected}%
+ \openMPgraphicfile0{collected}%
% reset here ! global added (due to adding \blabelgroup)
- \theMPinclusions
- \global\let\theMPinclusions\relax
+ \theMPinclusions
+ \global\let\theMPinclusions\relax
\fi
\flushMPTEXgraphic
\ifMPrun \else
@@ -539,9 +551,9 @@
% \@EA\newwrite\csname\@@MPG\@@MPG\MPgraphicfile\endcsname}%
% {\ifcase#1\donefalse\else\donetrue\fi}%
\@EA\ifx\csname\@@MPG\@@MPG\MPgraphicfile\endcsname\relax
- %\donetrue \@EA\newwrite\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
- % for the sake of plain usage
- \donetrue \@EA\@EA\csname newwrite\endcsname\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
+ %\donetrue \@EA\newwrite\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
+ % for the sake of plain usage
+ \donetrue \@EA\@EA\csname newwrite\endcsname\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
\doglobal\addtocommalist\MPgraphicfile\MPgraphicfiles
\else
\ifcase#1\relax\donefalse\else\donetrue\fi
@@ -588,7 +600,7 @@
\def\closeMPgraphicfiles
{\ifrunMPgraphics \else \ifx\MPgraphicsfiles\empty\else
- \def\docommando##1%
+ \def\docommando##1%
{\message{[flush and process ##1.mp afterwards]}%
\@EA\let\@EA\MPwrite\csname\@@MPG\@@MPG##1\endcsname
\finishwritingMPgraphics}%
@@ -604,26 +616,26 @@
\def \allocateMPslot#1{\global\advance#1 1 }
\def\deallocateMPslot#1{}
-%D \macros
+%D \macros
%D {translateMPinput}
%D
-%D For my polish friends:
+%D For my polish friends:
%D
-%D \starttypen
-%D % translate=il2-pl
+%D \starttypen
+%D % translate=il2-pl
%D
%D \translateMPinput{il2-pl}
%D
-%D \startMPenvironment[global]
-%D \setupbodyfont[plr]
-%D \stopMPenvironment
+%D \startMPenvironment[global]
+%D \setupbodyfont[plr]
+%D \stopMPenvironment
%D
-%D \TeX: ± ¶
+%D \TeX: ± ¶
%D
%D \startMPcode
-%D draw btex MetaPost: ± ¶ etex scaled 5 ;
+%D draw btex MetaPost: ± ¶ etex scaled 5 ;
%D \stopMPcode
-%D \stoptypen
+%D \stoptypen
\def\translateMPinput#1%
{\xdef\MPinputtranslation{\letterpercent -translate-file=#1\space}}
@@ -705,7 +717,7 @@
% \box\MPgraphicbox
% \fi}
%
-% experimental:
+% experimental:
\def\placeMPgraphic
{\ifMPshiftdrawing
@@ -728,9 +740,9 @@
\newif\ifuseMPbox \useMPboxtrue
-%D We assume that one can set objects:
-%D
-%D \starttypen
+%D We assume that one can set objects:
+%D
+%D \starttypen
%D \def\douseMPbox#1%
%D {\setobject{MP}{#1}\vbox
%D {\forgetall
@@ -738,16 +750,16 @@
%D \deallocateMPslot\currentMPgraphic
%D \placeMPgraphic}%
%D \setgvalue{#1}{\getobject{MP}{#1}}}
-%D \stoptypen
-%D
+%D \stoptypen
+%D
%D More save is to use a number for {MP}{#1} which permits
-%D redefinition.
+%D redefinition.
\newcount\MPobjectcounter
\def\douseMPbox#1%
{\global\advance\MPobjectcounter\plusone
- \setobject{MP}{\number\MPobjectcounter}\vbox
+ \setobject{MP}{\number\MPobjectcounter}\vbox
{\forgetall
\loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
\deallocateMPslot\currentMPgraphic
@@ -802,7 +814,7 @@
%D particular place. Therefore we explicitly disable
%D inclusions (resulting in an dummy figure) when we are in MP
%D run mode (see mfun-004 for an example, we process an
-%D example buffer which produced graphics).
+%D example buffer which produced graphics).
\long\def\handleuseMPgraphic#1#2%
{\bgroup
@@ -811,7 +823,7 @@
\ifMPrun \else
\loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
\placeMPgraphic
- \fi
+ \fi
\deallocateMPslot\currentMPgraphic
\egroup}
@@ -821,9 +833,9 @@
\elabelgroup}
\long\def\startusableMPgraphic#1#2\stopusableMPgraphic % dummy
- {\blabelgroup
+ {\blabelgroup
\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}}%
- \elabelgroup}
+ \elabelgroup}
\let\useMPgraphic=\reuseMPgraphic
@@ -917,7 +929,7 @@
\def\MPOSTdriver {dvips}
\def\executeMPOST#1%
- {mpost
+ {mpost
\ifcase\interactionmode\MPOSTbatchswitch\or\MPOSTnonstopswitch\fi
\space\ifuseMETAFUNformat \MPOSTformatswitch metafun \fi #1}
@@ -940,8 +952,8 @@
\fi
-%D The batchmode and nonstopmode (introduced in 2003 for
-%D Patrick Gundlach) switches may differ per binary and are
+%D The batchmode and nonstopmode (introduced in 2003 for
+%D Patrick Gundlach) switches may differ per binary and are
%D supported by \TEXEXEC.
%D \macros
@@ -1035,16 +1047,16 @@
%D \starttypen
%D \includeMPfontsfalse
%D \stoptypen
-%D
+%D
%D {\em Currently this method fails for situations where the
%D font definition is not on one line, which is he case when
%D unkerned fonts are used along with long lines. One solution
%D for this is to increase the value of \type {max_print_line}
-%D in \type {texmf.cnf}.}}
+%D in \type {texmf.cnf}.}}
\newif\ifincludeMPfonts \includeMPfontstrue
-\def\includeMPfonts#1%
+\def\includeMPfonts#1%
{\ifincludeMPfonts
\bgroup
\message{[MP fonts #1]}%
@@ -1192,7 +1204,7 @@
%D \stoptypen
%D
%D which comes to rounding sizes. This is something
-%D experimental. (The macro in supp-pdf.tex is more
+%D experimental. (The macro in supp-pdf.tex is more
%D advanced.)
\def\PSnfont{nfont}
@@ -1278,7 +1290,7 @@
\def\convertMPcolorpath{}
\def\convertMPcolorfile{metacmyk.tmp}
-\def\convertMPcolors#1% todo: open on local path, no copy
+\def\convertMPcolors#1% todo: open on local path, no copy
{\bgroup
\ifforcegrayMPcolors
\donetrue
@@ -1315,8 +1327,8 @@
%D copied back. We don't have to reduce to gray scales;
%D \METAPOST\ already takes care of that.
-%D BTW, this code is quite old, and not as complete as the
-%D \PDF\ converter, which also handles spot colors and so.
+%D BTW, this code is quite old, and not as complete as the
+%D \PDF\ converter, which also handles spot colors and so.
\def\handleMPcolor
{\expandafter\dohandleMPcolor\fileline setrgbcolor*\\}
@@ -1330,7 +1342,7 @@
\def\dodohandleMPcolor#1 #2 #3setrgbcolor#4setrgbcolor*\\%
{\bgroup
-%\ifnum\MPspecialsignal=123 % color spec / hardcoded hack
+%\ifnum\MPspecialsignal=123 % color spec / hardcoded hack
\ifdim#1pt=.123pt
\immediate\write\scratchwrite{#1 #2 #3 setrgbcolor}%
\else
@@ -1525,7 +1537,7 @@
{\ifMPdrawingdone
\expandafter\startMPgraphic\MPdrawingdata\stopMPgraphic
\loadcurrentMPgraphic\empty
- \deallocateMPslot\currentMPgraphic
+ \deallocateMPslot\currentMPgraphic
\placeMPgraphic
\fi}
@@ -1652,19 +1664,19 @@
%D turn can trigger generation of other graphics, like those
%D in the background. Graphics start swapping place and again
%D page breaks change. You can imagine the mess we en dup
-%D with.
-%D
+%D with.
+%D
%D This is why we provide was to use a dedicate range if
%D numbers for fixed graphcis. Such graphics will not en dup
%D in the text flow (at least their dimensions don't
%D contribute to the main vertical list, and thereby they
-%D cannot interfere. We use a rather safe maximum of 4000
-%D graphics here and 8000 in \type {meta-ini}.
+%D cannot interfere. We use a rather safe maximum of 4000
+%D graphics here and 8000 in \type {meta-ini}.
-\newcount \maxnofMPgraphics \maxnofMPgraphics = 4000 % 8000
+\newcount \maxnofMPgraphics \maxnofMPgraphics = 4000 % 8000
\newcount \minnofMPgraphics \minnofMPgraphics = 1
-\newif \ifMPstaticgraphic \MPstaticgraphicfalse
+\newif \ifMPstaticgraphic \MPstaticgraphicfalse
\def\allocateMPslot#1%
{\ifrunMPgraphics
@@ -1673,21 +1685,21 @@
\recycleMPslotsfalse
\fi
\ifrecycleMPslots
- \doloop % slow but used seldom
+ \doloop % slow but used seldom
{\doifundefined{\recurselevel MP}
{\letgvalueempty{\recurselevel MP}%
\global#1=\recurselevel
\exitloop}}%
% \message{[MP slot + \number#1]%
\else\ifMPstaticgraphic
- \global#1\maxnofMPgraphics
+ \global#1\maxnofMPgraphics
\global\advance\maxnofMPgraphics \minusone
\else
- \global#1\minnofMPgraphics
+ \global#1\minnofMPgraphics
\global\advance\minnofMPgraphics \plusone
\fi\fi
\ifnum\minnofMPgraphics<\maxnofMPgraphics \else
- \writestatus{\m!systems}{increase \string\maxnofMPgraphics}%
+ \writestatus{\m!systems}{increase \string\maxnofMPgraphics}%
\fi}
\def\deallocateMPslot#1%