summaryrefslogtreecommitdiff
path: root/tex/context/base/page-flt.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2003-08-21 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2003-08-21 00:00:00 +0200
commit309b7e1b8d2422eb36e584f3c57591d960bcc402 (patch)
tree08691435b84e3978f244616c400915719b4c256a /tex/context/base/page-flt.tex
parent3f9c44091f54eb858cfbb71b6346445e606b8687 (diff)
downloadcontext-309b7e1b8d2422eb36e584f3c57591d960bcc402.tar.gz
stable 2003.08.21
Diffstat (limited to 'tex/context/base/page-flt.tex')
-rw-r--r--tex/context/base/page-flt.tex289
1 files changed, 88 insertions, 201 deletions
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index 2dad35404..41d8c901a 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -423,34 +423,6 @@
\expanded{\dorepeatwithcommand[#1]}\movedownsidefloat}%
\egroup}
-% \def\xdocompletefloat#1#2#3#4#5#6%
-% {\ifextrafloatactions
-% \let\@@extrafloat\empty
-% % \sidefloatdownshift will be reset afterwards, and can
-% % already be set at this point
-% \processallactionsinset
-% [#4] % ininner/inouter : for old times sake
-% [ \v!binnen=>\xxdocompletefloat\v!links \v!rechts,
-% \v!buiten=>\xxdocompletefloat\v!rechts \v!links,
-% \v!binnenmarge=>\xxdocompletefloat\v!linkermarge \v!rechtermarge,
-% \v!buitenmarge=>\xxdocompletefloat\v!rechtermarge\v!linkermarge,
-% \v!binnenrand=>\xxdocompletefloat\v!linkerrand \v!rechterrand,
-% \v!buitenrand=>\xxdocompletefloat\v!rechterrand \v!linkerrand,
-% \v!rugwit=>\xxdocompletefloat\v!rugwit \v!snijwit,
-% \v!snijwit=>\xxdocompletefloat\v!snijwit \v!rugwit,
-% \v!links=>\xxdocompletefloat\v!links \v!links,
-% \v!rechts=>\xxdocompletefloat\v!rechts \v!rechts,
-% \v!regel=>, % only -n*line is handled (see ***)
-% \s!unknown=>{\movedownsidefloat[\commalistelement]}]%
-% \ifx\@@extrafloat\empty
-% \docompletefloat{#1}{#2}{#3}{#4}{#5}{#6}\nextbox
-% \else
-% \docompletefloat{#1}{#2}{#3}{\@@extrafloat,#4}{#5}{#6}\nextbox
-% \fi
-% \else % downward compatible
-% \docompletefloat{#1}{#2}{#3}{#4}{#5}{#6}\nextbox
-% \fi}
-
\def\xdocompletefloat#1#2#3#4#5#6%
{\ifextrafloatactions
\doifinsetelse\v!tekst{#4}
@@ -509,31 +481,6 @@
\doifvaluesomething{\??fl#1\c!maxbreedte}
{\scratchdimen\getvalue{\??fl#1\c!maxbreedte}\relax
\ifdim\wd#3>\scratchdimen
-% \doifcommonelse{\v!inrechter,\v!rechtermarge}{#2}
-% {\global\sidefloatshift-\scratchdimen
-% \global\advance\sidefloatshift-\rechtermargeafstand}
-% {\doifcommonelse{\v!inlinker,\v!linkermarge}{#2}
-% {\global\sidefloatshift-\scratchdimen
-% \global\advance\sidefloatshift-\linkermargeafstand}
-% {\doifinsetelse{\v!linkerrand}{#2}
-% {\global\sidefloatshift-\scratchdimen
-% \global\advance\sidefloatshift-\linkerrandafstand
-% \global\advance\sidefloatshift-\linkermargebreedte
-% \global\advance\sidefloatshift-\linkermargeafstand}
-% {\doifinsetelse{\v!rechterrand}{#2}
-% {\global\sidefloatshift-\scratchdimen
-% \global\advance\sidefloatshift-\rechterrandafstand
-% \global\advance\sidefloatshift-\rechtermargebreedte
-% \global\advance\sidefloatshift-\rechtermargeafstand}
-% {#4\setbox#3\hbox to \scratchdimen
-% {\doifcommonelse{\v!rechts,\v!links}{#2}
-% {\doifnotinset\v!rechts{#2}\hss
-% \box#3%
-% \doifnotinset\v!links{#2}\hss}%
-% {\doifnotvalue{\??fl#1\c!plaats}\v!links\hss
-% \box#3%
-% \doifnotvalue{\??fl#1\c!plaats}\v!rechts\hss}}}}}}%
-%
\doifcommonelse{\v!inrechter,\v!rechtermarge,\v!rechterrand
\v!inlinker,\v!linkermarge,\v!linkerrand}{#2}
{\global\sidefloatmaximum\scratchdimen}
@@ -545,7 +492,6 @@
{\doifnotvalue{\??fl#1\c!plaats}\v!links\hss
\box#3%
\doifnotvalue{\??fl#1\c!plaats}\v!rechts\hss}}}%
-%
\fi}%
\fi}
@@ -614,6 +560,7 @@
\c!tussen=\@@kjtussen,
%\c!na=\@@kjna,
\c!breedte=\@@kjbreedte,
+ \c!minbreedte=\@@kjminbreedte,
\c!kopletter=\@@kjkopletter,
\c!kopkleur=\@@kjkopkleur,
\c!tekstletter=\@@kjtekstletter,
@@ -627,6 +574,7 @@
\c!sectienummer=\@@kjsectienummer,
\c!afstand=\@@kjafstand,
\c!scheider=\@@kjscheider,
+ \c!commando=\@@kjcommando,
\c!conversie=\@@kjconversie]%
\definieernummer % \doorlabelen
[#1]
@@ -681,7 +629,7 @@
\copyparameters[\??kj#1][\??kj#3]
[\c!plaats,\c!voor,\c!tussen,\c!na,
\c!breedte,\c!kopletter,\c!kopkleur,\c!letter,\c!kleur,
- \c!tekstletter,\c!tekstkleur,
+ \c!tekstletter,\c!tekstkleur,\c!minbreedte,
\c!uitlijnen,\c!nummer,\c!wijze,\c!blokwijze,
\c!sectienummer,\c!scheider,\c!afstand,\c!conversie]%
\definieernummer[#1][#3]%
@@ -729,26 +677,6 @@
\let\twopassfloatdata\realpageno
-% \def\dogetfloatdata % precedes save !
-% {\doglobal\increment\noffloatpages
-% \gettwopassdata{\s!float\s!data}%
-% \iftwopassdatafound
-% \globallet\twopassfloatdata\twopassdata
-% \else
-% \globallet\twopassfloatdata\realpageno % \realfolio
-% \fi}
-%
-% \def\dosavefloatdata
-% {\bgroup
-% \edef\dosavefloatdata
-% {\writeutilitycommand
-% {\twopassentry
-% {\s!float\s!data}%
-% {\noffloatdata}%
-% {\noexpand\realfolio}}}% later {}{}{}{} and \getfirst...
-% \dosavefloatdata
-% \egroup}
-
\def\dosavefloatdata
{\bgroup
\edef\dosavefloatdata
@@ -1065,24 +993,28 @@
{\doifinsetelse\v!altijd{#1}
{\docheckiffloatfits
\ifroomforfloat
- \processallactionsinset
- [#1]
- [ \v!boven=>{\placesometopsfloat[#1]},
- \v!onder=>{\placesomebotsfloat[#1]},
- \s!unknown=>{\placesomeherefloat[#1]},
- \s!default=>{\placesomeherefloat[#1]}]%
+ \doifinsetelse\v!boven{#1}
+ {\placesometopsfloat[#1]}
+ {\doifinsetelse\v!onder{#1}
+ {\placesomebotsfloat[#1]}
+ {\placesomeherefloat[#1]}}%
+ % more compact and efficient, but quite ugly
+ % \doifinsetelse\v!boven{#1}
+ % \placesometopsfloat
+ % {\doifinsetelse\v!onder{#1}
+ % \placesomebotsfloat
+ % \placesomeherefloat}[#1]%
\else
\showmessage\m!floatblocks9\empty
\doreversesavefloat
\fi}
{\docheckiffloatfits
\ifroomforfloat
- \processallactionsinset
- [#1]
- [ \v!boven=>{\placesometopsfloat[#1]},
- \v!onder=>{\placesomebotsfloat[#1]},
- \s!unknown=>{\placesomeherefloat[#1]},
- \s!default=>{\placesomeherefloat[#1]}]%
+ \doifinsetelse\v!boven{#1}
+ {\placesometopsfloat[#1]}
+ {\doifinsetelse\v!onder{#1}
+ {\placesomebotsfloat[#1]}
+ {\placesomeherefloat[#1]}}%
\else
\dosavefloat
\fi}}}
@@ -1190,22 +1122,27 @@
\else
\verhoognummer[#1]%
\maakhetnummer[#1]%
- \globallet\flhetnummer\hetnummer
+ % \globallet\flhetnummer\hetnummer % beware, not unique should be done on a per class base
+ \letgvalue{@fl@n@#1}\hetnummer
+ % indirect macro can be more efficient
\setgvalue{@fl@r@#1}%
{\dofloatreference
\redofloatorder{#1}%
- \doschrijfnaarlijst{#1}{\flhetnummer}{#3}{#1}%
+ % \doschrijfnaarlijst{#1}{\flhetnummer}{#3}{#1}%
+ \doschrijfnaarlijst{#1}{\getvalue{@fl@n@#1}}{#3}{#1}%
\doglobal\convertargument#3\to\flasciititle % \asciititle is global
- \doifsomething{#2}{\rawreference\s!flt{#2}{{\flhetnummer}{\flasciititle}}}%
- \letgvalue{@fl@r@#1}\relax}% nills
+ % \doifsomething{#2}{\rawreference\s!flt{#2}{{\flhetnummer}{\flasciititle}}}%
+ \doifsomething{#2}{\rawreference\s!flt{#2}{{\getvalue{@fl@n@#1}}{\flasciititle}}}%
+ \letgvalue{@fl@r@#1}\relax}% nils
\setgvalue{@fl@t@#1}%
- {\preparethenumber{\??kj#1}\flhetnummer\preparednumber
+ % {\preparethenumber{\??kj#1}\flhetnummer\preparednumber
+ {\preparethenumber{\??kj#1}{\getvalue{@fl@n@#1}}\preparednumber
\doattributes{\??kj#1}\c!letter\c!kleur
{\doattributes{\??kj#1}\c!kopletter\c!kopkleur
{\labeltexts{#1}{\preparednumber}}%
\doattributes{\??kj#1}\c!tekstletter\c!tekstkleur
{\dotfskip{\getvalue{\??kj#1\c!afstand}}#3}}}%
- \fi}
+ \fi}
\def\placefloatcaptiontext [#1]{\getvalue{@fl@t@#1}}
\def\placefloatcaptionreference[#1]{\getvalue{@fl@r@#1}}
@@ -1227,6 +1164,8 @@
\newbox\captionbox
+% \floatparameter
+
\def\putcompletecaption#1#2#3#4%
{\noindent
\xdef\floatcaptionnumber{#1}%
@@ -1268,7 +1207,6 @@
\postponefootnotes
\mindermeldingen
\setbox\tempfloatbox\vbox{\borderedfloatbox{#4}}%
-% \def\locatefloat{\doregelplaats\@@flflplaats}%
\def\locatefloat
{\chardef\alignstrutmode\zerocount
\alignedline\@@flflplaats\v!midden}%
@@ -1278,36 +1216,44 @@
\doglobal\addlocalbackgroundtobox\floatbox
\else
\setbox\tempcaptionbox\hbox
- {\footnotesenabledfalse\putcompletecaption{#4}{#2}{#3}{0}}%
+ {\trialtypesettingtrue
+ \footnotesenabledfalse\putcompletecaption{#4}{#2}{#3}{0}}%
+ % todo: installable maken, variant/method=auto vs macro
\doifinsetelse\@@kjkjplaats{\v!hoog,\v!midden,\v!laag}
{\dopreparesidecaption{#1}{#2}{#3}{#4}}
- {\doifelse\@@kjkjbreedte\v!max
- {\dopreparestackcaptionmax{#1}{#2}{#3}{#4}}
- {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox % wider caption
- \doifelse\@@kjkjbreedte\v!passend
- {\dopreparestackcaptionaut{#1}{#2}{#3}{#4}}
- {\dopreparestackcaptionwid{#1}{#2}{#3}{#4}}%
- \else
- \dopreparestackcaptionmin{#1}{#2}{#3}{#4}%
- \fi}}%
+ {\doifelse\@@kjkjminbreedte\v!passend
+ {\doifelse\@@kjkjbreedte\v!max
+ {\dopreparestackcaptionmax{#1}{#2}{#3}{#4}}
+ {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox % wider caption
+ \doifelse\@@kjkjbreedte\v!passend
+ {\dopreparestackcaptionaut{#1}{#2}{#3}{#4}}
+ {\dopreparestackcaptionwid{#1}{#2}{#3}{#4}}%
+ \else
+ \dopreparestackcaptionmin{#1}{#2}{#3}{#4}%
+ \fi}}
+ {\dopreparestackcaptionfix{#1}{#2}{#3}{#4}}}% new, special effects (see icare)
\edef\width{\the\wd\tempfloatbox}%
\addlocalbackgroundtobox\tempfloatbox
+ \setbox\tempcaptionbox\hbox{\@@kjkjcommando{\box\tempcaptionbox}}%
\addlocalbackgroundtobox\tempcaptionbox
\buildfloatbox
\fi
-\ifnum\floatrotation>0
- \global\setbox\floatbox\vbox
- {\rotate[\c!rotatie=\floatrotation]{\box\floatbox}}%
- \edef\width{\the\wd\tempfloatbox}%
-\else
- \postcenterfloatbox\width
-\fi
+ \ifnum\floatrotation>0
+ \global\setbox\floatbox\vbox
+ {\rotate[\c!rotatie=\floatrotation]{\box\floatbox}}%
+ \edef\width{\the\wd\tempfloatbox}%
+ \else
+ \postcenterfloatbox\width
+ \fi
\egroup}
\ifx\addlocalbackgroundtobox\undefined
\def\addlocalbackgroundtobox{\resetglobal\gobbleoneargument}%
\fi
+\def\captionminwidth {15\korpsgrootte}
+\def\captionovershoot {2em}
+
\def\dopreparenocaption#1#2#3#4%
{\global\setbox\floatbox\vbox % pas op als wd groter dan hsize
{\ifbinnenkolommen\ifdim\wd\tempfloatbox>\hsize
@@ -1315,14 +1261,30 @@
\fi\fi
\locatefloat{\copy\tempfloatbox}}}
+\def\dopreparestackcaptionfix#1#2#3#4%
+ {\dosetraggedvbox\@@kjkjuitlijnen
+ \setbox\tempcaptionbox\raggedbox
+ {\hsize\@@kjkjminbreedte % special effects
+ \putcompletecaption{#4}{#2}{#3}{0}}}
+
\def\dopreparestackcaptionmax#1#2#3#4%
{\dosetraggedvbox\@@kjkjuitlijnen
\setbox\tempcaptionbox\raggedbox
{\hsize\wd\tempfloatbox
\putcompletecaption{#4}{#2}{#3}{0}}}
-\def\captionminwidth {15\korpsgrootte}
-\def\captionovershoot {2em}
+\def\dopreparestackcaptionwid#1#2#3#4%
+ {\dosetraggedvbox\@@kjkjuitlijnen
+ \setbox\tempcaptionbox\raggedbox
+ {\hsize\@@kjkjbreedte
+ \putcompletecaption{#4}{#2}{#3}{0}}}
+
+\def\dopreparestackcaptionmin#1#2#3#4%
+ {\raggedcenter % the default
+ \dosetraggedvbox\@@kjkjuitlijnen % when given
+ \setbox\tempcaptionbox\raggedbox % vbox, keeps footnotes
+ {\hsize\wd\tempfloatbox
+ \putcompletecaption{#4}{#2}{#3}{0}}}
\def\dopreparestackcaptionaut#1#2#3#4%
{\doifsomething\@@kjkjuitlijnen
@@ -1384,19 +1346,6 @@
\fi
\fi}
-\def\dopreparestackcaptionwid#1#2#3#4%
- {\dosetraggedvbox\@@kjkjuitlijnen
- \setbox\tempcaptionbox\raggedbox
- {\hsize\@@kjkjbreedte
- \putcompletecaption{#4}{#2}{#3}{0}}}
-
-\def\dopreparestackcaptionmin#1#2#3#4%
- {\raggedcenter % the default
- \dosetraggedvbox\@@kjkjuitlijnen % when given
- \setbox\tempcaptionbox\raggedbox % vbox, keeps footnotes
- {\hsize\wd\tempfloatbox
- \putcompletecaption{#4}{#2}{#3}{0}}}
-
\def\dopreparesidecaption#1#2#3#4%
{\dimen0\hsize
\advance\dimen0 -\wd\tempfloatbox
@@ -1537,44 +1486,6 @@
\box\floatbox
\ifdone\hskip\effectiverightskip\fi\hss}}
-% \def\dosetparfloat#1#2#3#4%
-% {\bgroup
-% \forgetall
-% \postponefootnotes
-% \mindermeldingen
-% %\showcomposition
-% \setbox4\vbox{\borderedfloatbox{#4}}%
-% \ifnofloatcaption
-% \global\setbox\floatbox\vbox{\box4}%
-% \else
-% \setbox2\hbox
-% {\forgetall\putcompletecaption{#4}{#2}{#3}{0}}%
-% \doifelse\@@kjkjbreedte\v!max
-% {\dosetraggedvbox\@@kjkjuitlijnen
-% \setbox2\raggedbox
-% {\hsize\wd4\putcompletecaption{#4}{#2}{#3}{0}}}%
-% {\doifelse\@@kjkjbreedte\v!passend
-% {\ifdim\wd2>\wd4\relax
-% \setbox2\vbox
-% {\forgetall\hsize\wd4\putcompletecaption{#4}{#2}{#3}{0}}%
-% \else
-% \setbox2\hbox to \wd4
-% {\hss\box2\hss}%
-% \fi}
-% {\dosetraggedvbox\@@kjkjuitlijnen
-% \setbox2\raggedbox
-% {\hsize\wd4\putcompletecaption{#4}{#2}{#3}{0}}}}%
-% \global\setbox\floatbox\vbox
-% {\processaction
-% [\@@kjkjplaats]
-% [ \v!boven=>\box2\endgraf\@@kjkjtussen\box4,
-% \v!onder=>\box4\endgraf\@@kjkjtussen\box2,
-% \v!geen=>\box4,
-% \s!unknown=>\box4\endgraf\@@kjkjtussen\box2]}%
-% \fi
-% \doglobal\addlocalbackgroundtobox\floatbox
-% \egroup}
-
\def\dosetparfloat#1#2#3#4%
{\bgroup
\forgetall
@@ -1582,8 +1493,7 @@
\mindermeldingen
%\showcomposition
\setbox\tempfloatbox\vbox{\borderedfloatbox{#4}}%
-%\doglobal
-\addlocalbackgroundtobox\tempfloatbox
+ \addlocalbackgroundtobox\tempfloatbox % no \doglobal
\ifnofloatcaption
\global\setbox\floatbox\vbox{\box\tempfloatbox}%
\else
@@ -1604,8 +1514,8 @@
{\dosetraggedvbox\@@kjkjuitlijnen
\setbox\tempcaptionbox\raggedbox
{\hsize\wd\tempfloatbox\putcompletecaption{#4}{#2}{#3}{0}}}}%
-%\doglobal
-\addlocalbackgroundtobox\tempcaptionbox
+ \setbox\tempcaptionbox\hbox{\@@kjkjcommando{\box\tempcaptionbox}}%
+ \addlocalbackgroundtobox\tempcaptionbox % no \doglobal
\global\setbox\floatbox\vbox
{\processaction
[\@@kjkjplaats]
@@ -1628,12 +1538,14 @@
\long\def\dosetfloatbox#1#2#3#4% todo : \global\setbox
{\ifvisible
\par
- \edef\@@kjkjbreedte {\getvalue{\??kj#4\c!breedte }}%
- \def\@@kjkjtussen {\getvalue{\??kj#4\c!tussen }}% no \edef
- \edef\@@kjkjafstand {\getvalue{\??kj#4\c!afstand }}%
- \edef\@@kjkjplaats {\getvalue{\??kj#4\c!plaats }}%
- \edef\@@kjkjuitlijnen{\getvalue{\??kj#4\c!uitlijnen}}%
- \edef\@@flflplaats {\getvalue{\??fl#4\c!plaats }}%
+ \edef\@@kjkjplaats {\getvalue{\??kj#4\c!plaats }}%
+ \def\@@kjkjtussen {\getvalue{\??kj#4\c!tussen }}% no \edef
+ \def\@@kjkjcommando {\getvalue{\??kj#4\c!commando }}% no \edef
+ \edef\@@kjkjbreedte {\getvalue{\??kj#4\c!breedte }}%
+ \edef\@@kjkjminbreedte{\getvalue{\??kj#4\c!minbreedte}}% in geval van automatisch
+ \edef\@@kjkjafstand {\getvalue{\??kj#4\c!afstand }}%
+ \edef\@@kjkjuitlijnen {\getvalue{\??kj#4\c!uitlijnen }}%
+ \edef\@@flflplaats {\getvalue{\??fl#4\c!plaats }}%
\ifparfloat
\@EA\dosetparfloat % {#1}{#2}{#3}{#4}%
\else
@@ -1668,33 +1580,6 @@
\newcounter\noxfloatlocations
-% \def\dogetfloatbox#1#2%
-% {\ifvisible
-% \let\next\relax % ivm eetex
-% \processfirstactioninset
-% [#1]
-% [ \v!hier=>\def\next{\someelsefloat[#1]},
-% \v!forceer=>\def\next{\somefixdfloat[#1]},
-% \v!links=>\def\next{\somesidefloat[#1]\presetindentation},
-% \v!rechts=>\def\next{\somesidefloat[#1]},
-% \v!tekst=>\def\next{\sometextfloat[#1]},
-% \v!boven=>\def\next{\someelsefloat[#1]\nonoindentation}, % !
-% \v!onder=>\def\next{\someelsefloat[#1]},
-% \v!marge=>\def\next{\somenextfloat[#1]\nonoindentation}, % !
-% \v!pagina=>\def\next{\somepagefloat[#1]},
-% \v!naast=>\def\next{\somefacefloat[#1]},
-% \v!inmarge=>\def\next{\somesidefloat[#1]},
-% \v!inlinker=>\def\next{\somesidefloat[#1]},
-% \v!inrechter=>\def\next{\somesidefloat[#1]},
-% \v!linkermarge=>\def\next{\somesidefloat[#1]},
-% \v!rechtermarge=>\def\next{\somesidefloat[#1]},
-% \v!linkerrand=>\def\next{\somesidefloat[#1]},
-% \v!rechterrand=>\def\next{\somesidefloat[#1]},
-% \s!default=>\def\next{\someelsefloat[\v!hier,#1]},
-% \s!unknown=>\def\next{\someelsefloat[\v!hier,#1]}]%
-% \next
-% \fi}
-
\long\def\dofloat#1#2#3#4%
{\dosetfloatbox{#1}{#2}{#3}{#4}%
\doifelsevaluenothing{\??fl#4\c!criterium}
@@ -2145,6 +2030,7 @@
\c!tussen={\blanko[\v!middel]},
\c!na=\blanko,
\c!breedte=\v!passend,
+ \c!minbreedte=\v!passend, % id est: the width of the floatbox in some cases
\c!kopletter=\v!vet,
\c!kopkleur=,
\c!letter=\v!normaal,
@@ -2158,6 +2044,7 @@
\c!sectienummer=\@@nrsectienummer,
\c!scheider=\@@koscheider,
\c!afstand=1em,
+ \c!commando=,
\c!conversie=\v!cijfers]
\stelplaatsblokkenin