diff --git a/library/src/visualize/line.rs b/library/src/visualize/line.rs index 4b4867809..a8b0e334a 100644 --- a/library/src/visualize/line.rs +++ b/library/src/visualize/line.rs @@ -96,7 +96,8 @@ impl Layout for LineNode { .zip(regions.base) .map(|(l, b)| l.relative_to(b)); - let target = regions.expand.select(regions.first, Size::zero()); + let size = origin.max(origin + delta).max(Size::zero()); + let target = regions.expand.select(regions.first, size); let mut frame = Frame::new(target); let shape = Geometry::Line(delta.to_point()).stroked(stroke); diff --git a/tests/ref/visualize/line.png b/tests/ref/visualize/line.png index 4a73ccd73..89323f768 100644 Binary files a/tests/ref/visualize/line.png and b/tests/ref/visualize/line.png differ diff --git a/tests/typ/visualize/line.typ b/tests/typ/visualize/line.typ index 2085daa13..a7bca6135 100644 --- a/tests/typ/visualize/line.typ +++ b/tests/typ/visualize/line.typ @@ -1,17 +1,16 @@ -// Test lines +// Test lines. --- -// Default line. -#line() +#set page(height: 60pt) +#box({ + set line(stroke: 0.75pt) + place(line(end: (0.4em, 0pt))) + place(line(start: (0pt, 0.4em), end: (0pt, 0pt))) + line(end: (0.6em, 0.6em)) +}) +Hello #line()! ---- -// Test the `end` argument. -#{ - line(end: (10pt, 0pt)) - line(start: (0pt, 10pt), end: (0pt, 0pt)) - line(end: (15pt, 15pt)) -} -#v(.5cm) +#line(end: (70%, 50%)) --- // Test the angle argument and positioning. @@ -19,20 +18,21 @@ #set page(fill: rgb("0B1026")) #set line(stroke: white) -#let star(width, ..args) = box(width: width, height: width)[ +#let star(size, ..args) = box(width: size, height: size)[ #set text(spacing: 0%) #set line(..args) #set align(left) - #line(length: +30%, start: (09.0%, 02%)) - #line(length: +30%, start: (38.7%, 02%), angle: -72deg) - #line(length: +30%, start: (57.5%, 02%), angle: 252deg) - #line(length: +30%, start: (57.3%, 02%)) - #line(length: -30%, start: (88.0%, 02%), angle: -36deg) - #line(length: +30%, start: (73.3%, 48%), angle: 252deg) - #line(length: -30%, start: (73.5%, 48%), angle: 36deg) - #line(length: +30%, start: (25.4%, 48%), angle: -36deg) - #line(length: +30%, start: (25.6%, 48%), angle: -72deg) - #line(length: +32%, start: (8.50%, 02%), angle: 34deg) + #v(30%) + #place(line(length: +30%, start: (09.0%, 02%))) + #place(line(length: +30%, start: (38.7%, 02%), angle: -72deg)) + #place(line(length: +30%, start: (57.5%, 02%), angle: 252deg)) + #place(line(length: +30%, start: (57.3%, 02%))) + #place(line(length: -30%, start: (88.0%, 02%), angle: -36deg)) + #place(line(length: +30%, start: (73.3%, 48%), angle: 252deg)) + #place(line(length: -30%, start: (73.5%, 48%), angle: 36deg)) + #place(line(length: +30%, start: (25.4%, 48%), angle: -36deg)) + #place(line(length: +30%, start: (25.6%, 48%), angle: -72deg)) + #place(line(length: +32%, start: (8.50%, 02%), angle: 34deg)) ] #align(center, grid(