summaryrefslogtreecommitdiff
path: root/tex/context/base/anch-bck.mkvi
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/anch-bck.mkvi')
-rw-r--r--tex/context/base/anch-bck.mkvi86
1 files changed, 61 insertions, 25 deletions
diff --git a/tex/context/base/anch-bck.mkvi b/tex/context/base/anch-bck.mkvi
index bfe18a5cb..5ac1b039b 100644
--- a/tex/context/base/anch-bck.mkvi
+++ b/tex/context/base/anch-bck.mkvi
@@ -22,10 +22,10 @@
% This might be overloaded later on:
-\defineoverlay[\v!text-2][\positionoverlay{\v!text-2}]
-\defineoverlay[\v!text-1][\positionoverlay{\v!text-1}]
-\defineoverlay[\v!text+1][\positionoverlay{\v!text+1}]
-\defineoverlay[\v!text+2][\positionoverlay{\v!text+2}]
+% \defineoverlay[\v!text-2][\positionoverlay{\v!text-2}]
+% \defineoverlay[\v!text-1][\positionoverlay{\v!text-1}]
+% \defineoverlay[\v!text+1][\positionoverlay{\v!text+1}]
+% \defineoverlay[\v!text+2][\positionoverlay{\v!text+2}]
% Paragraph positions:
@@ -72,8 +72,6 @@
%D Some MP
-\newcount\localpositionnumber % incremented elsewhere
-
\newcount\MPparcounter
\def\MPself {\MPvar{self}}
@@ -82,8 +80,7 @@
\def\MPwself {w:\MPvar{self}}
\def\MPparanchor {p:\number\MPparcounter}
-\def\textbackgroundoverlay#tag{\iflocalpositioning\v!local\else\v!text\fi#tag}
-\def\MPanchornumber {\iflocalpositioning\the\localpositionnumber\else\the\realpageno\fi}
+% \carryoverpar is needed for left/right floats
% \definetextbackground[more][state=start,backgroundcolor=red] % location=paragraph
% \definetextbackground[test][state=start,backgroundcolor=green]
@@ -216,26 +213,26 @@
\unexpanded\def\stoptextbackground
{\anch_backgrounds_text_stop_indeed
- \carryoverpar\endgroup}
+ \carryoverpar\endgroup} % why doesn't this work ?
\unexpanded\def\starttextbackgroundmanual
{\begingroup
\usetextbackgroundstyleandcolor\c!style\c!color
- \fpos\v_anch_backgrounds_text_current\ignorespaces}
+ \bpos\v_anch_backgrounds_text_current}
\unexpanded\def\stoptextbackgroundmanual
- {\tpos\v_anch_backgrounds_text_current
- \endgroup}
+ {\epos\v_anch_backgrounds_text_current
+ \carryoverpar\endgroup}
\def\anch_backgrounds_text_start_txt
{\ifvmode \dontleavehmode \fi
\begingroup
\usetextbackgroundstyleandcolor\c!style\c!color
- \fpos\v_anch_backgrounds_text_current\ignorespaces}
+ \bpos\v_anch_backgrounds_text_current}
\def\anch_backgrounds_text_stop_txt
- {\tpos\v_anch_backgrounds_text_current
- \endgroup}
+ {\epos\v_anch_backgrounds_text_current
+ \carryoverpar\endgroup}
\newskip\textbackgroundskip
@@ -249,12 +246,12 @@
\ifgridsnapping
\spac_helpers_assign_skip\textbackgroundskip{\textbackgroundparameter\c!topoffset}%
\ifdim\textbackgroundskip>\zeropoint
- \struttedbox{\hbox{\raise\textbackgroundskip\hbox{\fpos\v_anch_backgrounds_text_current}}}%
+ \struttedbox{\hbox{\raise\textbackgroundskip\hbox{\bpos\v_anch_backgrounds_text_current}}}%
\else
- \fpos\v_anch_backgrounds_text_current
+ \bpos\v_anch_backgrounds_text_current
\fi
\else
- \fpos\v_anch_backgrounds_text_current
+ \bpos\v_anch_backgrounds_text_current
\fi
\endgraf % we need a vertical nobreak - 29/06/2004
\endgroup
@@ -303,15 +300,15 @@
\spac_helpers_assign_skip\textbackgroundskip{\textbackgroundparameter\c!bottomoffset}%
\ifgridsnapping % experimental, pascal (todo: topoffset in same way)
\ifdim\textbackgroundskip>\zeropoint
- \struttedbox\plusone{\hbox{\lower\textbackgroundskip\hbox{\tpos\v_anch_backgrounds_text_current}}}%
+ \struttedbox\plusone{\hbox{\lower\textbackgroundskip\hbox{\epos\v_anch_backgrounds_text_current}}}%
\else
- \tpos\v_anch_backgrounds_text_current
+ \epos\v_anch_backgrounds_text_current
\fi
\else
- \tpos\v_anch_backgrounds_text_current
+ \epos\v_anch_backgrounds_text_current
\fi
\endgraf
- \endgroup
+ \carryoverpar\endgroup
\endgraf % new
\textbackgroundparameter\c!after}
@@ -544,7 +541,7 @@
% we can flush 5 in one call (saved 4 lua calls) .. brrr wself .. will change
-% \def\MPposset#1{\ctxcommand{MPposset("#1")}}
+\def\MPposset#1{\ctxcommand{MPposset("#1")}}
\startMPpositionmethod{mpos:par:columnset}
\MPparcounter\MPn\MPbself\relax
@@ -557,8 +554,8 @@
\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
\includeMPgraphic{mpos:par:setup} ;
\includeMPgraphic{mpos:par:extra} ;
- prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself,\MPpos\MPparanchor,\MPpardata\MPparanchor) ;
- % prepare_multi_pars(\MPposset{\MPvar{self}}) ;
+ % prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself,\MPpos\MPparanchor,\MPpardata\MPparanchor) ;
+ prepare_multi_pars(\MPposset{\MPvar{self}}) ;
relocate_multipars(-\MPxy\MPanchorid) ; % inside layerpos
\includeMPgraphic{\MPvar{mp}} ;
\stopMPpositiongraphic
@@ -566,6 +563,45 @@
\regionpositioningfalse
\stopMPpositionmethod
+% new:
+
+% \setuptextbackground
+% [\c!mp=mpos:par:region,
+% \c!method=mpos:par:region]
+
+\startMPpositionmethod{mpos:par:region}
+ \startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
+ \includeMPgraphic{mpos:par:setup} ;
+ \includeMPgraphic{mpos:par:extra} ;
+ \ctxcommand{fetchmultipar("\MPvar{self}",\the\realpageno,"\MPanchorid")}
+ \includeMPgraphic{\MPvar{mp}} ;
+ setbounds currentpicture to multibox ;
+ \stopMPpositiongraphic
+ \MPpositiongraphic{mpos:par}{}%
+\stopMPpositionmethod
+
+\startuseMPgraphic{mpos:par:region}
+ \iftracepositions
+ show_multi_pars
+ \else
+ draw_multi_pars
+ \fi ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{mpos:par:region:kind}
+ for i=1 upto nofmultipars :
+ fill multipars[i] %^ shifted (0,2mm)
+ withcolor
+ if multikind[i] = "single" : yellow
+ elseif multikind[i] = "first" : red
+ elseif multikind[i] = "middle" : green
+ elseif multikind[i] = "last" : blue
+ fi
+ withtransparency (1,.5)
+ ;
+ endfor ;
+\stopuseMPgraphic
+
%D \starttyping
%D \setupbackground
%D [test]