From 37328f11edfca7afe918bb297ed1656eb053f7a3 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Mon, 27 Dec 2021 19:01:36 +0100 Subject: [PATCH] Adjust column size and expansion handling --- src/library/columns.rs | 69 ++++++++++++++++------------------- tests/ref/layout/columns.png | Bin 37509 -> 37999 bytes tests/typ/layout/columns.typ | 68 +++++++++++++++++++--------------- 3 files changed, 71 insertions(+), 66 deletions(-) diff --git a/src/library/columns.rs b/src/library/columns.rs index 04b5ae479..225cba47a 100644 --- a/src/library/columns.rs +++ b/src/library/columns.rs @@ -37,7 +37,8 @@ impl Layout for ColumnsNode { regions: &Regions, ) -> Vec>> { // Separating the infinite space into infinite columns does not make - // much sense. + // much sense. Note that this line assumes that no infinitely wide + // region will follow if the first region's width is finite. if regions.current.x.is_infinite() { return self.child.layout(ctx, regions); } @@ -53,10 +54,11 @@ impl Layout for ColumnsNode { for (current, base) in std::iter::once((regions.current, regions.base)) .chain(regions.backlog.as_slice().iter().map(|&s| (s, s))) + .chain(regions.last.iter().map(|&s| (s, s))) { let gutter = self.gutter.resolve(base.x); gutters.push(gutter); - let size = Spec::new( + let size = Size::new( (current.x - gutter * (columns - 1) as f64) / columns as f64, current.y, ); @@ -67,36 +69,25 @@ impl Layout for ColumnsNode { let first = sizes.remove(0); let mut pod = - Regions::one(first, Spec::new(first.x, regions.base.y), regions.expand); - pod.backlog = sizes.clone().into_iter(); + Regions::one(first, Size::new(first.x, regions.base.y), regions.expand); pod.expand.x = true; - // We have to treat the last region separately. - let last_column_gutter = regions.last.map(|last| { - let gutter = self.gutter.resolve(last.x); - let size = Spec::new( - (last.x - gutter * (columns - 1) as f64) / columns as f64, - last.y, - ); + // Retrieve elements for the last region from the vectors. + let last_gutter = if regions.last.is_some() { + let gutter = gutters.pop().unwrap(); + let size = sizes.drain(sizes.len() - columns ..).next().unwrap(); pod.last = Some(size); - (size, gutter) - }); + Some(gutter) + } else { + None + }; + + pod.backlog = sizes.into_iter(); let frames = self.child.layout(ctx, &pod); let dir = ctx.styles.get(ParNode::DIR); - // Dealing with infinite height areas here. - let height = if regions.current.y.is_infinite() { - frames - .iter() - .map(|frame| frame.item.size.y) - .max() - .unwrap_or(Length::zero()) - } else { - regions.current.y - }; - let to = |cursor: Length, width: Length, regions: &Regions| { if dir.is_positive() { cursor @@ -108,39 +99,43 @@ impl Layout for ColumnsNode { let mut frames = frames.into_iter(); let mut res = vec![]; - let mut frame = Frame::new(Spec::new(regions.current.x, height)); let total_regions = (frames.len() as f32 / columns as f32).ceil() as usize; for (i, (current, base)) in regions.iter().take(total_regions).enumerate() { + // The height should be the parent height if the node shall expand. + // Otherwise its the maximum column height for the frame. In that + // case, the frame is first created with zero height and then + // resized. + let mut height = if regions.expand.y { current.y } else { Length::zero() }; + let mut frame = Frame::new(Spec::new(regions.current.x, height)); + for _ in 0 .. columns { let child_frame = match frames.next() { Some(frame) => frame.item, None => break, }; - let size = child_frame.size.x; + let width = child_frame.size.x; + + if !regions.expand.y { + height = height.max(child_frame.size.y); + } frame.push_frame( - Point::new(to(cursor, size, ®ions), Length::zero()), + Point::new(to(cursor, width, ®ions), Length::zero()), child_frame, ); - cursor += size - + gutters - .get(i) - .copied() - .unwrap_or_else(|| last_column_gutter.unwrap().1) + cursor += width + + gutters.get(i).copied().unwrap_or_else(|| last_gutter.unwrap()); } - let old_frame = std::mem::replace( - &mut frame, - Frame::new(Spec::new(regions.current.x, height)), - ); + frame.size.y = height; let mut cts = Constraints::new(regions.expand); cts.base = base.map(Some); cts.exact = current.map(Some); - res.push(old_frame.constrain(cts)); + res.push(frame.constrain(cts)); cursor = Length::zero(); } diff --git a/tests/ref/layout/columns.png b/tests/ref/layout/columns.png index a9e7f6619048d08da2f74169c174265501efa26d..34eb19076a4cfcc418fb01836d88087b25028a6e 100644 GIT binary patch literal 37999 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 literal 37509 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 diff --git a/tests/typ/layout/columns.typ b/tests/typ/layout/columns.typ index ed0eb5d69..7683c55e3 100644 --- a/tests/typ/layout/columns.typ +++ b/tests/typ/layout/columns.typ @@ -1,14 +1,16 @@ // Test the column layouter. --- -// Test columns for a sized page. -#set page(height: 4.3cm, width: 7.05cm, columns: 2) +// Test normal operation and RTL directions. +#set page(height: 3.25cm, width: 7.05cm, columns: 2, column-gutter: 30pt) +#set text("Noto Sans Arabic", serif) +#set par(lang: "ar") -Lorem ipsum dolor sit amet is a common blind text -and I again am in need of filling up this page so I'm -returning to this trusty tool of tangible terror. -Sure, it is not the most creative way of filling up -a page for a test but it does get the job done. +#rect(fill: conifer, height: 8pt, width: 6pt) وتحفيز +العديد من التفاعلات الكيميائية. (DNA) من أهم الأحماض النووية التي تُشكِّل +إلى جانب كل من البروتينات والليبيدات والسكريات المتعددة +#rect(fill: eastern, height: 8pt, width: 6pt) +الجزيئات الضخمة الأربعة الضرورية للحياة. --- // Test the `columns` function. @@ -22,43 +24,49 @@ a page for a test but it does get the job done. ])) --- -// Test more than two columns. -#set page(height: 2cm, width: 7.05cm, columns: 3) -#set par(align: center) +// Test columns for a sized page. +#set page(height: 5cm, width: 7.05cm, columns: 2) -#circle(fill: eastern) -#circle(fill: conifer) -#circle(fill: eastern) +Lorem ipsum dolor sit amet is a common blind text +and I again am in need of filling up this page +#align(bottom, rect(fill: eastern, width: 100%, height: 12pt)) +#colbreak() + +so I'm returning to this trusty tool of tangible terror. +Sure, it is not the most creative way of filling up +a page for a test but it does get the job done. --- -// Test setting a column gutter. -#set page(height: 3.25cm, width: 7.05cm, columns: 2, column-gutter: 30pt) +// Test the expansion behavior. +#set page(height: 2.5cm, width: 7.05cm) + +#rect(padding: 6pt, columns(2, [ + ABC \ + BCD + #colbreak() + DEF +])) + +--- +// Test setting a column gutter and more than two columns. +#set page(height: 3.25cm, width: 7.05cm, columns: 3, column-gutter: 30pt) #rect(width: 100%, height: 2.5cm, fill: conifer) #rect(width: 100%, height: 2cm, fill: eastern) +#circle(fill: eastern) --- -// Test RTL columns. -#set page(height: 3.25cm, width: 7.05cm, columns: 2, column-gutter: 30pt) -#set text("Noto Sans Arabic", serif) -#set par(lang: "ar") - -#rect(fill: conifer, height: 8pt, width: 6pt) وتحفيز -العديد من التفاعلات الكيميائية. (DNA) من أهم الأحماض النووية التي تُشكِّل -إلى جانب كل من البروتينات والليبيدات والسكريات المتعددة -#rect(fill: eastern, height: 8pt, width: 6pt) -الجزيئات الضخمة الأربعة الضرورية للحياة. - ---- -// Test the `colbreak` function. +// Test the `colbreak` and `pagebreak` functions. #set page(height: 1cm, width: 7.05cm, columns: 2) A #colbreak() #colbreak() B -#colbreak() +#pagebreak() C +#colbreak() +D --- // Test an empty second column. @@ -96,3 +104,5 @@ This is a normal page. Very normal. #set page(height: auto, width: 7.05cm, columns: 0) This makes less sense. + +// colbreak in auto stroke box on sized page that should be higher than box \ No newline at end of file