diff options
| author | Marius <mariausol@gmail.com> | 2011-10-18 23:20:15 +0300 | 
|---|---|---|
| committer | Marius <mariausol@gmail.com> | 2011-10-18 23:20:15 +0300 | 
| commit | 1e72402c3201340b2bd4452ed11bfb45bccabc4a (patch) | |
| tree | 8ad5259c7000597be196cc3fd48ae055d57e756a /tex/context/base/anch-pgr.mkiv | |
| parent | fbaf4b2bb7fec1ba72bf646ff65bbb1398478c2a (diff) | |
| download | context-1e72402c3201340b2bd4452ed11bfb45bccabc4a.tar.gz | |
beta 2011.10.18 22:09
Diffstat (limited to 'tex/context/base/anch-pgr.mkiv')
| -rw-r--r-- | tex/context/base/anch-pgr.mkiv | 225 | 
1 files changed, 16 insertions, 209 deletions
diff --git a/tex/context/base/anch-pgr.mkiv b/tex/context/base/anch-pgr.mkiv index f86805760..906dfd73e 100644 --- a/tex/context/base/anch-pgr.mkiv +++ b/tex/context/base/anch-pgr.mkiv @@ -1093,22 +1093,8 @@  %D \macros  %D   {stackposdown, stackposup, stackposleft,stackposright}  %D -%D A non graphic example of the use of positioning, is to stack -%D text in for instance the margin. -%D -%D \stackposdown \inleft {some text}The text \type {some text} -%D goes into the left margin, and \stackposdown \inleft {some -%D more}\type {some more} as well. When they overlap, they -%D will not touch. -%D -%D Here we said \type {\stackposdown \inleft{some text}}. Instead -%D of \stackposleft \inleft {one}stacking \stackposleft \inleft -%D {two}vertically, one can stack horizontally by \stackposleft -%D \inleft {three}using \type {\stackposleft}. -%D -%D We can go in all four directions, using \type {\stackposdown}, -%D \type {\stackposup}, \type {\stackposleft} and \type -%D {\stackposright}. +%D This is sort of obsolete as we have now stacking in the +%D margin in a different way.  \def\stackposdistance{.5em} @@ -1117,202 +1103,23 @@  \def\POSstackprefix{stack:} -\def\dostackposbox#1#2% +\unexpanded\def\dostackposbox#1#2%    {\dowithnextbox -     {#2{\previousautopos\currentautopos -         \global\advance\currentautopos\plusone -         \edef\currentposition {\POSstackprefix\number\currentautopos}% -         \edef\previousposition{\POSstackprefix\number\previousautopos}% -         \hpos\currentposition{\doifoverlappingelse\currentposition\previousposition{#1}{\flushnextbox}}}}% +     {#2% +      \bgroup +      \previousautopos\currentautopos +      \global\advance\currentautopos\plusone +      \edef\currentposition {\POSstackprefix\number\currentautopos}% +      \edef\previousposition{\POSstackprefix\number\previousautopos}% +      \hpos\currentposition{\doifoverlappingelse\currentposition\previousposition{#1}{\flushnextbox}% +      \egroup}}%       \hbox} -\def\stackposup   {\dostackposbox{\raise\lineheight\flushnextbox}} -\def\stackposdown {\dostackposbox{\lower\lineheight\flushnextbox}} -\def\stackposleft {\dostackposbox{\copy\nextbox\hskip\nextboxwd\hskip\stackposdistance}} -\def\stackposright{\dostackposbox{\hskip\stackposdistance\hskip\nextboxwd\flushnextbox}} - -%  obsolete -% -%  %D \macros -%  %D   {stackeddown} -%  %D -%  %D However, a better implementation is possible with the -%  %D following macro. We now have an extra key \type {stack} for -%  %D margin settings. When set to \type {yes}, this macro comes -%  %D into action. -% -%  % Because there can be many stacked items in a line and successive lines, we -%  % play dirty and adapt the position and height of the current node so that -%  % this becomes visible to a next pass. -%  % -%  % \startbuffer -%  % \inleft {test 1} test 1 \inleft {test 2} test 2 \endgraf -%  % \inleft {test 3} test 3 -%  % \stopbuffer -%  % \getbuffer \typebuffer \flushstatus \page -%  % -%  % \startbuffer -%  % \inleft {test 1} test 1 \inleft {test 2} test 2 \inleft {test 3} test 3 \endgraf -%  % \inleft {test 4} test 4 -%  % \stopbuffer -%  % \getbuffer \typebuffer \flushstatus \page -%  % -%  % \startbuffer -%  % \inleft {test 1} test 1 \endgraf -%  % \inleft {test 2} test 2 \endgraf -%  % \inleft {test 3} test 3 -%  % \stopbuffer -%  % \getbuffer \typebuffer \flushstatus \page -%  % -%  % \startbuffer -%  % \inleft {test 1\\test 1} test 1 \inleft {test 2} test 2 \endgraf -%  % \inleft {test 3} test 3 -%  % \stopbuffer -%  % \getbuffer \typebuffer \flushstatus \page -%  % -%  % \startbuffer -%  % \inleft {test 1\\test 1\\test 1\\test 1\\test 1} test 1 \endgraf -%  % test 2 \endgraf -%  % \inleft {test 3} test 3 -%  % \stopbuffer -%  % \getbuffer \typebuffer \flushstatus \page -%  % -%  % \startbuffer -%  % \inleft{test 1} test \inleft{test 2} test \inleft{test 3\\test 3} test -%  % \stopbuffer -%  % \getbuffer \typebuffer \flushstatus \page -%  % -%  % \startbuffer -%  % \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test \endgraf -%  % \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test -%  % \stopbuffer -%  % \getbuffer \typebuffer \flushstatus \page -% -%  \newdimen\laststackvmove % use \scratchdimenone instead of skip -% -%  \def\stackeddown -%    {\bgroup -%     % this macro assumes a few things and is meant to work for margin notes -%     \dowithnextbox -%       {\global\advance\currentautopos\plusone -%        \global\laststackvmove\zeropoint -%        \hpos{\POSstackprefix\number\currentautopos} -%          {\edef\next -%             {\nextboxht\the\nextboxht -%              \nextboxdp\the\nextboxdp -%              \nextboxwd\the\nextboxwd}% -%           \previousautopos\currentautopos -%           \scratchdimen\zeropoint -%           \scratchcounter\zerocount -%           \doloop -%             {\advance\previousautopos\minusone -%              \edef\currentposition {\POSstackprefix\number\currentautopos}% -%              \edef\previousposition{\POSstackprefix\number\previousautopos}% -%              \ifnum\MPp\currentposition=\MPp\previousposition\relax -%                %\registerstatus{doing \number\currentautopos/\number\previousautopos}% -%                \doifoverlappingelse\currentposition\previousposition -%                  {\scratchskip\dimexpr -%                      \MPy\currentposition -%                     -\MPy\previousposition -%                     -\MPd\currentposition  % untested -%                     +\MPd\previousposition % untested -%                     +\MPh\currentposition -%                   \relax\relax % second relax realy needed, forgotten while dimexpressing -%                   % todo: also take depth into account -%                   \ifdim\scratchskip<\scratchdimen -%                     %\registerstatus{no \the\scratchskip}% -%                   \else -%                     %\registerstatus{yes \the\scratchskip}% -%                     \scratchdimen\scratchskip -%                   \fi}% -%                  \donothing % {\registerstatus{next}}% -%                \ifnum\previousautopos<\zerocount\exitloop\fi -%              \else -%                \exitloop -%              \fi}% -%           \ifdim\scratchdimen=\zeropoint \else -%             \bgroup -%             \edef\currentposition{\POSstackprefix\number\currentautopos}% -%             \scratchskip\scratchdimen -%             \advance\scratchskip\MPh\currentposition -%             \scratchdimen-\scratchdimen -%             \advance\scratchdimen\MPy\currentposition -%             %\registerstatus{old \number\currentautopos: \MPy\currentposition/\MPh\currentposition}% -%             \expanded{\replacepospxywhd -%               {\currentposition}{\MPp\currentposition}{\MPx\currentposition}{\the\scratchdimen}% -%               {\MPw\currentposition}{\the\scratchskip}{\MPd\currentposition}}% -%             %\registerstatus{new \number\currentautopos: \MPy\currentposition/\MPh\currentposition}% -%             \egroup -%             \global\laststackvmove\scratchdimen % new -%             \setbox\nextbox\iftracepositions\@EA\ruledhbox\else\@EA\hbox\fi -%               {\lower\scratchdimen\flushnextbox}% -%             \next -%             %\registerstatus{\strut}% -%           \fi -%           \flushnextbox}% -%          \egroup}} -% -%  %D The next hack make sure that margin texts near faulty -%  %D strutted lines are handled ok. -% -%  \newif\ifrepositionmarginbox \repositionmarginboxtrue -% -%  \newcount\currentmarginpos -% -%  \def\dopositionmarginbox#1% -%    {\bgroup -%     \ifrepositionmarginbox -%       \global\advance\currentmarginpos\plusone -%      %\setposition{\s!margin:\number\currentmarginpos}% not always -%       \ifcase\marginrepositionmethod -%         % nothing -%       \or -%         % nothing -%       \or -%         % stack / page check yet untested -%         \setposition{\s!margin:\number\currentmarginpos}% -%         \scratchdimen\MPy{\s!margin:\number\currentmarginpos}% -%         \global\advance\currentmarginpos\plusone -%         \advance\scratchdimen -\MPy{\s!margin:\number\currentmarginpos}% -%         \advance\scratchdimen -\strutdp -%         % new but bugged -%         % \setbox#1\hbox -%         %   {\hskip-\MPx{\s!margin:\number\currentmarginpos}% -%         %    \hskip\MPx{head:\the\realpageno}% -%         %    \box#1}% -%         % so far -%         \setbox#1\hbox -%           {\setposition{\s!margin:\number\currentmarginpos}% -%            \raise\scratchdimen\box#1}% -%       \or -%         % move up -%         \setposition{\s!margin:\number\currentmarginpos}% -%         \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax -%           \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax -%           \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}% -%         \fi -%       \or -%         % move up, assume end of par -%         \setposition{\s!margin:\number\currentmarginpos}% -%         \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax -%           \getnoflines\margincontentheight -%           \advance\noflines\minusone -%           \scratchdimen\noflines\lineheight -%         \else -%           \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax -%         \fi -%         \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}% -%       \fi -%       \dp#1\zeropoint -%       \ht#1\zeropoint -%     \fi -%     \graphicvadjust{\dontleavehmode\box#1}% dontleavehmode is needed to get direction right -%     \egroup} -% -%  % \setnewconstant\marginrepositionmethod\plusone   % sidemethod -%  % \setnewconstant\margincontentmethod   \plusthree % textmethod  % beware: 1 = old method -%  % \setnewconstant\marginpagecheckmethod \plusone   % splitmethod - +\unexpanded\def\stackposup   {\dostackposbox{\raise\lineheight\flushnextbox}} +\unexpanded\def\stackposdown {\dostackposbox{\lower\lineheight\flushnextbox}} +\unexpanded\def\stackposleft {\dostackposbox{\copy\nextbox\hskip\nextboxwd\hskip\stackposdistance}} +\unexpanded\def\stackposright{\dostackposbox{\hskip\stackposdistance\hskip\nextboxwd\flushnextbox}} +  %D \macros  %D   {GFC, GTC, GSC}  %D  | 
