summaryrefslogtreecommitdiff
path: root/tests/suite/layout
diff options
context:
space:
mode:
authorPgBiel <9021226+PgBiel@users.noreply.github.com>2024-08-29 11:32:18 -0300
committerGitHub <noreply@github.com>2024-08-29 14:32:18 +0000
commite6cdcc53f3ba4dc1a0375f09249f3a09ea177cd4 (patch)
tree0c7a4a9d203c12995b563e215291f7de57c477da /tests/suite/layout
parentef4482ce4b084aa97155dbde89f02dda3f7fb219 (diff)
Line numbers (#4516)
Diffstat (limited to 'tests/suite/layout')
-rw-r--r--tests/suite/layout/line-numbers.typ249
1 files changed, 249 insertions, 0 deletions
diff --git a/tests/suite/layout/line-numbers.typ b/tests/suite/layout/line-numbers.typ
new file mode 100644
index 00000000..5ee53e25
--- /dev/null
+++ b/tests/suite/layout/line-numbers.typ
@@ -0,0 +1,249 @@
+--- line-numbers-enable ---
+#set page(margin: (left: 1.5cm))
+#set par.line(numbering: "1")
+
+First line \
+Second line \
+Third line
+
+--- line-numbers-clearance ---
+#set page(margin: (left: 1.5cm))
+#set par.line(numbering: "1", number-clearance: 0cm)
+
+First line \
+Second line \
+Third line
+
+--- line-numbers-margin ---
+#set page(margin: (right: 3cm))
+#set par.line(numbering: "1", number-clearance: 1.5cm, number-margin: end)
+
+First line \
+Second line \
+Third line
+
+--- line-numbers-default-alignment ---
+#set page(margin: (left: 2cm))
+#set par.line(numbering: "1")
+a
+#([\ a] * 15)
+
+--- line-numbers-start-alignment ---
+#set page(margin: (left: 2cm))
+#set par.line(numbering: "i", number-align: start)
+a \
+a
+#pagebreak()
+a \
+a \
+a
+
+--- line-numbers-auto-alignment ---
+#set page(margin: (right: 3cm))
+#set par.line(numbering: "i", number-clearance: 1.5cm, number-margin: end)
+
+First line \
+Second line \
+Third line
+
+--- line-numbers-rtl ---
+#set page(margin: (right: 2cm))
+#set text(dir: rtl)
+#set par.line(numbering: "1")
+a
+#([\ a] * 15)
+
+--- line-numbers-columns ---
+#set page(columns: 2, margin: (x: 1.5em))
+#set par.line(numbering: "1", number-clearance: 0.5em)
+
+Hello \
+Beautiful \
+World
+#colbreak()
+Birds \
+In the \
+Sky
+
+--- line-numbers-columns-alignment ---
+#set page(columns: 2, margin: (x: 1.5em))
+#set par.line(numbering: "i", number-clearance: 0.5em)
+
+Hello \
+Beautiful \
+World
+#colbreak()
+Birds \
+In the \
+Sky
+
+--- line-numbers-multi-columns ---
+#set page(columns: 3, margin: (x: 1.5em))
+#set par.line(numbering: "1", number-clearance: 0.5em)
+
+A \
+B \
+C
+#colbreak()
+D \
+E \
+F
+#colbreak()
+G \
+H \
+I
+
+--- line-numbers-columns-rtl ---
+#set page(columns: 2, margin: (x: 1.5em))
+#set par.line(numbering: "1", number-clearance: 0.5em)
+#set text(dir: rtl)
+
+Hello \
+Beautiful \
+World
+#colbreak()
+Birds \
+In the \
+Sky
+
+--- line-numbers-columns-override ---
+#set columns(gutter: 1.5em)
+#set page(columns: 2, margin: (x: 1.5em))
+#set par.line(numbering: "1", number-margin: end, number-clearance: 0.5em)
+
+Hello \
+Beautiful \
+World
+#colbreak()
+Birds \
+In the \
+Sky
+
+--- line-numbers-page-scope ---
+#set page(margin: (left: 2cm))
+#set par.line(numbering: "1", numbering-scope: "page")
+
+First line \
+Second line
+#pagebreak()
+Back to first line \
+Second line again
+#page[
+ Once again, first \
+ And second
+]
+Back to first
+
+--- line-numbers-page-scope-with-columns ---
+#set page(margin: (x: 1.1cm), columns: 2)
+#set par.line(
+ numbering: "1",
+ number-clearance: 0.5cm,
+ numbering-scope: "page"
+)
+
+A \
+A \
+A
+#colbreak()
+B \
+B \
+B
+#pagebreak()
+One \
+Two \
+Three
+#colbreak()
+Four \
+Five \
+Six
+#page[
+ Page \
+ Elem
+ #colbreak()
+ Number \
+ Reset
+]
+We're back
+#colbreak()
+Bye!
+
+--- line-numbers-page-scope-quasi-empty-first-column ---
+// Ensure this case (handled separately internally) is properly handled.
+#set page(margin: (x: 1.1cm), height: 2cm, columns: 2)
+#set par.line(
+ numbering: "1",
+ number-clearance: 0.5cm,
+ numbering-scope: "page"
+)
+
+First line
+#colbreak()
+Second line
+#pagebreak()
+#place[]
+#box(height: 2cm)[First!]
+
+--- line-numbers-nested-content ---
+#set page(margin: (left: 1.5cm))
+#set par.line(numbering: "1", number-clearance: 0.5cm)
+
+#grid(
+ columns: (1fr, 1fr),
+ column-gutter: 0.5cm,
+ inset: 5pt,
+ block[A\ #box(lorem(5))], [Roses\ are\ red],
+ [AAA], [],
+ [], block[BBB\ CCC],
+)
+
+--- line-numbers-place-out-of-order ---
+#set page(margin: (left: 1.5cm))
+#set par.line(numbering: "1", number-clearance: 0.5cm)
+
+#place(bottom)[Line 4]
+
+Line 1\
+Line 2\
+Line 3
+#v(1cm)
+
+--- line-numbers-deduplication ---
+#set page(margin: (left: 1.5cm))
+#set par.line(numbering: "1", number-clearance: 0.5cm)
+
+#grid(
+ columns: (1fr, 1fr),
+ column-gutter: 0.5cm,
+ row-gutter: 5pt,
+ lorem(5), [A\ B\ C],
+ [DDD], [DDD],
+ [This is], move(dy: 2pt)[tough]
+)
+
+--- line-numbers-deduplication-tall-line ---
+#set page(margin: (left: 1.5cm))
+#set par.line(numbering: "1", number-clearance: 0.5cm)
+
+#grid(
+ columns: (1fr, 1fr),
+ column-gutter: 0.5cm,
+ stroke: 0.5pt,
+
+ grid.cell(rowspan: 2)[very #box(fill: red, height: 4cm)[tall]],
+ grid.cell(inset: (y: 0.5pt))[Line 1\ Line 2\ Line 3],
+ grid.cell(inset: (y: 0.5pt))[Line 4\ Line 5\ Line 6\ Line 7\ Line 8\ Line 9\ End]
+)
+
+--- line-numbers-deduplication-zero-height-number ---
+#set page(margin: (left: 1.5cm))
+#set par.line(numbering: n => move(dy: -0.6em, box(height: 0pt)[#n]), number-clearance: 0.5cm)
+
+#grid(
+ columns: (1fr, 1fr),
+ column-gutter: 0.5cm,
+ row-gutter: 5pt,
+ lorem(5), [A\ B\ C],
+ [DDD], [DDD],
+ [This is], move(dy: 3pt)[tough]
+)