diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl | 367 |
1 files changed, 367 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl new file mode 100644 index 00000000000..92d2c7dc69a --- /dev/null +++ b/Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl @@ -0,0 +1,367 @@ +%D \module +%D [ file=grph-fig, +%D version=2006.08.26, % overhaul of 1997.03.31 +%D title=\CONTEXT\ Graphic Macros, +%D subtitle=Figure Inclusion, +%D author=Hans Hagen, +%D date=\currentdate, +%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 +%C details. + +% This is (yet) untested in LMTX! + +\unprotect + +%D Used in the styledesign manual: +% +% beware in mkiv we don't have the typeset- prefix +% +% \setbuffer[typeset-b]\endbuffer +% \setbuffer[typeset-a]\endbuffer +% +% todo: +% +% \appendtoks \setbuffer[typeset-b]\endbuffer\to \everystarttext +% \appendtoks \setbuffer[typeset-a]\endbuffer\to \everystarttext + +% we could use \typesetbuffer[*] to access the last one + +\newconstant\c_grph_buffers_mode + +\mutable\let\lasttypesetbuffer\empty + +\permanent\protected\def\typesetbuffer {\bgroup\setconstant\c_grph_buffers_mode\plusone \grph_buffers_typeset} +\permanent\protected\def\typesetbufferonly{\bgroup\setconstant\c_grph_buffers_mode\zerocount\grph_buffers_typeset} + +\tolerant\permanent\protected\def\grph_buffers_typeset[#1]#*[#2]% + {\ifparameters + \grph_buffers_typeset_indeed\jobname\empty + \or + \ifhastok={#1}% + \grph_buffers_typeset_indeed\jobname{#1}% + \else + \grph_buffers_typeset_indeed{#1}\empty + \fi + \or + \grph_buffers_typeset_indeed{#1}{#2}% + \fi} + +\def\grph_buffers_typeset_indeed#1#2% we could use the via files + {\doifnot{#1}{*}{\xdef\lasttypesetbuffer{\clf_typesetbuffer{#1}}}% + \ifcase\c_grph_buffers_mode + % typesetonly + \or + \externalfigure[\lasttypesetbuffer][#2]% + \fi + \egroup} + +\tolerant\permanent\protected\def\runbuffer[#1]#*[#2]% + {\xdef\lasttypesetbuffer{\clf_runbuffer{#1}{#2}}} + +% For manuals and such: +% +% \definetypesetting [name] [options] [settings-a] +% +% \typesetfile [name] [file] [settings-b] +% \typesetfile [file] [options] [settings-b] +% \typesetfile [file] [settings-b] +% \typesetfile [file] +% +% \enabletrackers[files.run] +% \starttext +% \typesetfile[oepsoeps.tex][width=10cm,frame=on] +% \stoptext + +\installcorenamespace{typesettingfile} + +\tolerant\permanent\protected\def\definetypesetting[#1]#*[#2]#*[#3]% <name> options settings-a + {\ifparameter#1\or\setuvalue{\??typesettingfile#1}{\grph_typesetting_process_indeed{#2}{#3}}\fi} + +\tolerant\permanent\protected\def\typesetfile[#1]#*[#2]#*[#3]% <name> filename settings-b | filename options settings + {\ifcsname\??typesettingfile#1\endcsname + \lastnamedcs{#2}{#3}% + \orelse\ifparameter#3\or + \grph_typesetting_process_indeed{#2}{#3}{#1}{}% + \orelse\ifparameter#2\or % filename settings + \grph_typesetting_process_indeed{}{#2}{#1}{}% + \fi} + +\defineexternalfigure[typesetting] % so one can set a frame and such + +\def\grph_typesetting_process_indeed#1#2#3#4% options settings-a filename settings-b + {\begingroup + \edef\m_typesetting_name{\clf_runcontextjob{#3}{#1}}% + \ifempty\m_typesetting_name \else + \normalexpanded{\externalfigure[\m_typesetting_name][typesetting]}[#2,#4]% + \fi + \endgroup} + +%D Whatever ... hardly used ... but historic ... needs checking ... will probably +%D become m-fig-nn.mkiv .. or I will extend it cq. clean it up when I needed it. +%D After all, it's documented in old manuals. + +\newcount\c_grph_steps_reference +\newdimen\d_grph_steps_x +\newdimen\d_grph_steps_y +\newbox \b_grph_steps_colorbar + +\ifdefined\referring\else \mutable\let\referring\relax \fi +\ifdefined\marking \else \mutable\let\marking \relax \fi +\ifdefined\remark \else \mutable\let\remark \relax \fi +\ifdefined\colorbar \else \mutable\let\colorbar \relax \fi + +\tolerant\protected\def\grph_steps_place_figure#1#2#3#4[#5]% + {\hpack + {\setbox\scratchbox\hpack + {\useexternalfigure[\s!dummy][#2][#3,#5]% + \externalfigure[\s!dummy]}% + \grph_steps_calculate + \startpositioning + \enforced\let\referring\grph_steps_one_referring + \enforced\let\marking \grph_steps_one_marking + \enforced\let\remark \grph_steps_one_remark + \enforced\let\colorbar \grph_steps_one_colorbar + \position(0,0){\box\scratchbox}% + \linewidth\onepoint + \setuppositioning + [\c!unit=pt,% + \c!xscale=\withoutpt\the\d_grph_steps_x,% + \c!yscale=\withoutpt\the\d_grph_steps_y,% + \c!factor=1]% + \ignorespaces#4% + \enforced\let\referring\grph_steps_two_referring + \enforced\let\marking \grph_steps_two_marking + \enforced\let\remark \grph_steps_two_remark + \enforced\let\colorbar \grph_steps_two_colorbar + \ignorespaces#4\removeunwantedspaces % or just grab #4 unspaced + \stoppositioning + \ifvoid\b_grph_steps_colorbar\else\box\b_grph_steps_colorbar\fi}} % not really needed + +\protected\def\grph_steps_one_referring(#1,#2)#*(#3,#4)#*[#5]% + {\position(#1,#2){\grph_steps_goto(#3,#4){\externalfigureparameter\c!frames}[#5]}} + +\protected\def\grph_steps_one_marking(#1,#2)#*(#3,#4)#*[#5]% + {\position(#1,#2){\grph_steps_this_is(#3,#4){\externalfigureparameter\c!frames}[#5]}} + +\protected\def\grph_steps_one_remark (#-,#-)#*(#-,#-)#*[#-]#*#:#-{}% (x,y)(h,b)[...]{tekst} +\protected\def\grph_steps_one_colorbar #-[#-]{} +\protected\def\grph_steps_two_referring(#-,#-)#*(#-,#-)#*[#-]{} + +\let\grph_steps_two_marking\grph_steps_two_referring + +\protected\def\grph_steps_two_remark + {\grph_steps_comment\v!no} + +\protected\def\grph_steps_two_colorbar#1[#2] + {\begingroup + \global\setbox\b_grph_steps_colorbar\vpack % \vbox ? + {\forgetall + \processcommalist[#2]\grph_colorbar_make_step}% + \global\setbox\b_grph_steps_colorbar\vpack + {\hskip2\emwidth\box\b_grph_steps_colorbar}% + \global\wd\b_grph_steps_colorbar\zeropoint + \endgroup} + +\protected\def\grph_colorbar_make_step#1% + {\blackrule[\c!color=#1,\c!width=2\emwidth,\c!height=\exheight,\c!depth=\zeropoint]% + \endgraf} + +\permanent\protected\def\startfigure[#1]#*[#2]#*[#3]#:#4\stopfigure + {\doifelse{\externalfigureparameter\c!option}\v!test + {\grph_steps_test_figure{#1}{#2}{#3}{#4}% + \letexternalfigureparameter\c!frames\v!on}% + {\letexternalfigureparameter\c!frames\v!off}% + \setvalue{\??externalfigureinstance#1}% + {\grph_steps_place_figure{#1}{#2}{#3}{#4}}} + +\aliased\let\stopfigure\relax + +\ifdefined\referring \else \let\referring\relax \fi +\ifdefined\marking \else \let\marking \relax \fi +\ifdefined\remark \else \let\remark \relax \fi +\ifdefined\colorbar \else \let\colorbar \relax \fi + +\protected\def\grph_steps_test_figure#1#2#3#4% + {\begingroup + \setbox\scratchbox\hpack + {\useexternalfigure[\s!dummy][#2][\c!wfactor=\v!max]% + \externalfigure[\s!dummy]}% + \let\referring\grph_steps_three_referring + \let\marking \grph_steps_three_marking + \let\remark \grph_steps_three_remark + \let\colorbar \grph_steps_three_colorbar + \c_grph_steps_reference\zerocount + \setbox\scratchboxone\vpack + {\hsize240\points + \startpositioning + \grph_steps_calculate + \position(0,0) + {\box\scratchbox}% + \position(0,0) + {\basegrid + [\c!nx=\externalfigureparameter\c!xmax,% + \c!dx=\withoutpt\the\d_grph_steps_x,% + \c!ny=\externalfigureparameter\c!ymax,% + \c!dy=\withoutpt\the\d_grph_steps_y,% + \c!xstep=1,% + \c!ystep=1,% + \c!scale=1,% + \c!offset=\v!no,% + \c!unit=pt]}% + \setuppositioning + [\c!unit=pt,% + \c!xscale=\withoutpt\the\d_grph_steps_x,% + \c!yscale=\withoutpt\the\d_grph_steps_y,% + \c!factor=1]% + \linewidth\onepoint + \ignorespaces#4\removeunwantedspaces % or just grab #4 unspaced + \stoppositioning + \vfill}% + \c_grph_steps_reference\zerocount + \enforced\let\referring\grph_steps_four_referring + \enforced\let\marking \grph_steps_four_marking + \enforced\let\remark \grph_steps_four_remark + \enforced\let\colorbar \grph_steps_four_colorbar + \setbox\scratchboxtwo\vbox % \vpack ? + {\forgetall + \begingroup + \tfa\doifelsenothing{#1}{#2}{#1}% + \endgroup + \blank + \tfxx#4% + \vfilll}% + \ifdim\ht\scratchboxone>\ht\scratchboxtwo + \ht\scratchboxtwo\ht\scratchboxone + \else + \ht\scratchboxone\ht\scratchboxtwo + \fi + \hpack + {\hskip3\emwidth + \tpack{\vskip12\points\box\scratchboxone\vskip6\points}% + \tpack{\vskip12\points\box\scratchboxtwo\vskip6\points}}% + \endgroup} + +\definesystemconstant{vwa} +\definesystemconstant{vwb} + +\tolerant\protected\def\grph_steps_three_referring(#1,#2)#*(#3,#4)#*[#5]% + {\advance\c_grph_steps_reference\plusone + \position(#1,#2) + {\hbox{\the\c_grph_steps_reference}}% + \position(#1,#2) + {\gotosomeinternal\s!vwb{#5}\realfolio + {\grph_steps_marker(#3,#4)\v!on{\thisissomeinternal\s!vwa{#5}}}}} + +\protected\def\grph_steps_three_remark + {\grph_steps_comment\v!yes} + +\let\grph_steps_three_marking \grph_steps_three_referring +\let\grph_steps_three_colorbar\grph_steps_one_colorbar + +\protected\def\grph_steps_four_referring{\grph_steps_text{\normalstartimath\rightarrow\normalstopimath}} +\protected\def\grph_steps_four_marking {\grph_steps_text{\normalstartimath\leftarrow \normalstopimath}} + +\let\grph_steps_four_remark \grph_steps_one_remark +\let\grph_steps_four_colorbar\grph_steps_one_colorbar + +% Helpers: + +\def\grph_steps_calculate + {\ifnum0\externalfigureparameter\c!xmax=\zerocount + \ifnum0\externalfigureparameter\c!ymax=\zerocount + \setexternalfigureparameter\c!ymax{24}% + \fi + \d_grph_steps_y\figureheight + \divide\d_grph_steps_y \externalfigureparameter\c!ymax + \d_grph_steps_x\d_grph_steps_y + \scratchdimen\figurewidth + \advance\scratchdimen\d_grph_steps_y + \divide \scratchdimen\d_grph_steps_y + \setexternalfigureparameter\c!xmax{\number\scratchdimen}% + \else + \d_grph_steps_x\figurewidth \divide\d_grph_steps_x \externalfigureparameter\c!xmax\relax + \d_grph_steps_y\figureheight \divide\d_grph_steps_y \externalfigureparameter\c!ymax\relax + \fi} + +\tolerant\def\grph_steps_comment#1(#2,#3)#*(#4,#5)#*[#6]#*#:#7% {kader}(x,y)(h,b)[...]{tekst} + {\position(#2,#3)% + {\setnostrut + \framed[\c!width=#4\d_grph_steps_x,\c!height=#5\d_grph_steps_y,\c!offset=\v!none,\c!frame=#1,#6]{#7}}} + +% \def\grph_steps_figure#1% +% {\position(0,0){\getvalue{#1}}} + +\def\grph_steps_goto(#1,#2)#3[#4]% (h,b)kader[ref] + {\gotobox{\vpack{\grph_steps_area(#1,#2)#3{}}}[#4]} + +\tolerant\def\grph_steps_text#1(#2,#3)#*(#4,#5)#*[#6]% + {\advance\c_grph_steps_reference\plusone + \hbox % \hpack ? + {\quad + \thisissomeinternal\s!vwb{#6}% + \gotosomeinternal\s!vwa{#6}\realfolio{\hbox to 1.5\emwidth{\the\c_grph_steps_reference\hfill}}% + \quad#1 (#2,#3) (#4,#5) [#6]\hfill}% + \endgraf} + +\def\grph_steps_this_is(#1,#2)#3[#4]% + {\grph_steps_area(#1,#2){#3}{\dosetdirectpagereference{#4}}} + +\def\grph_steps_area(#1,#2)#3#4% (h,b){kader}{tekst} + {\bgroup + \setnostrut + \framed[\c!width=#1\d_grph_steps_x,\c!height=#2\d_grph_steps_y,\c!offset=\zeropoint,\c!frame=#3]{#4}% + \egroup} + +\def\grph_steps_marker(#1,#2)#3#4% (h,b){kader}{tekst} + {\framed[\c!width=#1\d_grph_steps_x,\c!height=#2\d_grph_steps_y,\c!offset=\v!none,\c!frame=#3]{#4}} + +\protect \endinput + +% \startbuffer +% \definecolor [blue] [c=1,m=.38,y=0,k=.64] +% \definecolor [yellow] [c=0,m=.28,y=1,k=.06] +% +% \definespotcolor [blue-100] [blue] [p=1] +% \definespotcolor [yellow-100] [yellow] [p=1] +% +% \definemultitonecolor [combicolor] [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1] +% +% \definemultitonecolor [combicolor-b] [blue=1] [c=1,m=.38,y=0,k=.64] % force multitone +% \definemultitonecolor [combicolor-y] [yellow=1] [c=0,m=.28,y=1,k=.06] % force multitone +% +% \useexternalfigure[demo-a][mill.png] [object=no,width=.2\textwidth] +% \useexternalfigure[demo-b][hacker-bw.jpg][object=no,width=.2\textwidth] +% +% \startbaselinecorrection \startcombination[4*1] +% {\externalfigure[demo-a]} {no color} +% {\externalfigure[demo-a][color=combicolor]} {indexed duotone} +% {\externalfigure[demo-a][color=combicolor-b]} {spot color} +% {\externalfigure[demo-a][color=combicolor-y]} {spot color} +% \stopcombination \stopbaselinecorrection +% +% \startbaselinecorrection \startcombination[4*1] +% {\externalfigure[demo-b]} {no color} +% {\externalfigure[demo-b][color=combicolor]} {indexed duotone} +% {\externalfigure[demo-b][color=combicolor-b]} {spot color} +% {\externalfigure[demo-b][color=combicolor-y]} {spot color} +% \stopcombination \stopbaselinecorrection +% +% \startbaselinecorrection \startcombination[4*1] +% {\externalfigure[demo-a]} {no color} +% {\externalfigure[demo-a][color=combicolor]} {indexed duotone} +% {\externalfigure[demo-a][color=blue-100]} {spot color} +% {\externalfigure[demo-a][color=yellow-100]} {spot color} +% \stopcombination \stopbaselinecorrection +% +% \startbaselinecorrection \startcombination[4*1] +% {\externalfigure[demo-b]} {no color} +% {\externalfigure[demo-b][color=combicolor]} {indexed duotone} +% {\externalfigure[demo-b][color=blue-100]} {spot color} +% {\externalfigure[demo-b][color=yellow-100]} {spot color} +% \stopcombination \stopbaselinecorrection +% \stopbuffer +% +% \getbuffer \typebuffer |