From e6cdcc53f3ba4dc1a0375f09249f3a09ea177cd4 Mon Sep 17 00:00:00 2001 From: PgBiel <9021226+PgBiel@users.noreply.github.com> Date: Thu, 29 Aug 2024 11:32:18 -0300 Subject: Line numbers (#4516) --- tests/ref/line-numbers-auto-alignment.png | Bin 0 -> 1099 bytes tests/ref/line-numbers-clearance.png | Bin 0 -> 880 bytes tests/ref/line-numbers-columns-alignment.png | Bin 0 -> 1255 bytes tests/ref/line-numbers-columns-override.png | Bin 0 -> 1206 bytes tests/ref/line-numbers-columns-rtl.png | Bin 0 -> 1208 bytes tests/ref/line-numbers-columns.png | Bin 0 -> 1224 bytes tests/ref/line-numbers-deduplication-tall-line.png | Bin 0 -> 4021 bytes ...ne-numbers-deduplication-zero-height-number.png | Bin 0 -> 1701 bytes tests/ref/line-numbers-deduplication.png | Bin 0 -> 1668 bytes tests/ref/line-numbers-default-alignment.png | Bin 0 -> 1347 bytes tests/ref/line-numbers-enable.png | Bin 0 -> 909 bytes tests/ref/line-numbers-margin.png | Bin 0 -> 1038 bytes tests/ref/line-numbers-multi-columns.png | Bin 0 -> 815 bytes tests/ref/line-numbers-nested-content.png | Bin 0 -> 1802 bytes ...numbers-page-scope-quasi-empty-first-column.png | Bin 0 -> 917 bytes tests/ref/line-numbers-page-scope-with-columns.png | Bin 0 -> 2316 bytes tests/ref/line-numbers-page-scope.png | Bin 0 -> 2220 bytes tests/ref/line-numbers-place-out-of-order.png | Bin 0 -> 791 bytes tests/ref/line-numbers-rtl.png | Bin 0 -> 1364 bytes tests/ref/line-numbers-start-alignment.png | Bin 0 -> 469 bytes tests/suite/layout/line-numbers.typ | 249 +++++++++++++++++++++ 21 files changed, 249 insertions(+) create mode 100644 tests/ref/line-numbers-auto-alignment.png create mode 100644 tests/ref/line-numbers-clearance.png create mode 100644 tests/ref/line-numbers-columns-alignment.png create mode 100644 tests/ref/line-numbers-columns-override.png create mode 100644 tests/ref/line-numbers-columns-rtl.png create mode 100644 tests/ref/line-numbers-columns.png create mode 100644 tests/ref/line-numbers-deduplication-tall-line.png create mode 100644 tests/ref/line-numbers-deduplication-zero-height-number.png create mode 100644 tests/ref/line-numbers-deduplication.png create mode 100644 tests/ref/line-numbers-default-alignment.png create mode 100644 tests/ref/line-numbers-enable.png create mode 100644 tests/ref/line-numbers-margin.png create mode 100644 tests/ref/line-numbers-multi-columns.png create mode 100644 tests/ref/line-numbers-nested-content.png create mode 100644 tests/ref/line-numbers-page-scope-quasi-empty-first-column.png create mode 100644 tests/ref/line-numbers-page-scope-with-columns.png create mode 100644 tests/ref/line-numbers-page-scope.png create mode 100644 tests/ref/line-numbers-place-out-of-order.png create mode 100644 tests/ref/line-numbers-rtl.png create mode 100644 tests/ref/line-numbers-start-alignment.png create mode 100644 tests/suite/layout/line-numbers.typ (limited to 'tests') diff --git a/tests/ref/line-numbers-auto-alignment.png b/tests/ref/line-numbers-auto-alignment.png new file mode 100644 index 00000000..80f8d45d Binary files /dev/null and b/tests/ref/line-numbers-auto-alignment.png differ diff --git a/tests/ref/line-numbers-clearance.png b/tests/ref/line-numbers-clearance.png new file mode 100644 index 00000000..142d3a2f Binary files /dev/null and b/tests/ref/line-numbers-clearance.png differ diff --git a/tests/ref/line-numbers-columns-alignment.png b/tests/ref/line-numbers-columns-alignment.png new file mode 100644 index 00000000..6367bf08 Binary files /dev/null and b/tests/ref/line-numbers-columns-alignment.png differ diff --git a/tests/ref/line-numbers-columns-override.png b/tests/ref/line-numbers-columns-override.png new file mode 100644 index 00000000..d89b6007 Binary files /dev/null and b/tests/ref/line-numbers-columns-override.png differ diff --git a/tests/ref/line-numbers-columns-rtl.png b/tests/ref/line-numbers-columns-rtl.png new file mode 100644 index 00000000..e2108016 Binary files /dev/null and b/tests/ref/line-numbers-columns-rtl.png differ diff --git a/tests/ref/line-numbers-columns.png b/tests/ref/line-numbers-columns.png new file mode 100644 index 00000000..e6e3cd51 Binary files /dev/null and b/tests/ref/line-numbers-columns.png differ diff --git a/tests/ref/line-numbers-deduplication-tall-line.png b/tests/ref/line-numbers-deduplication-tall-line.png new file mode 100644 index 00000000..d34a13d6 Binary files /dev/null and b/tests/ref/line-numbers-deduplication-tall-line.png differ diff --git a/tests/ref/line-numbers-deduplication-zero-height-number.png b/tests/ref/line-numbers-deduplication-zero-height-number.png new file mode 100644 index 00000000..b203a455 Binary files /dev/null and b/tests/ref/line-numbers-deduplication-zero-height-number.png differ diff --git a/tests/ref/line-numbers-deduplication.png b/tests/ref/line-numbers-deduplication.png new file mode 100644 index 00000000..82493421 Binary files /dev/null and b/tests/ref/line-numbers-deduplication.png differ diff --git a/tests/ref/line-numbers-default-alignment.png b/tests/ref/line-numbers-default-alignment.png new file mode 100644 index 00000000..5a39674d Binary files /dev/null and b/tests/ref/line-numbers-default-alignment.png differ diff --git a/tests/ref/line-numbers-enable.png b/tests/ref/line-numbers-enable.png new file mode 100644 index 00000000..927096a5 Binary files /dev/null and b/tests/ref/line-numbers-enable.png differ diff --git a/tests/ref/line-numbers-margin.png b/tests/ref/line-numbers-margin.png new file mode 100644 index 00000000..94e03b26 Binary files /dev/null and b/tests/ref/line-numbers-margin.png differ diff --git a/tests/ref/line-numbers-multi-columns.png b/tests/ref/line-numbers-multi-columns.png new file mode 100644 index 00000000..45cb5378 Binary files /dev/null and b/tests/ref/line-numbers-multi-columns.png differ diff --git a/tests/ref/line-numbers-nested-content.png b/tests/ref/line-numbers-nested-content.png new file mode 100644 index 00000000..570aa6b0 Binary files /dev/null and b/tests/ref/line-numbers-nested-content.png differ diff --git a/tests/ref/line-numbers-page-scope-quasi-empty-first-column.png b/tests/ref/line-numbers-page-scope-quasi-empty-first-column.png new file mode 100644 index 00000000..4606311d Binary files /dev/null and b/tests/ref/line-numbers-page-scope-quasi-empty-first-column.png differ diff --git a/tests/ref/line-numbers-page-scope-with-columns.png b/tests/ref/line-numbers-page-scope-with-columns.png new file mode 100644 index 00000000..99864a60 Binary files /dev/null and b/tests/ref/line-numbers-page-scope-with-columns.png differ diff --git a/tests/ref/line-numbers-page-scope.png b/tests/ref/line-numbers-page-scope.png new file mode 100644 index 00000000..330cfe10 Binary files /dev/null and b/tests/ref/line-numbers-page-scope.png differ diff --git a/tests/ref/line-numbers-place-out-of-order.png b/tests/ref/line-numbers-place-out-of-order.png new file mode 100644 index 00000000..b1a4050a Binary files /dev/null and b/tests/ref/line-numbers-place-out-of-order.png differ diff --git a/tests/ref/line-numbers-rtl.png b/tests/ref/line-numbers-rtl.png new file mode 100644 index 00000000..58ed9d09 Binary files /dev/null and b/tests/ref/line-numbers-rtl.png differ diff --git a/tests/ref/line-numbers-start-alignment.png b/tests/ref/line-numbers-start-alignment.png new file mode 100644 index 00000000..edc3dd15 Binary files /dev/null and b/tests/ref/line-numbers-start-alignment.png differ 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] +) -- cgit v1.2.3