summaryrefslogtreecommitdiff
path: root/metapost
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2006-04-23 23:55:00 +0200
committerHans Hagen <pragma@wxs.nl>2006-04-23 23:55:00 +0200
commite0ee7b45d9ca5201a01036ad44ee3c262da938ab (patch)
treee64dff28aa1c05fde6dea3e66aa9ee271c63e0c3 /metapost
parent344364dee440fb66701665e8389445755c7d00f2 (diff)
downloadcontext-e0ee7b45d9ca5201a01036ad44ee3c262da938ab.tar.gz
stable 2006.04.23 23:55
Diffstat (limited to 'metapost')
-rw-r--r--metapost/context/base/mp-core.mp27
1 files changed, 17 insertions, 10 deletions
diff --git a/metapost/context/base/mp-core.mp b/metapost/context/base/mp-core.mp
index 7845649fc..6c3ed0523 100644
--- a/metapost/context/base/mp-core.mp
+++ b/metapost/context/base/mp-core.mp
@@ -350,13 +350,14 @@ enddef ;
numeric nofmultipars ; nofmultipars := 0 ;
-boolean obey_multi_par_hang ; obey_multi_par_hang := true ;
-boolean obey_multi_par_more ; obey_multi_par_more := true ;
-boolean snap_multi_par_tops ; snap_multi_par_tops := true ;
-boolean local_multi_par_area ; local_multi_par_area := false ;
-boolean ignore_multi_par_page ; ignore_multi_par_page := false ;
-
-boolean one_piece_multi_par ; one_piece_multi_par := false ;
+boolean obey_multi_par_hang ; obey_multi_par_hang := true ;
+boolean obey_multi_par_more ; obey_multi_par_more := true ;
+boolean snap_multi_par_tops ; snap_multi_par_tops := true ;
+boolean local_multi_par_area ; local_multi_par_area := false ;
+boolean ignore_multi_par_page ; ignore_multi_par_page := false ;
+boolean force_multi_par_chain ; force_multi_par_chain := true ;
+boolean one_piece_multi_par ; one_piece_multi_par := false ;
+boolean check_multi_par_chain ; check_multi_par_chain := true ; % extra page check
def simplify_multi_pars = % boundingbox ipv shape als optie
for i := 1 upto nofmultipars :
@@ -753,7 +754,6 @@ fi ;
if (nxy[fpos]=RealPageNumber) and (InsideTextArea(i,par_start_pos)) :
-
% first one in chain
ii := i ;
@@ -940,11 +940,16 @@ snapped_multi_pos(ulxy[tpos]) --
% second loop
+if force_multi_par_chain or (ii > 1) :
+
for i=ii+1 upto nn-1 :
% rest of chain / todo : hang
-%if (nxy[fpos]<=RealPageNumber) and (nxy[tpos]>=RealPageNumber) :
+% we need to test, else we get a <lineheight bottom one
+% triggering a whole text frame; weird
+
+if (not check_multi_par_chain) or ((nxy[fpos]<RealPageNumber) and (nxy[tpos]>RealPageNumber)) :
multipar := set_multipar(i) ;
@@ -961,10 +966,12 @@ snapped_multi_pos(ulxy[tpos]) --
save_multipar(i,2,multipar) ;
-%fi ;
+fi ;
endfor ;
+fi ;
+
% end of normal/fallback
fi ;