summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/grph-fig.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/grph-fig.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/grph-fig.mkiv217
1 files changed, 68 insertions, 149 deletions
diff --git a/Master/texmf-dist/tex/context/base/grph-fig.mkiv b/Master/texmf-dist/tex/context/base/grph-fig.mkiv
index fad1c864a6f..1908e644522 100644
--- a/Master/texmf-dist/tex/context/base/grph-fig.mkiv
+++ b/Master/texmf-dist/tex/context/base/grph-fig.mkiv
@@ -5,7 +5,7 @@
%D subtitle=Figure Inclusion,
%D author=Hans Hagen,
%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
@@ -33,27 +33,32 @@
\setfalse\externalfigurelevel
\settrue \externalfigureflush
+\installcorenamespace{externalfigures}
+
\def\doplaceexternalfigure[#1][#2][#3][#4][#5]%
{\doifsomething{#2}% catches \defineexternalfigure dummies
- {\doifundefinedelse{\??ef\??ef#2}
- {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
- {\doifelse{#1}{#2}
- {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
- {\getvalue{\??ef\??ef#2}[#5]}}}}
+ {\ifcsname\??externalfigures#2\endcsname
+ \doifelse{#1}{#2}
+ {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
+ {\getvalue{\??externalfigures#2}[#5]}%
+ \else
+ \dodoplaceexternalfigure[#1][#2][#3][#4][#5]%
+ \fi}}
+
+\ifdefined\dotagfigure \else \let\dotagfigure\relax \fi
\def\dodoplaceexternalfigure[#1][#2][#3][#4][#5]%
{\bgroup
\dostarttagged\t!image\empty
\let\textunderscore\letterunderscore % {\string _} % space needed as _ is now letter in unprotected mode
\calculateexternalfigure[][#1][#2][#3][#4][#5]% [] is dummy dwcomp
+ \dotagfigure
\naturalvbox attr \imageattribute 2 {\box\foundexternalfigure}%
\dostoptagged
\egroup}
\def\externalfigurereplacement#1#2#3%
- {\setupcolors
- [\c!state=\v!local]%
- \normalexpanded{\localframed
+ {\normalexpanded{\localframed
[\??ef]
[\c!width=\figurewidth,
\c!height=\figureheight,
@@ -93,10 +98,7 @@
{\dodoubleargument\dodefineexternalfigure}
\def\dodefineexternalfigure[#1][#2]%
- {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][][][#2]}}
-
-\def\getexternalfigure#1% efef has 4 args already and take an 5th
- {\wait} % OBSOLETE
+ {\setvalue{\??externalfigures#1}{\doplaceexternalfigure[#1][][][#2]}}
% \useexternalfigure[alpha][koe]
% \useexternalfigure[beta] [koe] [breedte=1cm]
@@ -132,20 +134,6 @@
\def\useexternalfigure
{\doquadrupleempty\douseexternalfigure}
-% \def\douseexternalfigure[#1][#2][#3][#4]%
-% {\doifelsenothing{#1}
-% {\doifsomething{#2}
-% {\doifassignmentelse{#3}
-% {\setvalue{\??ef\??ef#2}{\doplaceexternalfigure[#2][#2][#3][#4]}}
-% {\setvalue{\??ef\??ef#2}{\doplaceexternalfigure[#2][#2][][#4]}}}}
-% {\doifelsenothing{#2}
-% {\doifassignmentelse{#3}
-% {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#1][][#3]}}
-% {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#1][#3][#4]}}}
-% {\doifassignmentelse{#3}
-% {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#2][][#3]}}
-% {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#2][#3][#4]}}}}}
-
\def\douseexternalfigure[#1][#2][#3][#4]%
{\doifelsenothing{#1}
{\doifsomething{#2}
@@ -161,7 +149,7 @@
{\dodouseexternalfigure{#1}{#2}{#3}{#4}}}}}
\def\dodouseexternalfigure#1#2#3#4%
- {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#2][#3][#4]}%
+ {\setvalue{\??externalfigures#1}{\doplaceexternalfigure[#1][#2][#3][#4]}%
\doanalyzeexternalfigurecollection[#2][#4]}
\newconditional\inexternalfigurecollection
@@ -229,135 +217,67 @@
\def\dosetefparameters#1#2#3% parent_id use_settings current_settings
{\doifelsenothing{#1} % inherit from parent
{\getparameters[\??ef][#2,#3]}
- {\doifdefinedelse{\??ef\??ef#1}
- {\pushmacro\doplaceexternalfigure
- \def\doplaceexternalfigure[##1][##2][##3][##4]{\getparameters[\??ef][##4,#2,#3]}%
- \getvalue{\??ef\??ef#1}%
- \popmacro\doplaceexternalfigure}
- {\getparameters[\??ef][#2,#3]}}}
+ {\ifcsname\??externalfigures#1\endcsname
+ \pushmacro\doplaceexternalfigure
+ \def\doplaceexternalfigure[##1][##2][##3][##4]{\getparameters[\??ef][##4,#2,#3]}%
+ \getvalue{\??externalfigures#1}%
+ \popmacro\doplaceexternalfigure
+ \else
+ \getparameters[\??ef][#2,#3]%
+ \fi}}
\unexpanded\def\externalfigure
{\dotripleempty\doexternalfigure}
+% \def\doexternalfigure[#1][#2][#3]% [label][file][settings] | [file][settings] | [file][parent][settings]
+% {\bgroup
+% \doifelsenothing{#1}
+% {\framed[\c!width=\defaultfigurewidth,\c!height=\defaultfigureheight]{external\\figure\\no name}}
+% {\ifcsname\??externalfigures#1\endcsname
+% \doifassignmentelse{#2}
+% {\getvalue{\??externalfigures#1}[#2]}%
+% {\getvalue{\??externalfigures#1}[#3]}%
+% \else
+% \useexternalfigure[\s!dummy][#1][#2][#3]%
+% \getvalue{\??externalfigures\s!dummy}[]% [] is dummy arg 5
+% \fi}%
+% \globallet\currentresourcecomment\empty
+% \egroup}
+
\def\doexternalfigure[#1][#2][#3]% [label][file][settings] | [file][settings] | [file][parent][settings]
- {\bgroup
- \doifelsenothing{#1}
- {\framed[\c!width=\defaultfigurewidth,\c!height=\defaultfigureheight]{external\\figure\\no name}}
- {\doifundefinedelse{\??ef\??ef#1}
- {\useexternalfigure[\s!dummy][#1][#2][#3]%
- \getvalue{\??ef\??ef\s!dummy}[]} % [] is dummy arg 5
- {\doifassignmentelse{#2}
- {\getvalue{\??ef\??ef#1}[#2]}%
- {\getvalue{\??ef\??ef#1}[#3]}}}%
+ {\bgroup % also catched #1 == empty ... scales nicer now
+ \ifcsname\??externalfigures#1\endcsname
+ \doifassignmentelse{#2}
+ {\getvalue{\??externalfigures#1}[#2]}%
+ {\getvalue{\??externalfigures#1}[#3]}%
+ \else
+ \useexternalfigure[\s!dummy][#1][#2][#3]%
+ \getvalue{\??externalfigures\s!dummy}[]% [] is dummy arg 5
+ \fi
\globallet\currentresourcecomment\empty
\egroup}
-\long\def\resourcecomment#1%
- {\long\gdef\currentresourcecomment{#1}}
+\def\resourcecomment#1%
+ {\gdef\currentresourcecomment{#1}}
-\long\unexpanded\def\startresourcecomment#1\stopresourcecomment
- {\long\gdef\currentresourcecomment{#1}}
+\unexpanded\def\startresourcecomment#1\stopresourcecomment
+ {\gdef\currentresourcecomment{#1}}
\let\currentresourcecomment\empty
-
-\def\showexternalfigures % maybe run time command is better, but no core-run, unless figs-run ...
+
+\unexpanded\def\showexternalfigures % maybe run time command is better, but no core-run, unless figs-run ...
{%\writestatus\m!system{for \string\showexternalfigures\space see \truefilename{x-res-20}.tex}
- \usemodule[res-20]\showexternalfigures} % so for the moment we do it this way
-
-\def\overlayfigure#1%
+ \usemodule[res-20]%
+ \showexternalfigures} % so for the moment we do it this way
+
+\unexpanded\def\overlayfigure#1%
{\externalfigure[#1][\c!width=\overlaywidth,\c!height=\overlayheight]}
-
-%D Still undocumented! No one uses it I think, better be done with layers.
-% when there is need for this i'll reimplement it
-%
-% \newcount\efreference
-% \newdimen\efxsteps
-% \newdimen\efysteps
-%
-% \def\calculateefsteps
-% {\ifnum0\@@exxmax=\zerocount
-% \ifnum0\@@exymax=\zerocount
-% \def\@@exymax{24}%
-% \fi
-% \efysteps\figureheight \divide\efysteps \@@exymax
-% \efxsteps\efysteps
-% \dimen0=\figurewidth
-% \advance\dimen0 \efysteps
-% \divide \dimen0 \efysteps
-% \edef\@@exxmax{\number\dimen0}%
-% \else
-% \efxsteps\figurewidth \divide\efxsteps \@@exxmax
-% \efysteps\figureheight \divide\efysteps \@@exymax
-% \fi}
-%
-% \def\efcomment#1(#2,#3)#4(#5,#6)% {kader}(x,y)(h,b)[...]{tekst}
-% {\def\complexefdocomment[##1]##2%
-% {\position(#2,#3)%
-% {\setnostrut
-% \framed
-% [\c!width=#5\efxsteps,
-% \c!height=#6\exysteps,
-% \c!offset=\v!none,
-% \c!frame=#1,
-% ##1]%
-% {##2}}}%
-% \complexorsimpleempty\efdocomment}
-%
-% \def\efnocomment(#1,#2)#3(#4,#5)% (x,y)(h,b)[...]{tekst}
-% {\def\complexefdonocomment[##1]##2{}%
-% \complexorsimpleempty\efdonocomment}
-%
-% \def\efdomarker(#1,#2)#3#4% (h,b){kader}{tekst}
-% {\framed
-% [\c!width=#1\efxsteps,
-% \c!height=#2\efysteps,
-% \c!offset=\v!none,
-% \c!frame=#3]%
-% {#4}}
-%
-% \def\effigure#1%
-% {\position(0,0){\getvalue{#1}}}
-%
-% \def\efdoarea(#1,#2)#3#4% (h,b){kader}{tekst}
-% {\bgroup
-% \setnostrut
-% \framed
-% [\c!width=#1\efxsteps,
-% \c!height=#2\efysteps,
-% \c!offset=\!!zeropoint,
-% \c!frame=#3]
-% {#4}%
-% \egroup}
-%
-% \def\efgoto(#1,#2)#3[#4]% (h,b)kader[ref]
-% {\setbox0=\vbox{\efdoarea(#1,#2)#3{}}%
-% \gotobox{\copy0}[#4]}
-%
-% \def\efmark(#1,#2)#3(#4,#5)#6[#7]%
-% {\advance\efreference \plusone
-% \position(#1,#2)
-% {\hbox{\the\efreference}}%
-% \position(#1,#2)
-% {\gotosomeinternal\s!vwb{#7}\realfolio
-% {\efdomarker(#4,#5)\v!on{\thisissomeinternal\s!vwa{#7}}}}}
-%
-% \def\eftext#1(#2,#3)#4(#5,#6)#7[#8]%
-% {\advance\efreference \plusone
-% \hbox
-% {\quad
-% \thisissomeinternal\s!vwb{#8}%
-% \gotosomeinternal \s!vwa{#8}\realfolio
-% {\hbox to 1.5em{\the\efreference\presetgoto\hfill}}%
-% \quad#1 (#2,#3) (#5,#6) [#8]\hfill}%
-% \endgraf}
-%
-% \def\efthisis(#1,#2)#3[#4]%
-% {\efdoarea(#1,#2){#3}{\pagereference[#4]}}
+%D Whatever
\newbox\colorbarbox
-\def\makecolorbar[#1]%
+\unexpanded\def\makecolorbar[#1]%
{\def\docommand##1%
{\color[##1]
{\blackrule
@@ -370,7 +290,7 @@
\processcommalist[#1]\docommand}%
\global\setbox\colorbarbox\vbox
{\hskip2em\box\colorbarbox}%
- \global\wd\colorbarbox\zeropoint}
+ \wd\colorbarbox\zeropoint}
\unexpanded\def\placestartfigure[#1][#2][#3]#4\placestopfigure[#5]%
{\hbox
@@ -407,7 +327,7 @@
{\teststartfigure[#1][#2][#3]#4\teststopfigure
\let\@@exframes\v!on}
{\let\@@exframes\v!off}%
- \setvalue{\??ef\??ef#1}%
+ \setvalue{\??externalfigures#1}%
{\dosingleempty{\placestartfigure[#1][#2][#3]#4\placestopfigure}}%
}% no longer \doifundefined{#1}{\setvalue{#1}{\getexternalfigure{#1}}}}
@@ -476,7 +396,7 @@
{\teststartfigure[#1][#2][#3]#4\teststopfigure
\let\@@exframe\v!on}
{\let\@@exframe\v!off}%
- \setvalue{\??ef\??ef#1}%
+ \setvalue{\??externalfigures#1}%
{\def\next{\placestartfigure[#1][#2][#3]#4\placestopfigure}%
\dosingleempty\next}%
}% no longer: \doifundefined{#1}{\setvalue{#1}{\getexternalfigure{#1}}}}
@@ -525,7 +445,7 @@
\def\dodotypesetbufferindeed#1%
{}
-
+
% for me only (manuals and such)
%
% \definetypesetting [name] [options] [settings-a]
@@ -540,17 +460,17 @@
% \typesetfile[oepsoeps.tex][width=10cm,frame=on]
% \stoptext
-\definesystemvariable{tz}
+\installcorenamespace{typesettingfile}
\unexpanded\def\definetypesetting{\dotripleempty\dodefinetypesetting}
\unexpanded\def\typesetfile {\dotripleempty\dotypesetfile}
\def\dodefinetypesetting[#1][#2][#3]% <name> options settings-a
- {\doifsomething{#1}{\setvalue{\??tz#1}{\dodotypesetfile{#2}{#3}}}}
+ {\doifsomething{#1}{\setvalue{\??typesettingfile#1}{\dodotypesetfile{#2}{#3}}}}
\def\dotypesetfile[#1][#2][#3]% <name> filename settings-b | filename options settings
- {\ifcsname\??tz#1\endcsname
- \csname\??tz#1\endcsname{#2}{#3}%
+ {\ifcsname\??typesettingfile#1\endcsname
+ \csname\??typesettingfile#1\endcsname{#2}{#3}%
\else\ifthirdargument % filename options settings
\dodotypesetfile{#2}{#3}{#1}{}%
\else\ifsecondargument % filename settings
@@ -570,7 +490,6 @@
\c!maxheight=\@@efheight,
\c!bodyfont=\bodyfontsize,
\c!directory=,
- \c!file=\f!utilityfilename.\f!figureextension,
\c!radius=.5\bodyfontsize,
\c!corner=\v!rectangular,
\c!frame=\v!off,