From d8801231dd22695aa062832285ee2230839917cc Mon Sep 17 00:00:00 2001 From: lywa1998 Date: Wed, 12 Jul 2023 12:56:04 +0800 Subject: [PATCH] fix: search box --- docs/i18n/calculate/abs-en.yaml | 114 +- docs/i18n/calculate/acos-en.yaml | 104 +- docs/i18n/calculate/asin-en.yaml | 104 +- docs/i18n/calculate/atan-en.yaml | 104 +- docs/i18n/calculate/atan2-en.yaml | 138 +-- docs/i18n/calculate/binom-en.yaml | 130 +- docs/i18n/calculate/ceil-en.yaml | 108 +- docs/i18n/calculate/clamp-en.yaml | 172 +-- docs/i18n/calculate/cos-en.yaml | 112 +- docs/i18n/calculate/cosh-en.yaml | 108 +- docs/i18n/calculate/even-en.yaml | 104 +- docs/i18n/calculate/exp-en.yaml | 102 +- docs/i18n/calculate/fact-en.yaml | 100 +- docs/i18n/calculate/floor-en.yaml | 108 +- docs/i18n/calculate/fract-en.yaml | 108 +- docs/i18n/calculate/gcd-en.yaml | 130 +- docs/i18n/calculate/lcm-en.yaml | 130 +- docs/i18n/calculate/ln-en.yaml | 102 +- docs/i18n/calculate/log-en.yaml | 134 +-- docs/i18n/calculate/max-en.yaml | 106 +- docs/i18n/calculate/min-en.yaml | 106 +- docs/i18n/calculate/odd-en.yaml | 104 +- docs/i18n/calculate/perm-en.yaml | 130 +- docs/i18n/calculate/pow-en.yaml | 136 +-- docs/i18n/calculate/quo-en.yaml | 136 +-- docs/i18n/calculate/rem-en.yaml | 138 +-- docs/i18n/calculate/round-en.yaml | 140 +-- docs/i18n/calculate/sin-en.yaml | 112 +- docs/i18n/calculate/sinh-en.yaml | 108 +- docs/i18n/calculate/sqrt-en.yaml | 104 +- docs/i18n/calculate/tan-en.yaml | 110 +- docs/i18n/calculate/tanh-en.yaml | 108 +- docs/i18n/calculate/trunc-en.yaml | 108 +- docs/i18n/construct/cmyk-en.yaml | 198 ++-- docs/i18n/construct/datetime-en.yaml | 388 +++--- docs/i18n/construct/float-en.yaml | 130 +- docs/i18n/construct/int-en.yaml | 120 +- docs/i18n/construct/label-en.yaml | 124 +- docs/i18n/construct/luma-en.yaml | 104 +- docs/i18n/construct/range-en.yaml | 172 +-- docs/i18n/construct/regex-en.yaml | 136 +-- docs/i18n/construct/rgb-en.yaml | 254 ++-- docs/i18n/construct/str-en.yaml | 312 ++--- docs/i18n/construct/symbol-en.yaml | 136 +-- docs/i18n/data-loading/csv-en.yaml | 152 +-- docs/i18n/data-loading/json-en.yaml | 154 +-- docs/i18n/data-loading/read-en.yaml | 106 +- docs/i18n/data-loading/toml-en.yaml | 124 +- docs/i18n/data-loading/xml-en.yaml | 180 +-- docs/i18n/data-loading/yaml-en.yaml | 150 +-- docs/i18n/foundations/assert-en.yaml | 436 +++---- docs/i18n/foundations/eval-en.yaml | 108 +- docs/i18n/foundations/panic-en.yaml | 98 +- docs/i18n/foundations/repr-en.yaml | 114 +- docs/i18n/foundations/type-en.yaml | 110 +- docs/i18n/layout/align-en.yaml | 198 ++-- docs/i18n/layout/align-zh.yaml | 18 +- docs/i18n/layout/block-en.yaml | 628 +++++----- docs/i18n/layout/block-zh.yaml | 11 +- docs/i18n/layout/box-en.yaml | 470 ++++---- docs/i18n/layout/colbreak-en.yaml | 134 +-- docs/i18n/layout/columns-en.yaml | 200 ++-- docs/i18n/layout/enum-en.yaml | 678 +++++------ docs/i18n/layout/grid-en.yaml | 414 +++---- docs/i18n/layout/h-en.yaml | 176 +-- docs/i18n/layout/hide-en.yaml | 108 +- docs/i18n/layout/list-en.yaml | 452 +++---- docs/i18n/layout/measure-en.yaml | 170 +-- docs/i18n/layout/move-en.yaml | 180 +-- docs/i18n/layout/pad-en.yaml | 330 +++--- docs/i18n/layout/page-en.yaml | 1386 +++++++++++----------- docs/i18n/layout/pagebreak-en.yaml | 170 +-- docs/i18n/layout/par-en.yaml | 370 +++--- docs/i18n/layout/parbreak-en.yaml | 88 +- docs/i18n/layout/place-en.yaml | 234 ++-- docs/i18n/layout/repeat-en.yaml | 122 +- docs/i18n/layout/rotate-en.yaml | 200 ++-- docs/i18n/layout/scale-en.yaml | 208 ++-- docs/i18n/layout/stack-en.yaml | 194 +-- docs/i18n/layout/table-en.yaml | 566 ++++----- docs/i18n/layout/terms-en.yaml | 464 ++++---- docs/i18n/layout/v-en.yaml | 178 +-- docs/i18n/math/accent-en.yaml | 182 +-- docs/i18n/math/attach-en.yaml | 554 ++++----- docs/i18n/math/binom-en.yaml | 128 +- docs/i18n/math/cancel-en.yaml | 322 ++--- docs/i18n/math/cases-en.yaml | 166 +-- docs/i18n/math/equation-en.yaml | 276 ++--- docs/i18n/math/frac-en.yaml | 146 +-- docs/i18n/math/lr-en.yaml | 566 ++++----- docs/i18n/math/mat-en.yaml | 186 +-- docs/i18n/math/op-en.yaml | 152 +-- docs/i18n/math/roots-en.yaml | 224 ++-- docs/i18n/math/sizes-en.yaml | 508 ++++---- docs/i18n/math/styles-en.yaml | 268 ++--- docs/i18n/math/underover-en.yaml | 646 +++++----- docs/i18n/math/variants-en.yaml | 516 ++++---- docs/i18n/math/vec-en.yaml | 160 +-- docs/i18n/meta/bibliography-en.yaml | 260 ++-- docs/i18n/meta/cite-en.yaml | 308 ++--- docs/i18n/meta/counter-en.yaml | 834 ++++++------- docs/i18n/meta/document-en.yaml | 146 +-- docs/i18n/meta/figure-en.yaml | 480 ++++---- docs/i18n/meta/footnote-en.yaml | 504 ++++---- docs/i18n/meta/heading-en.yaml | 336 +++--- docs/i18n/meta/layout-en.yaml | 162 +-- docs/i18n/meta/link-en.yaml | 244 ++-- docs/i18n/meta/locate-en.yaml | 198 ++-- docs/i18n/meta/numbering-en.yaml | 202 ++-- docs/i18n/meta/outline-en.yaml | 796 ++++++------- docs/i18n/meta/query-en.yaml | 328 ++--- docs/i18n/meta/ref-en.yaml | 316 ++--- docs/i18n/meta/selector-en.yaml | 120 +- docs/i18n/meta/state-en.yaml | 652 +++++----- docs/i18n/meta/style-en.yaml | 120 +- docs/i18n/text/emph-en.yaml | 138 +-- docs/i18n/text/linebreak-en.yaml | 142 +-- docs/i18n/text/lorem-en.yaml | 114 +- docs/i18n/text/lower-en.yaml | 106 +- docs/i18n/text/overline-en.yaml | 294 ++--- docs/i18n/text/raw-en.yaml | 360 +++--- docs/i18n/text/smallcaps-en.yaml | 128 +- docs/i18n/text/smartquote-en.yaml | 170 +-- docs/i18n/text/strike-en.yaml | 240 ++-- docs/i18n/text/strong-en.yaml | 160 +-- docs/i18n/text/sub-en.yaml | 216 ++-- docs/i18n/text/super-en.yaml | 216 ++-- docs/i18n/text/text-en.yaml | 1642 +++++++++++++------------- docs/i18n/text/underline-en.yaml | 282 ++--- docs/i18n/text/upper-en.yaml | 106 +- docs/i18n/visualize/circle-en.yaml | 386 +++--- docs/i18n/visualize/ellipse-en.yaml | 338 +++--- docs/i18n/visualize/image-en.yaml | 260 ++-- docs/i18n/visualize/line-en.yaml | 348 +++--- docs/i18n/visualize/path-en.yaml | 268 ++--- docs/i18n/visualize/polygon-en.yaml | 206 ++-- docs/i18n/visualize/rect-en.yaml | 506 ++++---- docs/i18n/visualize/square-en.yaml | 422 +++---- static/assets/search-cn.json | 1 + static/scripts/docs.js | 2 +- static/styles/docs.css | 2 +- templates/base_template.html | 37 +- 142 files changed, 17068 insertions(+), 17039 deletions(-) create mode 100644 static/assets/search-cn.json diff --git a/docs/i18n/calculate/abs-en.yaml b/docs/i18n/calculate/abs-en.yaml index 74256ec36793..2cb0261ea317 100644 --- a/docs/i18n/calculate/abs-en.yaml +++ b/docs/i18n/calculate/abs-en.yaml @@ -1,57 +1,57 @@ -route: /docs/reference/calculate/abs/ -title: Absolute -description: Documentation for the `abs` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - abs - display: Absolute - keywords: null - oneliner: Calculates the absolute value of a numeric value. - element: false - details: |- -

Calculates the absolute value of a numeric value.

-

Example

-
#calc.abs(-5) \
-      #calc.abs(5pt - 2cm) \
-      #calc.abs(2fr)
-      
Preview
- params: - - name: value - details:

The value whose absolute value to calculate.

- example: null - types: - - integer - - float - - length - - angle - - ratio - - fraction - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/abs/ +title: Absolute +description: Documentation for the `abs` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - abs + display: Absolute + keywords: null + oneliner: Calculates the absolute value of a numeric value. + element: false + details: |- +

Calculates the absolute value of a numeric value.

+

Example

+
#calc.abs(-5) \
+      #calc.abs(5pt - 2cm) \
+      #calc.abs(2fr)
+      
Preview
+ params: + - name: value + details:

The value whose absolute value to calculate.

+ example: null + types: + - integer + - float + - length + - angle + - ratio + - fraction + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/acos-en.yaml b/docs/i18n/calculate/acos-en.yaml index 608bc2611971..fa289143a1ac 100644 --- a/docs/i18n/calculate/acos-en.yaml +++ b/docs/i18n/calculate/acos-en.yaml @@ -1,52 +1,52 @@ -route: /docs/reference/calculate/acos/ -title: Arccosine -description: Documentation for the `acos` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - acos - display: Arccosine - keywords: null - oneliner: Calculates the arccosine of a number. - element: false - details: |- -

Calculates the arccosine of a number.

-

Example

-
#calc.acos(0) \
-      #calc.acos(1)
-      
Preview
- params: - - name: value - details:

The number whose arcsine to calculate. Must be between -1 and 1.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - angle - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/acos/ +title: Arccosine +description: Documentation for the `acos` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - acos + display: Arccosine + keywords: null + oneliner: Calculates the arccosine of a number. + element: false + details: |- +

Calculates the arccosine of a number.

+

Example

+
#calc.acos(0) \
+      #calc.acos(1)
+      
Preview
+ params: + - name: value + details:

The number whose arcsine to calculate. Must be between -1 and 1.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - angle + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/asin-en.yaml b/docs/i18n/calculate/asin-en.yaml index 1ff8c2cc4a35..d77895d09a91 100644 --- a/docs/i18n/calculate/asin-en.yaml +++ b/docs/i18n/calculate/asin-en.yaml @@ -1,52 +1,52 @@ -route: /docs/reference/calculate/asin/ -title: Arcsine -description: Documentation for the `asin` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - asin - display: Arcsine - keywords: null - oneliner: Calculates the arcsine of a number. - element: false - details: |- -

Calculates the arcsine of a number.

-

Example

-
#calc.asin(0) \
-      #calc.asin(1)
-      
Preview
- params: - - name: value - details:

The number whose arcsine to calculate. Must be between -1 and 1.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - angle - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/asin/ +title: Arcsine +description: Documentation for the `asin` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - asin + display: Arcsine + keywords: null + oneliner: Calculates the arcsine of a number. + element: false + details: |- +

Calculates the arcsine of a number.

+

Example

+
#calc.asin(0) \
+      #calc.asin(1)
+      
Preview
+ params: + - name: value + details:

The number whose arcsine to calculate. Must be between -1 and 1.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - angle + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/atan-en.yaml b/docs/i18n/calculate/atan-en.yaml index 4bd2131f1c9c..56535fb414ee 100644 --- a/docs/i18n/calculate/atan-en.yaml +++ b/docs/i18n/calculate/atan-en.yaml @@ -1,52 +1,52 @@ -route: /docs/reference/calculate/atan/ -title: Arctangent -description: Documentation for the `atan` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - atan - display: Arctangent - keywords: null - oneliner: Calculates the arctangent of a number. - element: false - details: |- -

Calculates the arctangent of a number.

-

Example

-
#calc.atan(0) \
-      #calc.atan(1)
-      
Preview
- params: - - name: value - details:

The number whose arctangent to calculate.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - angle - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/atan/ +title: Arctangent +description: Documentation for the `atan` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - atan + display: Arctangent + keywords: null + oneliner: Calculates the arctangent of a number. + element: false + details: |- +

Calculates the arctangent of a number.

+

Example

+
#calc.atan(0) \
+      #calc.atan(1)
+      
Preview
+ params: + - name: value + details:

The number whose arctangent to calculate.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - angle + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/atan2-en.yaml b/docs/i18n/calculate/atan2-en.yaml index e84f088753ac..6262a1a1f045 100644 --- a/docs/i18n/calculate/atan2-en.yaml +++ b/docs/i18n/calculate/atan2-en.yaml @@ -1,69 +1,69 @@ -route: /docs/reference/calculate/atan2/ -title: Four-quadrant Arctangent -description: Documentation for the `atan2` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-x - name: x - children: [] - - id: parameters-y - name: y - children: [] -body: - kind: func - content: - path: - - calc - - atan2 - display: Four-quadrant Arctangent - keywords: null - oneliner: Calculates the four-quadrant arctangent of a coordinate. - element: false - details: |- -

Calculates the four-quadrant arctangent of a coordinate.

-

The arguments are (x, y), not (y, x).

-

Example

-
#calc.atan2(1, 1) \
-      #calc.atan2(-2, -3)
-      
Preview
- params: - - name: x - details:

The X coordinate.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: y - details:

The Y coordinate.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - angle - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/atan2/ +title: Four-quadrant Arctangent +description: Documentation for the `atan2` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-x + name: x + children: [] + - id: parameters-y + name: y + children: [] +body: + kind: func + content: + path: + - calc + - atan2 + display: Four-quadrant Arctangent + keywords: null + oneliner: Calculates the four-quadrant arctangent of a coordinate. + element: false + details: |- +

Calculates the four-quadrant arctangent of a coordinate.

+

The arguments are (x, y), not (y, x).

+

Example

+
#calc.atan2(1, 1) \
+      #calc.atan2(-2, -3)
+      
Preview
+ params: + - name: x + details:

The X coordinate.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: y + details:

The Y coordinate.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - angle + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/binom-en.yaml b/docs/i18n/calculate/binom-en.yaml index 311680f67ffa..19ee9bfabc04 100644 --- a/docs/i18n/calculate/binom-en.yaml +++ b/docs/i18n/calculate/binom-en.yaml @@ -1,65 +1,65 @@ -route: /docs/reference/calculate/binom/ -title: Binomial -description: Documentation for the `binom` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-n - name: n - children: [] - - id: parameters-k - name: k - children: [] -body: - kind: func - content: - path: - - calc - - binom - display: Binomial - keywords: null - oneliner: Calculates a binomial coefficient. - element: false - details: |- -

Calculates a binomial coefficient.

-

Example

-
#calc.binom(10, 5)
-      
Preview
- params: - - name: n - details:

The upper coefficient. Must be non-negative.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: k - details:

The lower coefficient. Must be non-negative.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/binom/ +title: Binomial +description: Documentation for the `binom` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-n + name: n + children: [] + - id: parameters-k + name: k + children: [] +body: + kind: func + content: + path: + - calc + - binom + display: Binomial + keywords: null + oneliner: Calculates a binomial coefficient. + element: false + details: |- +

Calculates a binomial coefficient.

+

Example

+
#calc.binom(10, 5)
+      
Preview
+ params: + - name: n + details:

The upper coefficient. Must be non-negative.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: k + details:

The lower coefficient. Must be non-negative.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/ceil-en.yaml b/docs/i18n/calculate/ceil-en.yaml index a9e620a6dc4c..f4aeddc3ee08 100644 --- a/docs/i18n/calculate/ceil-en.yaml +++ b/docs/i18n/calculate/ceil-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/calculate/ceil/ -title: Round up -description: Documentation for the `ceil` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - ceil - display: Round up - keywords: null - oneliner: Rounds a number up to the nearest integer. - element: false - details: |- -

Rounds a number up to the nearest integer.

-

If the number is already an integer, it is returned unchanged.

-

Example

-
#assert(calc.ceil(3.14) == 4)
-      #assert(calc.ceil(3) == 3)
-      #calc.ceil(500.1)
-      
Preview
- params: - - name: value - details:

The number to round up.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/ceil/ +title: Round up +description: Documentation for the `ceil` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - ceil + display: Round up + keywords: null + oneliner: Rounds a number up to the nearest integer. + element: false + details: |- +

Rounds a number up to the nearest integer.

+

If the number is already an integer, it is returned unchanged.

+

Example

+
#assert(calc.ceil(3.14) == 4)
+      #assert(calc.ceil(3) == 3)
+      #calc.ceil(500.1)
+      
Preview
+ params: + - name: value + details:

The number to round up.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/clamp-en.yaml b/docs/i18n/calculate/clamp-en.yaml index 2e2129f864d5..50000c3e9bcb 100644 --- a/docs/i18n/calculate/clamp-en.yaml +++ b/docs/i18n/calculate/clamp-en.yaml @@ -1,86 +1,86 @@ -route: /docs/reference/calculate/clamp/ -title: Clamp -description: Documentation for the `clamp` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] - - id: parameters-min - name: min - children: [] - - id: parameters-max - name: max - children: [] -body: - kind: func - content: - path: - - calc - - clamp - display: Clamp - keywords: null - oneliner: Clamps a number between a minimum and maximum value. - element: false - details: |- -

Clamps a number between a minimum and maximum value.

-

Example

-
#assert(calc.clamp(5, 0, 10) == 5)
-      #assert(calc.clamp(5, 6, 10) == 6)
-      #calc.clamp(5, 0, 4)
-      
Preview
- params: - - name: value - details:

The number to clamp.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: min - details:

The inclusive minimum value.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: max - details:

The inclusive maximum value.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/clamp/ +title: Clamp +description: Documentation for the `clamp` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] + - id: parameters-min + name: min + children: [] + - id: parameters-max + name: max + children: [] +body: + kind: func + content: + path: + - calc + - clamp + display: Clamp + keywords: null + oneliner: Clamps a number between a minimum and maximum value. + element: false + details: |- +

Clamps a number between a minimum and maximum value.

+

Example

+
#assert(calc.clamp(5, 0, 10) == 5)
+      #assert(calc.clamp(5, 6, 10) == 6)
+      #calc.clamp(5, 0, 4)
+      
Preview
+ params: + - name: value + details:

The number to clamp.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: min + details:

The inclusive minimum value.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: max + details:

The inclusive maximum value.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/cos-en.yaml b/docs/i18n/calculate/cos-en.yaml index e85648a80aec..57d60eecd24c 100644 --- a/docs/i18n/calculate/cos-en.yaml +++ b/docs/i18n/calculate/cos-en.yaml @@ -1,56 +1,56 @@ -route: /docs/reference/calculate/cos/ -title: Cosine -description: Documentation for the `cos` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-angle - name: angle - children: [] -body: - kind: func - content: - path: - - calc - - cos - display: Cosine - keywords: null - oneliner: Calculates the cosine of an angle. - element: false - details: |- -

Calculates the cosine of an angle.

-

When called with an integer or a float, they will be interpreted as - radians.

-

Example

-
#calc.cos(90deg) \
-      #calc.cos(1.5) \
-      #calc.cos(90deg)
-      
Preview
- params: - - name: angle - details:

The angle whose cosine to calculate.

- example: null - types: - - integer - - float - - angle - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/cos/ +title: Cosine +description: Documentation for the `cos` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-angle + name: angle + children: [] +body: + kind: func + content: + path: + - calc + - cos + display: Cosine + keywords: null + oneliner: Calculates the cosine of an angle. + element: false + details: |- +

Calculates the cosine of an angle.

+

When called with an integer or a float, they will be interpreted as + radians.

+

Example

+
#calc.cos(90deg) \
+      #calc.cos(1.5) \
+      #calc.cos(90deg)
+      
Preview
+ params: + - name: angle + details:

The angle whose cosine to calculate.

+ example: null + types: + - integer + - float + - angle + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/cosh-en.yaml b/docs/i18n/calculate/cosh-en.yaml index 94a22b38808d..712024638ce5 100644 --- a/docs/i18n/calculate/cosh-en.yaml +++ b/docs/i18n/calculate/cosh-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/calculate/cosh/ -title: Hyperbolic cosine -description: Documentation for the `cosh` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-angle - name: angle - children: [] -body: - kind: func - content: - path: - - calc - - cosh - display: Hyperbolic cosine - keywords: null - oneliner: Calculates the hyperbolic cosine of an angle. - element: false - details: |- -

Calculates the hyperbolic cosine of an angle.

-

When called with an integer or a float, they will be interpreted as radians.

-

Example

-
#calc.cosh(0) \
-      #calc.cosh(45deg)
-      
Preview
- params: - - name: angle - details:

The angle whose hyperbolic cosine to calculate.

- example: null - types: - - integer - - float - - angle - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/cosh/ +title: Hyperbolic cosine +description: Documentation for the `cosh` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-angle + name: angle + children: [] +body: + kind: func + content: + path: + - calc + - cosh + display: Hyperbolic cosine + keywords: null + oneliner: Calculates the hyperbolic cosine of an angle. + element: false + details: |- +

Calculates the hyperbolic cosine of an angle.

+

When called with an integer or a float, they will be interpreted as radians.

+

Example

+
#calc.cosh(0) \
+      #calc.cosh(45deg)
+      
Preview
+ params: + - name: angle + details:

The angle whose hyperbolic cosine to calculate.

+ example: null + types: + - integer + - float + - angle + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/even-en.yaml b/docs/i18n/calculate/even-en.yaml index 62cab7d24fb7..95e564e48229 100644 --- a/docs/i18n/calculate/even-en.yaml +++ b/docs/i18n/calculate/even-en.yaml @@ -1,52 +1,52 @@ -route: /docs/reference/calculate/even/ -title: Even -description: Documentation for the `even` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - even - display: Even - keywords: null - oneliner: Determines whether an integer is even. - element: false - details: |- -

Determines whether an integer is even.

-

Example

-
#calc.even(4) \
-      #calc.even(5) \
-      #range(10).filter(calc.even)
-      
Preview
- params: - - name: value - details:

The number to check for evenness.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - boolean - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/even/ +title: Even +description: Documentation for the `even` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - even + display: Even + keywords: null + oneliner: Determines whether an integer is even. + element: false + details: |- +

Determines whether an integer is even.

+

Example

+
#calc.even(4) \
+      #calc.even(5) \
+      #range(10).filter(calc.even)
+      
Preview
+ params: + - name: value + details:

The number to check for evenness.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - boolean + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/exp-en.yaml b/docs/i18n/calculate/exp-en.yaml index 8a17c7748c2e..7327920dfc56 100644 --- a/docs/i18n/calculate/exp-en.yaml +++ b/docs/i18n/calculate/exp-en.yaml @@ -1,51 +1,51 @@ -route: /docs/reference/calculate/exp/ -title: Exponential -description: Documentation for the `exp` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-exponent - name: exponent - children: [] -body: - kind: func - content: - path: - - calc - - exp - display: Exponential - keywords: null - oneliner: Raises a value to some exponent of e. - element: false - details: |- -

Raises a value to some exponent of e.

-

Example

-
#calc.exp(1)
-      
Preview
- params: - - name: exponent - details:

The exponent of the power.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/exp/ +title: Exponential +description: Documentation for the `exp` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-exponent + name: exponent + children: [] +body: + kind: func + content: + path: + - calc + - exp + display: Exponential + keywords: null + oneliner: Raises a value to some exponent of e. + element: false + details: |- +

Raises a value to some exponent of e.

+

Example

+
#calc.exp(1)
+      
Preview
+ params: + - name: exponent + details:

The exponent of the power.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/fact-en.yaml b/docs/i18n/calculate/fact-en.yaml index 24081c82ba05..cafd48730e46 100644 --- a/docs/i18n/calculate/fact-en.yaml +++ b/docs/i18n/calculate/fact-en.yaml @@ -1,50 +1,50 @@ -route: /docs/reference/calculate/fact/ -title: Factorial -description: Documentation for the `fact` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-number - name: number - children: [] -body: - kind: func - content: - path: - - calc - - fact - display: Factorial - keywords: null - oneliner: Calculates the factorial of a number. - element: false - details: |- -

Calculates the factorial of a number.

-

Example

-
#calc.fact(5)
-      
Preview
- params: - - name: number - details:

The number whose factorial to calculate. Must be non-negative.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/fact/ +title: Factorial +description: Documentation for the `fact` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-number + name: number + children: [] +body: + kind: func + content: + path: + - calc + - fact + display: Factorial + keywords: null + oneliner: Calculates the factorial of a number. + element: false + details: |- +

Calculates the factorial of a number.

+

Example

+
#calc.fact(5)
+      
Preview
+ params: + - name: number + details:

The number whose factorial to calculate. Must be non-negative.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/floor-en.yaml b/docs/i18n/calculate/floor-en.yaml index 15181a5e068d..44a3190bad39 100644 --- a/docs/i18n/calculate/floor-en.yaml +++ b/docs/i18n/calculate/floor-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/calculate/floor/ -title: Round down -description: Documentation for the `floor` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - floor - display: Round down - keywords: null - oneliner: Rounds a number down to the nearest integer. - element: false - details: |- -

Rounds a number down to the nearest integer.

-

If the number is already an integer, it is returned unchanged.

-

Example

-
#assert(calc.floor(3.14) == 3)
-      #assert(calc.floor(3) == 3)
-      #calc.floor(500.1)
-      
Preview
- params: - - name: value - details:

The number to round down.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/floor/ +title: Round down +description: Documentation for the `floor` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - floor + display: Round down + keywords: null + oneliner: Rounds a number down to the nearest integer. + element: false + details: |- +

Rounds a number down to the nearest integer.

+

If the number is already an integer, it is returned unchanged.

+

Example

+
#assert(calc.floor(3.14) == 3)
+      #assert(calc.floor(3) == 3)
+      #calc.floor(500.1)
+      
Preview
+ params: + - name: value + details:

The number to round down.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/fract-en.yaml b/docs/i18n/calculate/fract-en.yaml index c7eb5c42e4ae..c0824442f7d7 100644 --- a/docs/i18n/calculate/fract-en.yaml +++ b/docs/i18n/calculate/fract-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/calculate/fract/ -title: Fractional -description: Documentation for the `fract` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - fract - display: Fractional - keywords: null - oneliner: Returns the fractional part of a number. - element: false - details: |- -

Returns the fractional part of a number.

-

If the number is an integer, returns 0.

-

Example

-
#assert(calc.fract(3) == 0)
-      #calc.fract(-3.1)
-      
Preview
- params: - - name: value - details:

The number to truncate.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/fract/ +title: Fractional +description: Documentation for the `fract` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - fract + display: Fractional + keywords: null + oneliner: Returns the fractional part of a number. + element: false + details: |- +

Returns the fractional part of a number.

+

If the number is an integer, returns 0.

+

Example

+
#assert(calc.fract(3) == 0)
+      #calc.fract(-3.1)
+      
Preview
+ params: + - name: value + details:

The number to truncate.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/gcd-en.yaml b/docs/i18n/calculate/gcd-en.yaml index 7657c97c6638..f01187320d5a 100644 --- a/docs/i18n/calculate/gcd-en.yaml +++ b/docs/i18n/calculate/gcd-en.yaml @@ -1,65 +1,65 @@ -route: /docs/reference/calculate/gcd/ -title: Greatest Common Divisor -description: Documentation for the `gcd` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-a - name: a - children: [] - - id: parameters-b - name: b - children: [] -body: - kind: func - content: - path: - - calc - - gcd - display: Greatest Common Divisor - keywords: null - oneliner: Calculates the greatest common divisor of two integers. - element: false - details: |- -

Calculates the greatest common divisor of two integers.

-

Example

-
#calc.gcd(7, 42)
-      
Preview
- params: - - name: a - details:

The first integer.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: b - details:

The second integer.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/gcd/ +title: Greatest Common Divisor +description: Documentation for the `gcd` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-a + name: a + children: [] + - id: parameters-b + name: b + children: [] +body: + kind: func + content: + path: + - calc + - gcd + display: Greatest Common Divisor + keywords: null + oneliner: Calculates the greatest common divisor of two integers. + element: false + details: |- +

Calculates the greatest common divisor of two integers.

+

Example

+
#calc.gcd(7, 42)
+      
Preview
+ params: + - name: a + details:

The first integer.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: b + details:

The second integer.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/lcm-en.yaml b/docs/i18n/calculate/lcm-en.yaml index c7ca5fb5cb33..b14854d8467d 100644 --- a/docs/i18n/calculate/lcm-en.yaml +++ b/docs/i18n/calculate/lcm-en.yaml @@ -1,65 +1,65 @@ -route: /docs/reference/calculate/lcm/ -title: Least Common Multiple -description: Documentation for the `lcm` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-a - name: a - children: [] - - id: parameters-b - name: b - children: [] -body: - kind: func - content: - path: - - calc - - lcm - display: Least Common Multiple - keywords: null - oneliner: Calculates the least common multiple of two integers. - element: false - details: |- -

Calculates the least common multiple of two integers.

-

Example

-
#calc.lcm(96, 13)
-      
Preview
- params: - - name: a - details:

The first integer.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: b - details:

The second integer.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/lcm/ +title: Least Common Multiple +description: Documentation for the `lcm` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-a + name: a + children: [] + - id: parameters-b + name: b + children: [] +body: + kind: func + content: + path: + - calc + - lcm + display: Least Common Multiple + keywords: null + oneliner: Calculates the least common multiple of two integers. + element: false + details: |- +

Calculates the least common multiple of two integers.

+

Example

+
#calc.lcm(96, 13)
+      
Preview
+ params: + - name: a + details:

The first integer.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: b + details:

The second integer.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/ln-en.yaml b/docs/i18n/calculate/ln-en.yaml index 71e963617c31..2185530a2792 100644 --- a/docs/i18n/calculate/ln-en.yaml +++ b/docs/i18n/calculate/ln-en.yaml @@ -1,51 +1,51 @@ -route: /docs/reference/calculate/ln/ -title: Natural Logarithm -description: Documentation for the `ln` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - ln - display: Natural Logarithm - keywords: null - oneliner: Calculates the natural logarithm of a number. - element: false - details: |- -

Calculates the natural logarithm of a number.

-

Example

-
#calc.ln(calc.e)
-      
Preview
- params: - - name: value - details:

The number whose logarithm to calculate. Must be strictly positive.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/ln/ +title: Natural Logarithm +description: Documentation for the `ln` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - ln + display: Natural Logarithm + keywords: null + oneliner: Calculates the natural logarithm of a number. + element: false + details: |- +

Calculates the natural logarithm of a number.

+

Example

+
#calc.ln(calc.e)
+      
Preview
+ params: + - name: value + details:

The number whose logarithm to calculate. Must be strictly positive.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/log-en.yaml b/docs/i18n/calculate/log-en.yaml index a6981eff3bdd..8ae423c41f2d 100644 --- a/docs/i18n/calculate/log-en.yaml +++ b/docs/i18n/calculate/log-en.yaml @@ -1,67 +1,67 @@ -route: /docs/reference/calculate/log/ -title: Logarithm -description: Documentation for the `log` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] - - id: parameters-base - name: base - children: [] -body: - kind: func - content: - path: - - calc - - log - display: Logarithm - keywords: null - oneliner: Calculates the logarithm of a number. - element: false - details: |- -

Calculates the logarithm of a number.

-

If the base is not specified, the logarithm is calculated in base 10.

-

Example

-
#calc.log(100)
-      
Preview
- params: - - name: value - details:

The number whose logarithm to calculate. Must be strictly positive.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: base - details:

The base of the logarithm. May not be zero.

- example: null - types: - - float - strings: [] - default: 10.0 - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/log/ +title: Logarithm +description: Documentation for the `log` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] + - id: parameters-base + name: base + children: [] +body: + kind: func + content: + path: + - calc + - log + display: Logarithm + keywords: null + oneliner: Calculates the logarithm of a number. + element: false + details: |- +

Calculates the logarithm of a number.

+

If the base is not specified, the logarithm is calculated in base 10.

+

Example

+
#calc.log(100)
+      
Preview
+ params: + - name: value + details:

The number whose logarithm to calculate. Must be strictly positive.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: base + details:

The base of the logarithm. May not be zero.

+ example: null + types: + - float + strings: [] + default: 10.0 + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/max-en.yaml b/docs/i18n/calculate/max-en.yaml index f5c32a57c482..1667b4e2d76f 100644 --- a/docs/i18n/calculate/max-en.yaml +++ b/docs/i18n/calculate/max-en.yaml @@ -1,53 +1,53 @@ -route: /docs/reference/calculate/max/ -title: Maximum -description: Documentation for the `max` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-values - name: values - children: [] -body: - kind: func - content: - path: - - calc - - max - display: Maximum - keywords: null - oneliner: Determines the maximum of a sequence of values. - element: false - details: |- -

Determines the maximum of a sequence of values.

-

Example

-
#calc.max(1, -3, -5, 20, 3, 6) \
-      #calc.max("typst", "in", "beta")
-      
Preview
- params: - - name: values - details: |- -

The sequence of values from which to extract the maximum. - Must not be empty.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/max/ +title: Maximum +description: Documentation for the `max` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-values + name: values + children: [] +body: + kind: func + content: + path: + - calc + - max + display: Maximum + keywords: null + oneliner: Determines the maximum of a sequence of values. + element: false + details: |- +

Determines the maximum of a sequence of values.

+

Example

+
#calc.max(1, -3, -5, 20, 3, 6) \
+      #calc.max("typst", "in", "beta")
+      
Preview
+ params: + - name: values + details: |- +

The sequence of values from which to extract the maximum. + Must not be empty.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/min-en.yaml b/docs/i18n/calculate/min-en.yaml index 71149f1b6c70..dd9903ecd719 100644 --- a/docs/i18n/calculate/min-en.yaml +++ b/docs/i18n/calculate/min-en.yaml @@ -1,53 +1,53 @@ -route: /docs/reference/calculate/min/ -title: Minimum -description: Documentation for the `min` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-values - name: values - children: [] -body: - kind: func - content: - path: - - calc - - min - display: Minimum - keywords: null - oneliner: Determines the minimum of a sequence of values. - element: false - details: |- -

Determines the minimum of a sequence of values.

-

Example

-
#calc.min(1, -3, -5, 20, 3, 6) \
-      #calc.min("typst", "in", "beta")
-      
Preview
- params: - - name: values - details: |- -

The sequence of values from which to extract the minimum. - Must not be empty.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/min/ +title: Minimum +description: Documentation for the `min` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-values + name: values + children: [] +body: + kind: func + content: + path: + - calc + - min + display: Minimum + keywords: null + oneliner: Determines the minimum of a sequence of values. + element: false + details: |- +

Determines the minimum of a sequence of values.

+

Example

+
#calc.min(1, -3, -5, 20, 3, 6) \
+      #calc.min("typst", "in", "beta")
+      
Preview
+ params: + - name: values + details: |- +

The sequence of values from which to extract the minimum. + Must not be empty.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/odd-en.yaml b/docs/i18n/calculate/odd-en.yaml index a843af061488..d95fa946f362 100644 --- a/docs/i18n/calculate/odd-en.yaml +++ b/docs/i18n/calculate/odd-en.yaml @@ -1,52 +1,52 @@ -route: /docs/reference/calculate/odd/ -title: Odd -description: Documentation for the `odd` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - odd - display: Odd - keywords: null - oneliner: Determines whether an integer is odd. - element: false - details: |- -

Determines whether an integer is odd.

-

Example

-
#calc.odd(4) \
-      #calc.odd(5) \
-      #range(10).filter(calc.odd)
-      
Preview
- params: - - name: value - details:

The number to check for oddness.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - boolean - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/odd/ +title: Odd +description: Documentation for the `odd` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - odd + display: Odd + keywords: null + oneliner: Determines whether an integer is odd. + element: false + details: |- +

Determines whether an integer is odd.

+

Example

+
#calc.odd(4) \
+      #calc.odd(5) \
+      #range(10).filter(calc.odd)
+      
Preview
+ params: + - name: value + details:

The number to check for oddness.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - boolean + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/perm-en.yaml b/docs/i18n/calculate/perm-en.yaml index 99885dbf6e08..bbc8ef6b455d 100644 --- a/docs/i18n/calculate/perm-en.yaml +++ b/docs/i18n/calculate/perm-en.yaml @@ -1,65 +1,65 @@ -route: /docs/reference/calculate/perm/ -title: Permutation -description: Documentation for the `perm` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-base - name: base - children: [] - - id: parameters-numbers - name: numbers - children: [] -body: - kind: func - content: - path: - - calc - - perm - display: Permutation - keywords: null - oneliner: Calculates a permutation. - element: false - details: |- -

Calculates a permutation.

-

Example

-
#calc.perm(10, 5)
-      
Preview
- params: - - name: base - details:

The base number. Must be non-negative.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: numbers - details:

The number of permutations. Must be non-negative.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/perm/ +title: Permutation +description: Documentation for the `perm` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-base + name: base + children: [] + - id: parameters-numbers + name: numbers + children: [] +body: + kind: func + content: + path: + - calc + - perm + display: Permutation + keywords: null + oneliner: Calculates a permutation. + element: false + details: |- +

Calculates a permutation.

+

Example

+
#calc.perm(10, 5)
+      
Preview
+ params: + - name: base + details:

The base number. Must be non-negative.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: numbers + details:

The number of permutations. Must be non-negative.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/pow-en.yaml b/docs/i18n/calculate/pow-en.yaml index bd6f024e03cb..6a4002f5915b 100644 --- a/docs/i18n/calculate/pow-en.yaml +++ b/docs/i18n/calculate/pow-en.yaml @@ -1,68 +1,68 @@ -route: /docs/reference/calculate/pow/ -title: Power -description: Documentation for the `pow` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-base - name: base - children: [] - - id: parameters-exponent - name: exponent - children: [] -body: - kind: func - content: - path: - - calc - - pow - display: Power - keywords: null - oneliner: Raises a value to some exponent. - element: false - details: |- -

Raises a value to some exponent.

-

Example

-
#calc.pow(2, 3)
-      
Preview
- params: - - name: base - details:

The base of the power.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: exponent - details:

The exponent of the power.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/pow/ +title: Power +description: Documentation for the `pow` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-base + name: base + children: [] + - id: parameters-exponent + name: exponent + children: [] +body: + kind: func + content: + path: + - calc + - pow + display: Power + keywords: null + oneliner: Raises a value to some exponent. + element: false + details: |- +

Raises a value to some exponent.

+

Example

+
#calc.pow(2, 3)
+      
Preview
+ params: + - name: base + details:

The base of the power.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: exponent + details:

The exponent of the power.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/quo-en.yaml b/docs/i18n/calculate/quo-en.yaml index 060e36296d0e..7bb733477753 100644 --- a/docs/i18n/calculate/quo-en.yaml +++ b/docs/i18n/calculate/quo-en.yaml @@ -1,68 +1,68 @@ -route: /docs/reference/calculate/quo/ -title: Quotient -description: Documentation for the `quo` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-dividend - name: dividend - children: [] - - id: parameters-divisor - name: divisor - children: [] -body: - kind: func - content: - path: - - calc - - quo - display: Quotient - keywords: null - oneliner: Calculates the quotient of two numbers. - element: false - details: |- -

Calculates the quotient of two numbers.

-

Example

-
#calc.quo(14, 5) \
-      #calc.quo(3.46, 0.5)
-      
Preview
- params: - - name: dividend - details:

The dividend of the quotient.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: divisor - details:

The divisor of the quotient.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/quo/ +title: Quotient +description: Documentation for the `quo` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-dividend + name: dividend + children: [] + - id: parameters-divisor + name: divisor + children: [] +body: + kind: func + content: + path: + - calc + - quo + display: Quotient + keywords: null + oneliner: Calculates the quotient of two numbers. + element: false + details: |- +

Calculates the quotient of two numbers.

+

Example

+
#calc.quo(14, 5) \
+      #calc.quo(3.46, 0.5)
+      
Preview
+ params: + - name: dividend + details:

The dividend of the quotient.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: divisor + details:

The divisor of the quotient.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/rem-en.yaml b/docs/i18n/calculate/rem-en.yaml index 6a58f594e3b2..a91894477f6a 100644 --- a/docs/i18n/calculate/rem-en.yaml +++ b/docs/i18n/calculate/rem-en.yaml @@ -1,69 +1,69 @@ -route: /docs/reference/calculate/rem/ -title: Remainder -description: Documentation for the `rem` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-dividend - name: dividend - children: [] - - id: parameters-divisor - name: divisor - children: [] -body: - kind: func - content: - path: - - calc - - rem - display: Remainder - keywords: null - oneliner: Calculates the remainder of two numbers. - element: false - details: |- -

Calculates the remainder of two numbers.

-

Example

-
#calc.rem(20, 6) \
-      #calc.rem(1.75, 0.5)
-      
Preview
- params: - - name: dividend - details:

The dividend of the remainder.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: divisor - details:

The divisor of the remainder.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/rem/ +title: Remainder +description: Documentation for the `rem` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-dividend + name: dividend + children: [] + - id: parameters-divisor + name: divisor + children: [] +body: + kind: func + content: + path: + - calc + - rem + display: Remainder + keywords: null + oneliner: Calculates the remainder of two numbers. + element: false + details: |- +

Calculates the remainder of two numbers.

+

Example

+
#calc.rem(20, 6) \
+      #calc.rem(1.75, 0.5)
+      
Preview
+ params: + - name: dividend + details:

The dividend of the remainder.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: divisor + details:

The divisor of the remainder.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/round-en.yaml b/docs/i18n/calculate/round-en.yaml index 7130c36a28d6..fe96e167c759 100644 --- a/docs/i18n/calculate/round-en.yaml +++ b/docs/i18n/calculate/round-en.yaml @@ -1,70 +1,70 @@ -route: /docs/reference/calculate/round/ -title: Round -description: Documentation for the `round` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] - - id: parameters-digits - name: digits - children: [] -body: - kind: func - content: - path: - - calc - - round - display: Round - keywords: null - oneliner: Rounds a number to the nearest integer. - element: false - details: |- -

Rounds a number to the nearest integer.

-

Optionally, a number of decimal places can be specified.

-

Example

-
#assert(calc.round(3.14) == 3)
-      #assert(calc.round(3.5) == 4)
-      #calc.round(3.1415, digits: 2)
-      
Preview
- params: - - name: value - details:

The number to round.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: digits - details:

The number of decimal places.

- example: null - types: - - integer - strings: [] - default: 0 - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - integer - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/round/ +title: Round +description: Documentation for the `round` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] + - id: parameters-digits + name: digits + children: [] +body: + kind: func + content: + path: + - calc + - round + display: Round + keywords: null + oneliner: Rounds a number to the nearest integer. + element: false + details: |- +

Rounds a number to the nearest integer.

+

Optionally, a number of decimal places can be specified.

+

Example

+
#assert(calc.round(3.14) == 3)
+      #assert(calc.round(3.5) == 4)
+      #calc.round(3.1415, digits: 2)
+      
Preview
+ params: + - name: value + details:

The number to round.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: digits + details:

The number of decimal places.

+ example: null + types: + - integer + strings: [] + default: 0 + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - integer + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/sin-en.yaml b/docs/i18n/calculate/sin-en.yaml index fbebb0b0b8f9..d50582290215 100644 --- a/docs/i18n/calculate/sin-en.yaml +++ b/docs/i18n/calculate/sin-en.yaml @@ -1,56 +1,56 @@ -route: /docs/reference/calculate/sin/ -title: Sine -description: Documentation for the `sin` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-angle - name: angle - children: [] -body: - kind: func - content: - path: - - calc - - sin - display: Sine - keywords: null - oneliner: Calculates the sine of an angle. - element: false - details: |- -

Calculates the sine of an angle.

-

When called with an integer or a float, they will be interpreted as - radians.

-

Example

-
#assert(calc.sin(90deg) == calc.sin(-270deg))
-      #calc.sin(1.5) \
-      #calc.sin(90deg)
-      
Preview
- params: - - name: angle - details:

The angle whose sine to calculate.

- example: null - types: - - integer - - float - - angle - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/sin/ +title: Sine +description: Documentation for the `sin` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-angle + name: angle + children: [] +body: + kind: func + content: + path: + - calc + - sin + display: Sine + keywords: null + oneliner: Calculates the sine of an angle. + element: false + details: |- +

Calculates the sine of an angle.

+

When called with an integer or a float, they will be interpreted as + radians.

+

Example

+
#assert(calc.sin(90deg) == calc.sin(-270deg))
+      #calc.sin(1.5) \
+      #calc.sin(90deg)
+      
Preview
+ params: + - name: angle + details:

The angle whose sine to calculate.

+ example: null + types: + - integer + - float + - angle + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/sinh-en.yaml b/docs/i18n/calculate/sinh-en.yaml index e18fd511e912..49b583594d4e 100644 --- a/docs/i18n/calculate/sinh-en.yaml +++ b/docs/i18n/calculate/sinh-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/calculate/sinh/ -title: Hyperbolic sine -description: Documentation for the `sinh` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-angle - name: angle - children: [] -body: - kind: func - content: - path: - - calc - - sinh - display: Hyperbolic sine - keywords: null - oneliner: Calculates the hyperbolic sine of an angle. - element: false - details: |- -

Calculates the hyperbolic sine of an angle.

-

When called with an integer or a float, they will be interpreted as radians.

-

Example

-
#calc.sinh(0) \
-      #calc.sinh(45deg)
-      
Preview
- params: - - name: angle - details:

The angle whose hyperbolic sine to calculate.

- example: null - types: - - integer - - float - - angle - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/sinh/ +title: Hyperbolic sine +description: Documentation for the `sinh` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-angle + name: angle + children: [] +body: + kind: func + content: + path: + - calc + - sinh + display: Hyperbolic sine + keywords: null + oneliner: Calculates the hyperbolic sine of an angle. + element: false + details: |- +

Calculates the hyperbolic sine of an angle.

+

When called with an integer or a float, they will be interpreted as radians.

+

Example

+
#calc.sinh(0) \
+      #calc.sinh(45deg)
+      
Preview
+ params: + - name: angle + details:

The angle whose hyperbolic sine to calculate.

+ example: null + types: + - integer + - float + - angle + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/sqrt-en.yaml b/docs/i18n/calculate/sqrt-en.yaml index 663c046af40a..e2114e94d44a 100644 --- a/docs/i18n/calculate/sqrt-en.yaml +++ b/docs/i18n/calculate/sqrt-en.yaml @@ -1,52 +1,52 @@ -route: /docs/reference/calculate/sqrt/ -title: Square Root -description: Documentation for the `sqrt` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - sqrt - display: Square Root - keywords: null - oneliner: Extracts the square root of a number. - element: false - details: |- -

Extracts the square root of a number.

-

Example

-
#calc.sqrt(16) \
-      #calc.sqrt(2.5)
-      
Preview
- params: - - name: value - details:

The number whose square root to calculate. Must be non-negative.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/sqrt/ +title: Square Root +description: Documentation for the `sqrt` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - sqrt + display: Square Root + keywords: null + oneliner: Extracts the square root of a number. + element: false + details: |- +

Extracts the square root of a number.

+

Example

+
#calc.sqrt(16) \
+      #calc.sqrt(2.5)
+      
Preview
+ params: + - name: value + details:

The number whose square root to calculate. Must be non-negative.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/tan-en.yaml b/docs/i18n/calculate/tan-en.yaml index dacdce33eba4..b84c707111ad 100644 --- a/docs/i18n/calculate/tan-en.yaml +++ b/docs/i18n/calculate/tan-en.yaml @@ -1,55 +1,55 @@ -route: /docs/reference/calculate/tan/ -title: Tangent -description: Documentation for the `tan` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-angle - name: angle - children: [] -body: - kind: func - content: - path: - - calc - - tan - display: Tangent - keywords: null - oneliner: Calculates the tangent of an angle. - element: false - details: |- -

Calculates the tangent of an angle.

-

When called with an integer or a float, they will be interpreted as - radians.

-

Example

-
#calc.tan(1.5) \
-      #calc.tan(90deg)
-      
Preview
- params: - - name: angle - details:

The angle whose tangent to calculate.

- example: null - types: - - integer - - float - - angle - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/tan/ +title: Tangent +description: Documentation for the `tan` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-angle + name: angle + children: [] +body: + kind: func + content: + path: + - calc + - tan + display: Tangent + keywords: null + oneliner: Calculates the tangent of an angle. + element: false + details: |- +

Calculates the tangent of an angle.

+

When called with an integer or a float, they will be interpreted as + radians.

+

Example

+
#calc.tan(1.5) \
+      #calc.tan(90deg)
+      
Preview
+ params: + - name: angle + details:

The angle whose tangent to calculate.

+ example: null + types: + - integer + - float + - angle + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/tanh-en.yaml b/docs/i18n/calculate/tanh-en.yaml index b4fc266441a1..00d3ef20cbbc 100644 --- a/docs/i18n/calculate/tanh-en.yaml +++ b/docs/i18n/calculate/tanh-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/calculate/tanh/ -title: Hyperbolic tangent -description: Documentation for the `tanh` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-angle - name: angle - children: [] -body: - kind: func - content: - path: - - calc - - tanh - display: Hyperbolic tangent - keywords: null - oneliner: Calculates the hyperbolic tangent of an angle. - element: false - details: |- -

Calculates the hyperbolic tangent of an angle.

-

When called with an integer or a float, they will be interpreted as radians.

-

Example

-
#calc.tanh(0) \
-      #calc.tanh(45deg)
-      
Preview
- params: - - name: angle - details:

The angle whose hyperbolic tangent to calculate.

- example: null - types: - - integer - - float - - angle - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/tanh/ +title: Hyperbolic tangent +description: Documentation for the `tanh` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-angle + name: angle + children: [] +body: + kind: func + content: + path: + - calc + - tanh + display: Hyperbolic tangent + keywords: null + oneliner: Calculates the hyperbolic tangent of an angle. + element: false + details: |- +

Calculates the hyperbolic tangent of an angle.

+

When called with an integer or a float, they will be interpreted as radians.

+

Example

+
#calc.tanh(0) \
+      #calc.tanh(45deg)
+      
Preview
+ params: + - name: angle + details:

The angle whose hyperbolic tangent to calculate.

+ example: null + types: + - integer + - float + - angle + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/calculate/trunc-en.yaml b/docs/i18n/calculate/trunc-en.yaml index 1ae620a7fc1c..8f737acec130 100644 --- a/docs/i18n/calculate/trunc-en.yaml +++ b/docs/i18n/calculate/trunc-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/calculate/trunc/ -title: Truncate -description: Documentation for the `trunc` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - calc - - trunc - display: Truncate - keywords: null - oneliner: Returns the integer part of a number. - element: false - details: |- -

Returns the integer part of a number.

-

If the number is already an integer, it is returned unchanged.

-

Example

-
#assert(calc.trunc(3) == 3)
-      #assert(calc.trunc(-3.7) == -3)
-      #assert(calc.trunc(15.9) == 15)
-      
Preview
- params: - - name: value - details:

The number to truncate.

- example: null - types: - - integer - - float - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/calculate/trunc/ +title: Truncate +description: Documentation for the `trunc` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - calc + - trunc + display: Truncate + keywords: null + oneliner: Returns the integer part of a number. + element: false + details: |- +

Returns the integer part of a number.

+

If the number is already an integer, it is returned unchanged.

+

Example

+
#assert(calc.trunc(3) == 3)
+      #assert(calc.trunc(-3.7) == -3)
+      #assert(calc.trunc(15.9) == 15)
+      
Preview
+ params: + - name: value + details:

The number to truncate.

+ example: null + types: + - integer + - float + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/cmyk-en.yaml b/docs/i18n/construct/cmyk-en.yaml index 90cffdc7518b..3a3a5ed8a8ff 100644 --- a/docs/i18n/construct/cmyk-en.yaml +++ b/docs/i18n/construct/cmyk-en.yaml @@ -1,99 +1,99 @@ -route: /docs/reference/construct/cmyk/ -title: CMYK -description: Documentation for the `cmyk` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-cyan - name: cyan - children: [] - - id: parameters-magenta - name: magenta - children: [] - - id: parameters-yellow - name: yellow - children: [] - - id: parameters-key - name: key - children: [] -body: - kind: func - content: - path: - - cmyk - display: CMYK - keywords: null - oneliner: Creates a CMYK color. - element: false - details: |- -

Creates a CMYK color.

-

This is useful if you want to target a specific printer. The conversion - to RGB for display preview might differ from how your printer reproduces - the color.

-

Example

-
#square(
-        fill: cmyk(27%, 0%, 3%, 5%)
-      )
-      
Preview
- params: - - name: cyan - details:

The cyan component.

- example: null - types: - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: magenta - details:

The magenta component.

- example: null - types: - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: yellow - details:

The yellow component.

- example: null - types: - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: key - details:

The key component.

- example: null - types: - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - color - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/cmyk/ +title: CMYK +description: Documentation for the `cmyk` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-cyan + name: cyan + children: [] + - id: parameters-magenta + name: magenta + children: [] + - id: parameters-yellow + name: yellow + children: [] + - id: parameters-key + name: key + children: [] +body: + kind: func + content: + path: + - cmyk + display: CMYK + keywords: null + oneliner: Creates a CMYK color. + element: false + details: |- +

Creates a CMYK color.

+

This is useful if you want to target a specific printer. The conversion + to RGB for display preview might differ from how your printer reproduces + the color.

+

Example

+
#square(
+        fill: cmyk(27%, 0%, 3%, 5%)
+      )
+      
Preview
+ params: + - name: cyan + details:

The cyan component.

+ example: null + types: + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: magenta + details:

The magenta component.

+ example: null + types: + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: yellow + details:

The yellow component.

+ example: null + types: + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: key + details:

The key component.

+ example: null + types: + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - color + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/datetime-en.yaml b/docs/i18n/construct/datetime-en.yaml index cf80a03aaca8..0d718ac948ca 100644 --- a/docs/i18n/construct/datetime-en.yaml +++ b/docs/i18n/construct/datetime-en.yaml @@ -1,194 +1,194 @@ -route: /docs/reference/construct/datetime/ -title: Datetime -description: Documentation for the `datetime` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-year - name: year - children: [] - - id: parameters-month - name: month - children: [] - - id: parameters-day - name: day - children: [] - - id: parameters-hour - name: hour - children: [] - - id: parameters-minute - name: minute - children: [] - - id: parameters-second - name: second - children: [] -- id: datetime-today - name: Today - children: - - id: datetime-today-parameters - name: Parameters - children: - - id: datetime-today-parameters-offset - name: offset - children: [] -body: - kind: func - content: - path: - - datetime - display: Datetime - keywords: null - oneliner: Creates a new datetime. - element: false - details: |- -

Creates a new datetime.

-

You can specify the datetime using a year, month, day, - hour, minute, and second. You can also get the current date with - datetime.today.

-

Example

-
#let date = datetime(
-        year: 2012,
-        month: 8,
-        day: 3,
-      )
-
-      #date.display() \
-      #date.display(
-        "[day].[month].[year]"
-      )
-      
Preview
-

Format

-

Note: Depending on which components of the datetime you specify, Typst - will store it in one of the following three ways:

- -

Depending on how it is stored, the display - method will choose a different formatting by default.

- params: - - name: year - details:

The year of the datetime.

- example: null - types: - - none - - integer - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - - name: month - details:

The month of the datetime.

- example: null - types: - - none - - integer - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - - name: day - details:

The day of the datetime.

- example: null - types: - - none - - integer - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - - name: hour - details:

The hour of the datetime.

- example: null - types: - - none - - integer - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - - name: minute - details:

The minute of the datetime.

- example: null - types: - - none - - integer - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - - name: second - details:

The second of the datetime.

- example: null - types: - - none - - integer - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - returns: - - datetime - methods: [] - scope: - - path: - - datetime - - today - display: Today - keywords: null - oneliner: Returns the current date. - element: false - details: |- -

Returns the current date.

-

Refer to the documentation of the display method - for details on how to affect the formatting of the date.

-

Example

-
Today's date is
-        #datetime.today().display().
-        
Preview
- params: - - name: offset - details: |- -

An offset to apply to the current UTC date. If set to auto, the - offset will be the local offset.

- example: null - types: - - auto - - integer - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - datetime - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/datetime/ +title: Datetime +description: Documentation for the `datetime` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-year + name: year + children: [] + - id: parameters-month + name: month + children: [] + - id: parameters-day + name: day + children: [] + - id: parameters-hour + name: hour + children: [] + - id: parameters-minute + name: minute + children: [] + - id: parameters-second + name: second + children: [] +- id: datetime-today + name: Today + children: + - id: datetime-today-parameters + name: Parameters + children: + - id: datetime-today-parameters-offset + name: offset + children: [] +body: + kind: func + content: + path: + - datetime + display: Datetime + keywords: null + oneliner: Creates a new datetime. + element: false + details: |- +

Creates a new datetime.

+

You can specify the datetime using a year, month, day, + hour, minute, and second. You can also get the current date with + datetime.today.

+

Example

+
#let date = datetime(
+        year: 2012,
+        month: 8,
+        day: 3,
+      )
+
+      #date.display() \
+      #date.display(
+        "[day].[month].[year]"
+      )
+      
Preview
+

Format

+

Note: Depending on which components of the datetime you specify, Typst + will store it in one of the following three ways:

+ +

Depending on how it is stored, the display + method will choose a different formatting by default.

+ params: + - name: year + details:

The year of the datetime.

+ example: null + types: + - none + - integer + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + - name: month + details:

The month of the datetime.

+ example: null + types: + - none + - integer + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + - name: day + details:

The day of the datetime.

+ example: null + types: + - none + - integer + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + - name: hour + details:

The hour of the datetime.

+ example: null + types: + - none + - integer + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + - name: minute + details:

The minute of the datetime.

+ example: null + types: + - none + - integer + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + - name: second + details:

The second of the datetime.

+ example: null + types: + - none + - integer + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + returns: + - datetime + methods: [] + scope: + - path: + - datetime + - today + display: Today + keywords: null + oneliner: Returns the current date. + element: false + details: |- +

Returns the current date.

+

Refer to the documentation of the display method + for details on how to affect the formatting of the date.

+

Example

+
Today's date is
+        #datetime.today().display().
+        
Preview
+ params: + - name: offset + details: |- +

An offset to apply to the current UTC date. If set to auto, the + offset will be the local offset.

+ example: null + types: + - auto + - integer + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - datetime + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/float-en.yaml b/docs/i18n/construct/float-en.yaml index c878c2221a2a..2618f86690e6 100644 --- a/docs/i18n/construct/float-en.yaml +++ b/docs/i18n/construct/float-en.yaml @@ -1,65 +1,65 @@ -route: /docs/reference/construct/float/ -title: Float -description: Documentation for the `float` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - float - display: Float - keywords: null - oneliner: Converts a value to a float. - element: false - details: |- -

Converts a value to a float.

- -

Example

-
#float(false) \
-      #float(true) \
-      #float(4) \
-      #float(40%) \
-      #float("2.7") \
-      #float("1e5")
-      
Preview
- params: - - name: value - details:

The value that should be converted to a float.

- example: null - types: - - boolean - - integer - - float - - ratio - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - float - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/float/ +title: Float +description: Documentation for the `float` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - float + display: Float + keywords: null + oneliner: Converts a value to a float. + element: false + details: |- +

Converts a value to a float.

+ +

Example

+
#float(false) \
+      #float(true) \
+      #float(4) \
+      #float(40%) \
+      #float("2.7") \
+      #float("1e5")
+      
Preview
+ params: + - name: value + details:

The value that should be converted to a float.

+ example: null + types: + - boolean + - integer + - float + - ratio + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - float + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/int-en.yaml b/docs/i18n/construct/int-en.yaml index 8b5ad6541b9b..b4d5cbcc4dee 100644 --- a/docs/i18n/construct/int-en.yaml +++ b/docs/i18n/construct/int-en.yaml @@ -1,60 +1,60 @@ -route: /docs/reference/construct/int/ -title: Integer -description: Documentation for the `int` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - int - display: Integer - keywords: null - oneliner: Converts a value to an integer. - element: false - details: |- -

Converts a value to an integer.

- -

Example

-
#int(false) \
-      #int(true) \
-      #int(2.7) \
-      #{ int("27") + int("4") }
-      
Preview
- params: - - name: value - details:

The value that should be converted to an integer.

- example: null - types: - - boolean - - integer - - float - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/int/ +title: Integer +description: Documentation for the `int` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - int + display: Integer + keywords: null + oneliner: Converts a value to an integer. + element: false + details: |- +

Converts a value to an integer.

+ +

Example

+
#int(false) \
+      #int(true) \
+      #int(2.7) \
+      #{ int("27") + int("4") }
+      
Preview
+ params: + - name: value + details:

The value that should be converted to an integer.

+ example: null + types: + - boolean + - integer + - float + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/label-en.yaml b/docs/i18n/construct/label-en.yaml index a48440d57911..52247b4356b3 100644 --- a/docs/i18n/construct/label-en.yaml +++ b/docs/i18n/construct/label-en.yaml @@ -1,62 +1,62 @@ -route: /docs/reference/construct/label/ -title: Label -description: Documentation for the `label` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-name - name: name - children: [] -body: - kind: func - content: - path: - - label - display: Label - keywords: null - oneliner: Creates a label from a string. - element: false - details: |- -

Creates a label from a string.

-

Inserting a label into content attaches it to the closest previous element - that is not a space. Then, the element can be referenced and - styled through the label.

-

Example

-
#show <a>: set text(blue)
-      #show label("b"): set text(red)
-
-      = Heading <a>
-      *Strong* #label("b")
-      
Preview
-

Syntax

-

This function also has dedicated syntax: You can create a label by enclosing - its name in angle brackets. This works both in markup and code.

- params: - - name: name - details:

The name of the label.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - label - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/label/ +title: Label +description: Documentation for the `label` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-name + name: name + children: [] +body: + kind: func + content: + path: + - label + display: Label + keywords: null + oneliner: Creates a label from a string. + element: false + details: |- +

Creates a label from a string.

+

Inserting a label into content attaches it to the closest previous element + that is not a space. Then, the element can be referenced and + styled through the label.

+

Example

+
#show <a>: set text(blue)
+      #show label("b"): set text(red)
+
+      = Heading <a>
+      *Strong* #label("b")
+      
Preview
+

Syntax

+

This function also has dedicated syntax: You can create a label by enclosing + its name in angle brackets. This works both in markup and code.

+ params: + - name: name + details:

The name of the label.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - label + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/luma-en.yaml b/docs/i18n/construct/luma-en.yaml index ce4c0174f755..90dd2af42701 100644 --- a/docs/i18n/construct/luma-en.yaml +++ b/docs/i18n/construct/luma-en.yaml @@ -1,52 +1,52 @@ -route: /docs/reference/construct/luma/ -title: Luma -description: Documentation for the `luma` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-gray - name: gray - children: [] -body: - kind: func - content: - path: - - luma - display: Luma - keywords: null - oneliner: Creates a grayscale color. - element: false - details: |- -

Creates a grayscale color.

-

Example

-
#for x in range(250, step: 50) {
-        box(square(fill: luma(x)))
-      }
-      
Preview
- params: - - name: gray - details:

The gray component.

- example: null - types: - - integer - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - color - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/luma/ +title: Luma +description: Documentation for the `luma` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-gray + name: gray + children: [] +body: + kind: func + content: + path: + - luma + display: Luma + keywords: null + oneliner: Creates a grayscale color. + element: false + details: |- +

Creates a grayscale color.

+

Example

+
#for x in range(250, step: 50) {
+        box(square(fill: luma(x)))
+      }
+      
Preview
+ params: + - name: gray + details:

The gray component.

+ example: null + types: + - integer + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - color + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/range-en.yaml b/docs/i18n/construct/range-en.yaml index fbe087916175..df3e2416fa9b 100644 --- a/docs/i18n/construct/range-en.yaml +++ b/docs/i18n/construct/range-en.yaml @@ -1,86 +1,86 @@ -route: /docs/reference/construct/range/ -title: Range -description: Documentation for the `range` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-start - name: start - children: [] - - id: parameters-end - name: end - children: [] - - id: parameters-step - name: step - children: [] -body: - kind: func - content: - path: - - range - display: Range - keywords: null - oneliner: Creates an array consisting of consecutive integers. - element: false - details: |- -

Creates an array consisting of consecutive integers.

-

If you pass just one positional parameter, it is interpreted as the end of - the range. If you pass two, they describe the start and end of the - range.

-

Example

-
#range(5) \
-      #range(2, 5) \
-      #range(20, step: 4) \
-      #range(21, step: 4) \
-      #range(5, 2, step: -1)
-      
Preview
- params: - - name: start - details:

The start of the range (inclusive).

- example: null - types: - - integer - strings: [] - default: 0 - positional: true - named: false - required: false - variadic: false - settable: false - - name: end - details:

The end of the range (exclusive).

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: step - details:

The distance between the generated numbers.

- example: null - types: - - integer - strings: [] - default: 1 - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - array - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/range/ +title: Range +description: Documentation for the `range` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-start + name: start + children: [] + - id: parameters-end + name: end + children: [] + - id: parameters-step + name: step + children: [] +body: + kind: func + content: + path: + - range + display: Range + keywords: null + oneliner: Creates an array consisting of consecutive integers. + element: false + details: |- +

Creates an array consisting of consecutive integers.

+

If you pass just one positional parameter, it is interpreted as the end of + the range. If you pass two, they describe the start and end of the + range.

+

Example

+
#range(5) \
+      #range(2, 5) \
+      #range(20, step: 4) \
+      #range(21, step: 4) \
+      #range(5, 2, step: -1)
+      
Preview
+ params: + - name: start + details:

The start of the range (inclusive).

+ example: null + types: + - integer + strings: [] + default: 0 + positional: true + named: false + required: false + variadic: false + settable: false + - name: end + details:

The end of the range (exclusive).

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: step + details:

The distance between the generated numbers.

+ example: null + types: + - integer + strings: [] + default: 1 + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - array + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/regex-en.yaml b/docs/i18n/construct/regex-en.yaml index b2f003348681..a2823f793352 100644 --- a/docs/i18n/construct/regex-en.yaml +++ b/docs/i18n/construct/regex-en.yaml @@ -1,68 +1,68 @@ -route: /docs/reference/construct/regex/ -title: Regex -description: Documentation for the `regex` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-regex - name: regex - children: [] -body: - kind: func - content: - path: - - regex - display: Regex - keywords: null - oneliner: Creates a regular expression from a string. - element: false - details: |- -

Creates a regular expression from a string.

-

The result can be used as a - show rule selector and with - string methods like find, split, and replace.

-

See the specification of the supported syntax.

-

Example

-
// Works with show rules.
-      #show regex("\d+"): set text(red)
-
-      The numbers 1 to 10.
-
-      // Works with string methods.
-      #("a,b;c"
-          .split(regex("[,;]")))
-      
Preview
- params: - - name: regex - details: |- -

The regular expression as a string.

-

Most regex escape sequences just work because they are not valid Typst - escape sequences. To produce regex escape sequences that are also valid in - Typst (e.g. \\), you need to escape twice. Thus, to match a verbatim - backslash, you would need to write regex("\\\\").

-

If you need many escape sequences, you can also create a raw element - and extract its text to use it for your regular expressions: - regex(`\d+\.\d+\.\d+`.text).

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - regular expression - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/regex/ +title: Regex +description: Documentation for the `regex` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-regex + name: regex + children: [] +body: + kind: func + content: + path: + - regex + display: Regex + keywords: null + oneliner: Creates a regular expression from a string. + element: false + details: |- +

Creates a regular expression from a string.

+

The result can be used as a + show rule selector and with + string methods like find, split, and replace.

+

See the specification of the supported syntax.

+

Example

+
// Works with show rules.
+      #show regex("\d+"): set text(red)
+
+      The numbers 1 to 10.
+
+      // Works with string methods.
+      #("a,b;c"
+          .split(regex("[,;]")))
+      
Preview
+ params: + - name: regex + details: |- +

The regular expression as a string.

+

Most regex escape sequences just work because they are not valid Typst + escape sequences. To produce regex escape sequences that are also valid in + Typst (e.g. \\), you need to escape twice. Thus, to match a verbatim + backslash, you would need to write regex("\\\\").

+

If you need many escape sequences, you can also create a raw element + and extract its text to use it for your regular expressions: + regex(`\d+\.\d+\.\d+`.text).

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - regular expression + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/rgb-en.yaml b/docs/i18n/construct/rgb-en.yaml index 90afc6a2420c..c29f9e42d300 100644 --- a/docs/i18n/construct/rgb-en.yaml +++ b/docs/i18n/construct/rgb-en.yaml @@ -1,127 +1,127 @@ -route: /docs/reference/construct/rgb/ -title: RGB -description: Documentation for the `rgb` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-hex - name: hex - children: [] - - id: parameters-red - name: red - children: [] - - id: parameters-green - name: green - children: [] - - id: parameters-blue - name: blue - children: [] - - id: parameters-alpha - name: alpha - children: [] -body: - kind: func - content: - path: - - rgb - display: RGB - keywords: null - oneliner: Creates an RGB(A) color. - element: false - details: |- -

Creates an RGB(A) color.

-

The color is specified in the sRGB color space.

-

Note: While you can specify transparent colors and Typst's preview will - render them correctly, the PDF export does not handle them properly at the - moment. This will be fixed in the future.

-

Example

-
#square(fill: rgb("#b1f2eb"))
-      #square(fill: rgb(87, 127, 230))
-      #square(fill: rgb(25%, 13%, 65%))
-      
Preview
- params: - - name: hex - details: |- -

The color in hexadecimal notation.

-

Accepts three, four, six or eight hexadecimal digits and optionally - a leading hashtag.

-

If this string is given, the individual components should not be given.

- example: |- -
#text(16pt, rgb("#239dad"))[
-          *Typst*
-        ]
-        
Preview
- types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: red - details:

The red component.

- example: null - types: - - integer - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: green - details:

The green component.

- example: null - types: - - integer - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: blue - details:

The blue component.

- example: null - types: - - integer - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: alpha - details:

The alpha component.

- example: null - types: - - integer - - ratio - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - color - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/rgb/ +title: RGB +description: Documentation for the `rgb` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-hex + name: hex + children: [] + - id: parameters-red + name: red + children: [] + - id: parameters-green + name: green + children: [] + - id: parameters-blue + name: blue + children: [] + - id: parameters-alpha + name: alpha + children: [] +body: + kind: func + content: + path: + - rgb + display: RGB + keywords: null + oneliner: Creates an RGB(A) color. + element: false + details: |- +

Creates an RGB(A) color.

+

The color is specified in the sRGB color space.

+

Note: While you can specify transparent colors and Typst's preview will + render them correctly, the PDF export does not handle them properly at the + moment. This will be fixed in the future.

+

Example

+
#square(fill: rgb("#b1f2eb"))
+      #square(fill: rgb(87, 127, 230))
+      #square(fill: rgb(25%, 13%, 65%))
+      
Preview
+ params: + - name: hex + details: |- +

The color in hexadecimal notation.

+

Accepts three, four, six or eight hexadecimal digits and optionally + a leading hashtag.

+

If this string is given, the individual components should not be given.

+ example: |- +
#text(16pt, rgb("#239dad"))[
+          *Typst*
+        ]
+        
Preview
+ types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: red + details:

The red component.

+ example: null + types: + - integer + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: green + details:

The green component.

+ example: null + types: + - integer + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: blue + details:

The blue component.

+ example: null + types: + - integer + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: alpha + details:

The alpha component.

+ example: null + types: + - integer + - ratio + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - color + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/str-en.yaml b/docs/i18n/construct/str-en.yaml index 4db15346c43e..64c42d1ce16b 100644 --- a/docs/i18n/construct/str-en.yaml +++ b/docs/i18n/construct/str-en.yaml @@ -1,156 +1,156 @@ -route: /docs/reference/construct/str/ -title: String -description: Documentation for the `str` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] - - id: parameters-base - name: base - children: [] -- id: str-from-unicode - name: String From Unicode - children: - - id: str-from-unicode-parameters - name: Parameters - children: - - id: str-from-unicode-parameters-value - name: value - children: [] -- id: str-to-unicode - name: String To Unicode - children: - - id: str-to-unicode-parameters - name: Parameters - children: - - id: str-to-unicode-parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - str - display: String - keywords: null - oneliner: Converts a value to a string. - element: false - details: |- -

Converts a value to a string.

- -

If you wish to convert from and to Unicode code points, see - str.to-unicode and - str.from-unicode.

-

Example

-
#str(10) \
-      #str(4000, base: 16) \
-      #str(2.7) \
-      #str(1e8) \
-      #str(<intro>)
-      
Preview
- params: - - name: value - details:

The value that should be converted to a string.

- example: null - types: - - integer - - float - - string - - label - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: base - details:

The base (radix) to display integers in, between 2 and 36.

- example: null - types: - - integer - strings: [] - default: 10 - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - string - methods: [] - scope: - - path: - - str - - from-unicode - display: String From Unicode - keywords: null - oneliner: Converts a Unicode code point into its corresponding string. - element: false - details: |- -

Converts a Unicode code point into its corresponding string.

-
#str.from-unicode(97)
-        
Preview
- params: - - name: value - details:

The code point that should be converted.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - methods: [] - scope: [] - - path: - - str - - to-unicode - display: String To Unicode - keywords: null - oneliner: Converts a character into its corresponding code point. - element: false - details: |- -

Converts a character into its corresponding code point.

-

Example

-
#str.to-unicode("a") \
-        #"a\u{0300}".codepoints().map(str.to-unicode)
-        
Preview
- params: - - name: value - details:

The character that should be converted.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - integer - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/str/ +title: String +description: Documentation for the `str` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] + - id: parameters-base + name: base + children: [] +- id: str-from-unicode + name: String From Unicode + children: + - id: str-from-unicode-parameters + name: Parameters + children: + - id: str-from-unicode-parameters-value + name: value + children: [] +- id: str-to-unicode + name: String To Unicode + children: + - id: str-to-unicode-parameters + name: Parameters + children: + - id: str-to-unicode-parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - str + display: String + keywords: null + oneliner: Converts a value to a string. + element: false + details: |- +

Converts a value to a string.

+ +

If you wish to convert from and to Unicode code points, see + str.to-unicode and + str.from-unicode.

+

Example

+
#str(10) \
+      #str(4000, base: 16) \
+      #str(2.7) \
+      #str(1e8) \
+      #str(<intro>)
+      
Preview
+ params: + - name: value + details:

The value that should be converted to a string.

+ example: null + types: + - integer + - float + - string + - label + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: base + details:

The base (radix) to display integers in, between 2 and 36.

+ example: null + types: + - integer + strings: [] + default: 10 + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - string + methods: [] + scope: + - path: + - str + - from-unicode + display: String From Unicode + keywords: null + oneliner: Converts a Unicode code point into its corresponding string. + element: false + details: |- +

Converts a Unicode code point into its corresponding string.

+
#str.from-unicode(97)
+        
Preview
+ params: + - name: value + details:

The code point that should be converted.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + methods: [] + scope: [] + - path: + - str + - to-unicode + display: String To Unicode + keywords: null + oneliner: Converts a character into its corresponding code point. + element: false + details: |- +

Converts a character into its corresponding code point.

+

Example

+
#str.to-unicode("a") \
+        #"a\u{0300}".codepoints().map(str.to-unicode)
+        
Preview
+ params: + - name: value + details:

The character that should be converted.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - integer + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/construct/symbol-en.yaml b/docs/i18n/construct/symbol-en.yaml index b4c53bb910e0..c08fd5527bf3 100644 --- a/docs/i18n/construct/symbol-en.yaml +++ b/docs/i18n/construct/symbol-en.yaml @@ -1,68 +1,68 @@ -route: /docs/reference/construct/symbol/ -title: Symbol -description: Documentation for the `symbol` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-variants - name: variants - children: [] -body: - kind: func - content: - path: - - symbol - display: Symbol - keywords: null - oneliner: Creates a custom symbol with modifiers. - element: false - details: |- -

Creates a custom symbol with modifiers.

-

Example

-
#let envelope = symbol(
-        "🖂",
-        ("stamped", "🖃"),
-        ("stamped.pen", "🖆"),
-        ("lightning", "🖄"),
-        ("fly", "🖅"),
-      )
-
-      #envelope
-      #envelope.stamped
-      #envelope.stamped.pen
-      #envelope.lightning
-      #envelope.fly
-      
Preview
- params: - - name: variants - details: |- -

The variants of the symbol.

-

Can be a just a string consisting of a single character for the - modifierless variant or an array with two strings specifying the modifiers - and the symbol. Individual modifiers should be separated by dots. When - displaying a symbol, Typst selects the first from the variants that have - all attached modifiers and the minimum number of other modifiers.

- example: null - types: - - string - - array - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - symbol - methods: [] - scope: [] -children: [] +route: /docs/reference/construct/symbol/ +title: Symbol +description: Documentation for the `symbol` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-variants + name: variants + children: [] +body: + kind: func + content: + path: + - symbol + display: Symbol + keywords: null + oneliner: Creates a custom symbol with modifiers. + element: false + details: |- +

Creates a custom symbol with modifiers.

+

Example

+
#let envelope = symbol(
+        "🖂",
+        ("stamped", "🖃"),
+        ("stamped.pen", "🖆"),
+        ("lightning", "🖄"),
+        ("fly", "🖅"),
+      )
+
+      #envelope
+      #envelope.stamped
+      #envelope.stamped.pen
+      #envelope.lightning
+      #envelope.fly
+      
Preview
+ params: + - name: variants + details: |- +

The variants of the symbol.

+

Can be a just a string consisting of a single character for the + modifierless variant or an array with two strings specifying the modifiers + and the symbol. Individual modifiers should be separated by dots. When + displaying a symbol, Typst selects the first from the variants that have + all attached modifiers and the minimum number of other modifiers.

+ example: null + types: + - string + - array + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - symbol + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/data-loading/csv-en.yaml b/docs/i18n/data-loading/csv-en.yaml index 80bbffb4a12e..d80c40f7092b 100644 --- a/docs/i18n/data-loading/csv-en.yaml +++ b/docs/i18n/data-loading/csv-en.yaml @@ -1,76 +1,76 @@ -route: /docs/reference/data-loading/csv/ -title: CSV -description: Documentation for the `csv` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] - - id: parameters-delimiter - name: delimiter - children: [] -body: - kind: func - content: - path: - - csv - display: CSV - keywords: null - oneliner: Reads structured data from a CSV file. - element: false - details: |- -

Reads structured data from a CSV file.

-

The CSV file will be read and parsed into a 2-dimensional array of strings: - Each row in the CSV file will be represented as an array of strings, and all - rows will be collected into a single array. Header rows will not be - stripped.

-

Example

-
#let results = csv("data.csv")
-
-      #table(
-        columns: 2,
-        [*Condition*], [*Result*],
-        ..results.flatten(),
-      )
-      
Preview
- params: - - name: path - details:

Path to a CSV file.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: delimiter - details: |- -

The delimiter that separates columns in the CSV file. - Must be a single ASCII character.

- example: null - types: - - string - strings: [] - default: "," - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - array - methods: [] - scope: [] -children: [] +route: /docs/reference/data-loading/csv/ +title: CSV +description: Documentation for the `csv` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] + - id: parameters-delimiter + name: delimiter + children: [] +body: + kind: func + content: + path: + - csv + display: CSV + keywords: null + oneliner: Reads structured data from a CSV file. + element: false + details: |- +

Reads structured data from a CSV file.

+

The CSV file will be read and parsed into a 2-dimensional array of strings: + Each row in the CSV file will be represented as an array of strings, and all + rows will be collected into a single array. Header rows will not be + stripped.

+

Example

+
#let results = csv("data.csv")
+
+      #table(
+        columns: 2,
+        [*Condition*], [*Result*],
+        ..results.flatten(),
+      )
+      
Preview
+ params: + - name: path + details:

Path to a CSV file.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: delimiter + details: |- +

The delimiter that separates columns in the CSV file. + Must be a single ASCII character.

+ example: null + types: + - string + strings: [] + default: "," + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - array + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/data-loading/json-en.yaml b/docs/i18n/data-loading/json-en.yaml index 110ed02e8bb8..287577728cd1 100644 --- a/docs/i18n/data-loading/json-en.yaml +++ b/docs/i18n/data-loading/json-en.yaml @@ -1,77 +1,77 @@ -route: /docs/reference/data-loading/json/ -title: JSON -description: Documentation for the `json` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] -body: - kind: func - content: - path: - - json - display: JSON - keywords: null - oneliner: Reads structured data from a JSON file. - element: false - details: |- -

Reads structured data from a JSON file.

-

The file must contain a valid JSON object or array. JSON objects will be - converted into Typst dictionaries, and JSON arrays will be converted into - Typst arrays. Strings and booleans will be converted into the Typst - equivalents, null will be converted into none, and numbers will be - converted to floats or integers depending on whether they are whole numbers.

-

The function returns a dictionary or an array, depending on the JSON file.

-

The JSON files in the example contain objects with the keys temperature, - unit, and weather.

-

Example

-
#let forecast(day) = block[
-        #box(square(
-          width: 2cm,
-          inset: 8pt,
-          fill: if day.weather == "sunny" {
-            yellow
-          } else {
-            aqua
-          },
-          align(
-            bottom + right,
-            strong(day.weather),
-          ),
-        ))
-        #h(6pt)
-        #set text(22pt, baseline: -8pt)
-        #day.temperature °#day.unit
-      ]
-
-      #forecast(json("monday.json"))
-      #forecast(json("tuesday.json"))
-      
Preview
- params: - - name: path - details:

Path to a JSON file.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/data-loading/json/ +title: JSON +description: Documentation for the `json` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] +body: + kind: func + content: + path: + - json + display: JSON + keywords: null + oneliner: Reads structured data from a JSON file. + element: false + details: |- +

Reads structured data from a JSON file.

+

The file must contain a valid JSON object or array. JSON objects will be + converted into Typst dictionaries, and JSON arrays will be converted into + Typst arrays. Strings and booleans will be converted into the Typst + equivalents, null will be converted into none, and numbers will be + converted to floats or integers depending on whether they are whole numbers.

+

The function returns a dictionary or an array, depending on the JSON file.

+

The JSON files in the example contain objects with the keys temperature, + unit, and weather.

+

Example

+
#let forecast(day) = block[
+        #box(square(
+          width: 2cm,
+          inset: 8pt,
+          fill: if day.weather == "sunny" {
+            yellow
+          } else {
+            aqua
+          },
+          align(
+            bottom + right,
+            strong(day.weather),
+          ),
+        ))
+        #h(6pt)
+        #set text(22pt, baseline: -8pt)
+        #day.temperature °#day.unit
+      ]
+
+      #forecast(json("monday.json"))
+      #forecast(json("tuesday.json"))
+      
Preview
+ params: + - name: path + details:

Path to a JSON file.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/data-loading/read-en.yaml b/docs/i18n/data-loading/read-en.yaml index f140e5c02f35..4e8f8feef8d1 100644 --- a/docs/i18n/data-loading/read-en.yaml +++ b/docs/i18n/data-loading/read-en.yaml @@ -1,53 +1,53 @@ -route: /docs/reference/data-loading/read/ -title: Read -description: Documentation for the `read` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] -body: - kind: func - content: - path: - - read - display: Read - keywords: null - oneliner: Reads plain text from a file. - element: false - details: |- -

Reads plain text from a file.

-

The file will be read and returned as a string.

-

Example

-
#let text = read("data.html")
-
-      An example for a HTML file:\
-      #raw(text, lang: "html")
-      
Preview
- params: - - name: path - details:

Path to a file.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - methods: [] - scope: [] -children: [] +route: /docs/reference/data-loading/read/ +title: Read +description: Documentation for the `read` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] +body: + kind: func + content: + path: + - read + display: Read + keywords: null + oneliner: Reads plain text from a file. + element: false + details: |- +

Reads plain text from a file.

+

The file will be read and returned as a string.

+

Example

+
#let text = read("data.html")
+
+      An example for a HTML file:\
+      #raw(text, lang: "html")
+      
Preview
+ params: + - name: path + details:

Path to a file.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/data-loading/toml-en.yaml b/docs/i18n/data-loading/toml-en.yaml index 7e92af86658d..b5b2302245b6 100644 --- a/docs/i18n/data-loading/toml-en.yaml +++ b/docs/i18n/data-loading/toml-en.yaml @@ -1,62 +1,62 @@ -route: /docs/reference/data-loading/toml/ -title: TOML -description: Documentation for the `toml` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] -body: - kind: func - content: - path: - - toml - display: TOML - keywords: null - oneliner: Reads structured data from a TOML file. - element: false - details: |- -

Reads structured data from a TOML file.

-

The file must contain a valid TOML table. TOML tables will be - converted into Typst dictionaries, and TOML arrays will be converted into - Typst arrays. Strings and booleans will be converted into the Typst - equivalents and numbers will be converted to floats or integers depending on - whether they are whole numbers. For the time being, datetimes will be - converted to strings as Typst does not have a built-in datetime yet.

-

The TOML file in the example consists of a table with the keys title, - version, and authors.

-

Example

-
#let details = toml("details.toml")
-
-      Title: #details.title \
-      Version: #details.version \
-      Authors: #(details.authors
-        .join(", ", last: " and "))
-      
Preview
- params: - - name: path - details:

Path to a TOML file.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/data-loading/toml/ +title: TOML +description: Documentation for the `toml` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] +body: + kind: func + content: + path: + - toml + display: TOML + keywords: null + oneliner: Reads structured data from a TOML file. + element: false + details: |- +

Reads structured data from a TOML file.

+

The file must contain a valid TOML table. TOML tables will be + converted into Typst dictionaries, and TOML arrays will be converted into + Typst arrays. Strings and booleans will be converted into the Typst + equivalents and numbers will be converted to floats or integers depending on + whether they are whole numbers. For the time being, datetimes will be + converted to strings as Typst does not have a built-in datetime yet.

+

The TOML file in the example consists of a table with the keys title, + version, and authors.

+

Example

+
#let details = toml("details.toml")
+
+      Title: #details.title \
+      Version: #details.version \
+      Authors: #(details.authors
+        .join(", ", last: " and "))
+      
Preview
+ params: + - name: path + details:

Path to a TOML file.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/data-loading/xml-en.yaml b/docs/i18n/data-loading/xml-en.yaml index a3c0e6bd6b1b..8e70690548d8 100644 --- a/docs/i18n/data-loading/xml-en.yaml +++ b/docs/i18n/data-loading/xml-en.yaml @@ -1,90 +1,90 @@ -route: /docs/reference/data-loading/xml/ -title: XML -description: Documentation for the `xml` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] -body: - kind: func - content: - path: - - xml - display: XML - keywords: null - oneliner: Reads structured data from an XML file. - element: false - details: |- -

Reads structured data from an XML file.

-

The XML file is parsed into an array of dictionaries and strings. XML nodes - can be elements or strings. Elements are represented as dictionaries with - the the following keys:

- -

The XML file in the example contains a root news tag with multiple - article tags. Each article has a title, author, and content tag. The - content tag contains one or more paragraphs, which are represented as p - tags.

-

Example

-
#let find-child(elem, tag) = {
-        elem.children
-          .find(e => "tag" in e and e.tag == tag)
-      }
-
-      #let article(elem) = {
-        let title = find-child(elem, "title")
-        let author = find-child(elem, "author")
-        let pars = find-child(elem, "content")
-
-        heading(title.children.first())
-        text(10pt, weight: "medium")[
-          Published by
-          #author.children.first()
-        ]
-
-        for p in pars.children {
-          if (type(p) == "dictionary") {
-            parbreak()
-            p.children.first()
-          }
-        }
-      }
-
-      #let data = xml("example.xml")
-      #for elem in data.first().children {
-        if (type(elem) == "dictionary") {
-          article(elem)
-        }
-      }
-      
Preview
- params: - - name: path - details:

Path to an XML file.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/data-loading/xml/ +title: XML +description: Documentation for the `xml` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] +body: + kind: func + content: + path: + - xml + display: XML + keywords: null + oneliner: Reads structured data from an XML file. + element: false + details: |- +

Reads structured data from an XML file.

+

The XML file is parsed into an array of dictionaries and strings. XML nodes + can be elements or strings. Elements are represented as dictionaries with + the the following keys:

+ +

The XML file in the example contains a root news tag with multiple + article tags. Each article has a title, author, and content tag. The + content tag contains one or more paragraphs, which are represented as p + tags.

+

Example

+
#let find-child(elem, tag) = {
+        elem.children
+          .find(e => "tag" in e and e.tag == tag)
+      }
+
+      #let article(elem) = {
+        let title = find-child(elem, "title")
+        let author = find-child(elem, "author")
+        let pars = find-child(elem, "content")
+
+        heading(title.children.first())
+        text(10pt, weight: "medium")[
+          Published by
+          #author.children.first()
+        ]
+
+        for p in pars.children {
+          if (type(p) == "dictionary") {
+            parbreak()
+            p.children.first()
+          }
+        }
+      }
+
+      #let data = xml("example.xml")
+      #for elem in data.first().children {
+        if (type(elem) == "dictionary") {
+          article(elem)
+        }
+      }
+      
Preview
+ params: + - name: path + details:

Path to an XML file.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/data-loading/yaml-en.yaml b/docs/i18n/data-loading/yaml-en.yaml index 8b2e38e714fa..1903b9f421a8 100644 --- a/docs/i18n/data-loading/yaml-en.yaml +++ b/docs/i18n/data-loading/yaml-en.yaml @@ -1,75 +1,75 @@ -route: /docs/reference/data-loading/yaml/ -title: YAML -description: Documentation for the `yaml` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] -body: - kind: func - content: - path: - - yaml - display: YAML - keywords: null - oneliner: Reads structured data from a YAML file. - element: false - details: |- -

Reads structured data from a YAML file.

-

The file must contain a valid YAML object or array. YAML mappings will be - converted into Typst dictionaries, and YAML sequences will be converted into - Typst arrays. Strings and booleans will be converted into the Typst - equivalents, null-values (null, ~ or empty ``) will be converted into - none, and numbers will be converted to floats or integers depending on - whether they are whole numbers.

-

Note that mapping keys that are not a string cause the entry to be - discarded.

-

Custom YAML tags are ignored, though the loaded value will still be - present.

-

The function returns a dictionary or value or an array, depending on - the YAML file.

-

The YAML files in the example contain objects with authors as keys, - each with a sequence of their own submapping with the keys - "title" and "published"

-

Example

-
#let bookshelf(contents) = {
-        for (author, works) in contents {
-          author
-          for work in works [
-            - #work.title (#work.published)
-          ]
-        }
-      }
-
-      #bookshelf(
-        yaml("scifi-authors.yaml")
-      )
-      
Preview
- params: - - name: path - details:

Path to a YAML file.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/data-loading/yaml/ +title: YAML +description: Documentation for the `yaml` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] +body: + kind: func + content: + path: + - yaml + display: YAML + keywords: null + oneliner: Reads structured data from a YAML file. + element: false + details: |- +

Reads structured data from a YAML file.

+

The file must contain a valid YAML object or array. YAML mappings will be + converted into Typst dictionaries, and YAML sequences will be converted into + Typst arrays. Strings and booleans will be converted into the Typst + equivalents, null-values (null, ~ or empty ``) will be converted into + none, and numbers will be converted to floats or integers depending on + whether they are whole numbers.

+

Note that mapping keys that are not a string cause the entry to be + discarded.

+

Custom YAML tags are ignored, though the loaded value will still be + present.

+

The function returns a dictionary or value or an array, depending on + the YAML file.

+

The YAML files in the example contain objects with authors as keys, + each with a sequence of their own submapping with the keys + "title" and "published"

+

Example

+
#let bookshelf(contents) = {
+        for (author, works) in contents {
+          author
+          for work in works [
+            - #work.title (#work.published)
+          ]
+        }
+      }
+
+      #bookshelf(
+        yaml("scifi-authors.yaml")
+      )
+      
Preview
+ params: + - name: path + details:

Path to a YAML file.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/foundations/assert-en.yaml b/docs/i18n/foundations/assert-en.yaml index 4e9f89dd90df..750c318ffd48 100644 --- a/docs/i18n/foundations/assert-en.yaml +++ b/docs/i18n/foundations/assert-en.yaml @@ -1,218 +1,218 @@ -route: /docs/reference/foundations/assert/ -title: Assert -description: Documentation for the `assert` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-condition - name: condition - children: [] - - id: parameters-message - name: message - children: [] -- id: assert-eq - name: Assert Equals - children: - - id: example - name: Example - children: [] - - id: assert-eq-parameters - name: Parameters - children: - - id: assert-eq-parameters-left - name: left - children: [] - - id: assert-eq-parameters-right - name: right - children: [] - - id: assert-eq-parameters-message - name: message - children: [] -- id: assert-ne - name: Assert Not Equals - children: - - id: example - name: Example - children: [] - - id: assert-ne-parameters - name: Parameters - children: - - id: assert-ne-parameters-left - name: left - children: [] - - id: assert-ne-parameters-right - name: right - children: [] - - id: assert-ne-parameters-message - name: message - children: [] -body: - kind: func - content: - path: - - assert - display: Assert - keywords: null - oneliner: Ensures that a condition is fulfilled. - element: false - details: |- -

Ensures that a condition is fulfilled.

-

Fails with an error if the condition is not fulfilled. Does not - produce any output in the document.

-

If you wish to test equality between two values, see - assert.eq and assert.ne.

-

Example

-
#assert(1 < 2, message: "math broke")
-      
- params: - - name: condition - details:

The condition that must be true for the assertion to pass.

- example: null - types: - - boolean - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: message - details:

The error message when the assertion fails.

- example: null - types: - - none - - string - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - returns: [] - methods: [] - scope: - - path: - - assert - - eq - display: Assert Equals - keywords: null - oneliner: Ensures that two values are equal. - element: false - details: |- -

Ensures that two values are equal.

-

Fails with an error if the first value is not equal to the second. Does not - produce any output in the document.

-

Example

-
#assert.eq(10, 10)
-        
- params: - - name: left - details:

The first value to compare.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: right - details:

The second value to compare.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: message - details: |- -

An optional message to display on error instead of the representations - of the compared values.

- example: null - types: - - none - - string - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - returns: [] - methods: [] - scope: [] - - path: - - assert - - ne - display: Assert Not Equals - keywords: null - oneliner: Ensures that two values are not equal. - element: false - details: |- -

Ensures that two values are not equal.

-

Fails with an error if the first value is equal to the second. Does not - produce any output in the document.

-

Example

-
#assert.ne(3, 4)
-        
- params: - - name: left - details:

The first value to compare.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: right - details:

The second value to compare.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: message - details: |- -

An optional message to display on error instead of the representations - of the compared values.

- example: null - types: - - none - - string - strings: [] - default: null - positional: false - named: true - required: true - variadic: false - settable: false - returns: [] - methods: [] - scope: [] -children: [] +route: /docs/reference/foundations/assert/ +title: Assert +description: Documentation for the `assert` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-condition + name: condition + children: [] + - id: parameters-message + name: message + children: [] +- id: assert-eq + name: Assert Equals + children: + - id: example + name: Example + children: [] + - id: assert-eq-parameters + name: Parameters + children: + - id: assert-eq-parameters-left + name: left + children: [] + - id: assert-eq-parameters-right + name: right + children: [] + - id: assert-eq-parameters-message + name: message + children: [] +- id: assert-ne + name: Assert Not Equals + children: + - id: example + name: Example + children: [] + - id: assert-ne-parameters + name: Parameters + children: + - id: assert-ne-parameters-left + name: left + children: [] + - id: assert-ne-parameters-right + name: right + children: [] + - id: assert-ne-parameters-message + name: message + children: [] +body: + kind: func + content: + path: + - assert + display: Assert + keywords: null + oneliner: Ensures that a condition is fulfilled. + element: false + details: |- +

Ensures that a condition is fulfilled.

+

Fails with an error if the condition is not fulfilled. Does not + produce any output in the document.

+

If you wish to test equality between two values, see + assert.eq and assert.ne.

+

Example

+
#assert(1 < 2, message: "math broke")
+      
+ params: + - name: condition + details:

The condition that must be true for the assertion to pass.

+ example: null + types: + - boolean + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: message + details:

The error message when the assertion fails.

+ example: null + types: + - none + - string + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + returns: [] + methods: [] + scope: + - path: + - assert + - eq + display: Assert Equals + keywords: null + oneliner: Ensures that two values are equal. + element: false + details: |- +

Ensures that two values are equal.

+

Fails with an error if the first value is not equal to the second. Does not + produce any output in the document.

+

Example

+
#assert.eq(10, 10)
+        
+ params: + - name: left + details:

The first value to compare.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: right + details:

The second value to compare.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: message + details: |- +

An optional message to display on error instead of the representations + of the compared values.

+ example: null + types: + - none + - string + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + returns: [] + methods: [] + scope: [] + - path: + - assert + - ne + display: Assert Not Equals + keywords: null + oneliner: Ensures that two values are not equal. + element: false + details: |- +

Ensures that two values are not equal.

+

Fails with an error if the first value is equal to the second. Does not + produce any output in the document.

+

Example

+
#assert.ne(3, 4)
+        
+ params: + - name: left + details:

The first value to compare.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: right + details:

The second value to compare.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: message + details: |- +

An optional message to display on error instead of the representations + of the compared values.

+ example: null + types: + - none + - string + strings: [] + default: null + positional: false + named: true + required: true + variadic: false + settable: false + returns: [] + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/foundations/eval-en.yaml b/docs/i18n/foundations/eval-en.yaml index 758843651c74..9e3ffa624a39 100644 --- a/docs/i18n/foundations/eval-en.yaml +++ b/docs/i18n/foundations/eval-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/foundations/eval/ -title: Evaluate -description: Documentation for the `eval` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-source - name: source - children: [] -body: - kind: func - content: - path: - - eval - display: Evaluate - keywords: null - oneliner: Evaluates a string as Typst code. - element: false - details: |- -

Evaluates a string as Typst code.

-

This function should only be used as a last resort.

-

Example

-
#eval("1 + 1") \
-      #eval("(1, 2, 3, 4)").len() \
-      #eval("[*Strong text*]")
-      
Preview
- params: - - name: source - details: |- -

A string of Typst code to evaluate.

-

The code in the string cannot interact with the file system.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/foundations/eval/ +title: Evaluate +description: Documentation for the `eval` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-source + name: source + children: [] +body: + kind: func + content: + path: + - eval + display: Evaluate + keywords: null + oneliner: Evaluates a string as Typst code. + element: false + details: |- +

Evaluates a string as Typst code.

+

This function should only be used as a last resort.

+

Example

+
#eval("1 + 1") \
+      #eval("(1, 2, 3, 4)").len() \
+      #eval("[*Strong text*]")
+      
Preview
+ params: + - name: source + details: |- +

A string of Typst code to evaluate.

+

The code in the string cannot interact with the file system.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/foundations/panic-en.yaml b/docs/i18n/foundations/panic-en.yaml index 83897fee4d42..60ee54dc95b4 100644 --- a/docs/i18n/foundations/panic-en.yaml +++ b/docs/i18n/foundations/panic-en.yaml @@ -1,49 +1,49 @@ -route: /docs/reference/foundations/panic/ -title: Panic -description: Documentation for the `panic` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-values - name: values - children: [] -body: - kind: func - content: - path: - - panic - display: Panic - keywords: null - oneliner: Fails with an error. - element: false - details: |- -

Fails with an error.

-

Example

-

The code below produces the error panicked with: "this is wrong".

-
#panic("this is wrong")
-      
- params: - - name: values - details:

The values to panic with.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: [] - methods: [] - scope: [] -children: [] +route: /docs/reference/foundations/panic/ +title: Panic +description: Documentation for the `panic` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-values + name: values + children: [] +body: + kind: func + content: + path: + - panic + display: Panic + keywords: null + oneliner: Fails with an error. + element: false + details: |- +

Fails with an error.

+

Example

+

The code below produces the error panicked with: "this is wrong".

+
#panic("this is wrong")
+      
+ params: + - name: values + details:

The values to panic with.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: [] + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/foundations/repr-en.yaml b/docs/i18n/foundations/repr-en.yaml index d49419c6fd30..817057b5ba83 100644 --- a/docs/i18n/foundations/repr-en.yaml +++ b/docs/i18n/foundations/repr-en.yaml @@ -1,57 +1,57 @@ -route: /docs/reference/foundations/repr/ -title: Representation -description: Documentation for the `repr` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - repr - display: Representation - keywords: null - oneliner: Returns the string representation of a value. - element: false - details: |- -

Returns the string representation of a value.

-

When inserted into content, most values are displayed as this representation - in monospace with syntax-highlighting. The exceptions are none, - integers, floats, strings, content, and functions.

-

Note: This function is for debugging purposes. Its output should not be - considered stable and may change at any time!

-

Example

-
#none vs #repr(none) \
-      #"hello" vs #repr("hello") \
-      #(1, 2) vs #repr((1, 2)) \
-      #[*Hi*] vs #repr([*Hi*])
-      
Preview
- params: - - name: value - details:

The value whose string representation to produce.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - methods: [] - scope: [] -children: [] +route: /docs/reference/foundations/repr/ +title: Representation +description: Documentation for the `repr` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - repr + display: Representation + keywords: null + oneliner: Returns the string representation of a value. + element: false + details: |- +

Returns the string representation of a value.

+

When inserted into content, most values are displayed as this representation + in monospace with syntax-highlighting. The exceptions are none, + integers, floats, strings, content, and functions.

+

Note: This function is for debugging purposes. Its output should not be + considered stable and may change at any time!

+

Example

+
#none vs #repr(none) \
+      #"hello" vs #repr("hello") \
+      #(1, 2) vs #repr((1, 2)) \
+      #[*Hi*] vs #repr([*Hi*])
+      
Preview
+ params: + - name: value + details:

The value whose string representation to produce.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/foundations/type-en.yaml b/docs/i18n/foundations/type-en.yaml index 5d6e33213bb4..2297a2d5a5ba 100644 --- a/docs/i18n/foundations/type-en.yaml +++ b/docs/i18n/foundations/type-en.yaml @@ -1,55 +1,55 @@ -route: /docs/reference/foundations/type/ -title: Type -description: Documentation for the `type` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-value - name: value - children: [] -body: - kind: func - content: - path: - - type - display: Type - keywords: null - oneliner: Determines the type of a value. - element: false - details: |- -

Determines the type of a value.

-

Returns the name of the value's type.

-

Example

-
#type(12) \
-      #type(14.7) \
-      #type("hello") \
-      #type(none) \
-      #type([Hi]) \
-      #type(x => x + 1)
-      
Preview
- params: - - name: value - details:

The value whose type's to determine.

- example: null - types: - - any - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - methods: [] - scope: [] -children: [] +route: /docs/reference/foundations/type/ +title: Type +description: Documentation for the `type` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-value + name: value + children: [] +body: + kind: func + content: + path: + - type + display: Type + keywords: null + oneliner: Determines the type of a value. + element: false + details: |- +

Determines the type of a value.

+

Returns the name of the value's type.

+

Example

+
#type(12) \
+      #type(14.7) \
+      #type("hello") \
+      #type(none) \
+      #type([Hi]) \
+      #type(x => x + 1)
+      
Preview
+ params: + - name: value + details:

The value whose type's to determine.

+ example: null + types: + - any + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/align-en.yaml b/docs/i18n/layout/align-en.yaml index 71c79637c18b..ae7dd7637d1a 100644 --- a/docs/i18n/layout/align-en.yaml +++ b/docs/i18n/layout/align-en.yaml @@ -1,99 +1,99 @@ -route: /docs/reference/layout/align/ -title: Align -description: Documentation for the `align` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-alignment - name: alignment - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - align - display: Align - keywords: null - oneliner: Aligns content horizontally and vertically. - element: true - details: |- -

Aligns content horizontally and vertically.

-

Example

-
#set align(center)
-
-      Centered text, a sight to see \
-      In perfect balance, visually \
-      Not left nor right, it stands alone \
-      A work of art, a visual throne
-      
Preview
- params: - - name: alignment - details: |- -

The alignment along both axes.

-

Possible values for horizontal alignments are:

- -

The start and end alignments are relative to the current text - direction.

-

Possible values for vertical alignments are:

- -

To align along both axes at the same time, add the two alignments using - the + operator to get a 2d alignment. For example, top + right - aligns the content to the top right corner.

- example: |- -
#set page(height: 6cm)
-        #set text(lang: "ar")
-
-        مثال
-        #align(
-          end + horizon,
-          rect(inset: 12pt)[ركن]
-        )
-        
Preview
- types: - - alignment - - 2d alignment - strings: [] - default: start + top - positional: true - named: false - required: false - variadic: false - settable: true - - name: body - details:

The content to align.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/align/ +title: Align +description: Documentation for the `align` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-alignment + name: alignment + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - align + display: Align + keywords: null + oneliner: Aligns content horizontally and vertically. + element: true + details: |- +

Aligns content horizontally and vertically.

+

Example

+
#set align(center)
+
+      Centered text, a sight to see \
+      In perfect balance, visually \
+      Not left nor right, it stands alone \
+      A work of art, a visual throne
+      
Preview
+ params: + - name: alignment + details: |- +

The alignment along both axes.

+

Possible values for horizontal alignments are:

+ +

The start and end alignments are relative to the current text + direction.

+

Possible values for vertical alignments are:

+ +

To align along both axes at the same time, add the two alignments using + the + operator to get a 2d alignment. For example, top + right + aligns the content to the top right corner.

+ example: |- +
#set page(height: 6cm)
+        #set text(lang: "ar")
+
+        مثال
+        #align(
+          end + horizon,
+          rect(inset: 12pt)[ركن]
+        )
+        
Preview
+ types: + - alignment + - 2d alignment + strings: [] + default: start + top + positional: true + named: false + required: false + variadic: false + settable: true + - name: body + details:

The content to align.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/align-zh.yaml b/docs/i18n/layout/align-zh.yaml index ae7dd7637d1a..66ecc2c5e20f 100644 --- a/docs/i18n/layout/align-zh.yaml +++ b/docs/i18n/layout/align-zh.yaml @@ -28,7 +28,7 @@ body: oneliner: Aligns content horizontally and vertically. element: true details: |- -

Aligns content horizontally and vertically.

+

将内容水平和垂直对齐。

Example

#set align(center)
 
@@ -40,8 +40,8 @@ body:
     params:
     - name: alignment
       details: |-
-        

The alignment along both axes.

-

Possible values for horizontal alignments are:

+

在水平和垂直两个轴上进行对齐。

+

可用的水平对齐方式包括:

  • start
  • end
  • @@ -49,17 +49,15 @@ body:
  • center
  • right
-

The start and end alignments are relative to the current text - direction.

-

Possible values for vertical alignments are:

+

startend 对齐方式是相对于当前 text + direction 的。

+

可用的垂直对齐方式包括:

  • top
  • horizon
  • bottom
-

To align along both axes at the same time, add the two alignments using - the + operator to get a 2d alignment. For example, top + right - aligns the content to the top right corner.

+

要同时在两个轴上对齐,可以使用 + 运算符将两个对齐方式相加,得到一个二维对齐方式。例如,top + right 将内容对齐到右上角。

example: |-
#set page(height: 6cm)
         #set text(lang: "ar")
@@ -81,7 +79,7 @@ body:
       variadic: false
       settable: true
     - name: body
-      details: 

The content to align.

+ details:

需要对齐的内容。

example: null types: - content diff --git a/docs/i18n/layout/block-en.yaml b/docs/i18n/layout/block-en.yaml index f174c2e0a93d..8dbd382bca94 100644 --- a/docs/i18n/layout/block-en.yaml +++ b/docs/i18n/layout/block-en.yaml @@ -1,314 +1,314 @@ -route: /docs/reference/layout/block/ -title: Block -description: Documentation for the `block` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: examples - name: Examples - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-width - name: width - children: [] - - id: parameters-height - name: height - children: [] - - id: parameters-breakable - name: breakable - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-radius - name: radius - children: [] - - id: parameters-inset - name: inset - children: [] - - id: parameters-outset - name: outset - children: [] - - id: parameters-spacing - name: spacing - children: [] - - id: parameters-above - name: above - children: [] - - id: parameters-below - name: below - children: [] - - id: parameters-clip - name: clip - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - block - display: Block - keywords: null - oneliner: A block-level container. - element: true - details: |- -

A block-level container.

-

Such a container can be used to separate content, size it, and give it a - background or border.

-

Examples

-

With a block, you can give a background to content while still allowing it - to break across multiple pages.

-
#set page(height: 100pt)
-      #block(
-        fill: luma(230),
-        inset: 8pt,
-        radius: 4pt,
-        lorem(30),
-      )
-      
Preview
-

Blocks are also useful to force elements that would otherwise be inline to - become block-level, especially when writing show rules.

-
#show heading: it => it.body
-      = Blockless
-      More text.
-
-      #show heading: it => block(it.body)
-      = Blocky
-      More text.
-      
Preview
- params: - - name: width - details:

The block's width.

- example: |- -
#set align(center)
-        #block(
-          width: 60%,
-          inset: 8pt,
-          fill: silver,
-          lorem(10),
-        )
-        
Preview
- types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details: |- -

The block's height. When the height is larger than the remaining space - on a page and breakable is true, the - block will continue on the next page with the remaining height.

- example: |- -
#set page(height: 80pt)
-        #set align(center)
-        #block(
-          width: 80%,
-          height: 150%,
-          fill: aqua,
-        )
-        
Preview
- types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: breakable - details:

Whether the block can be broken and continue on the next page.

- example: |- -
#set page(height: 80pt)
-        The following block will
-        jump to its own page.
-        #block(
-          breakable: false,
-          lorem(15),
-        )
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

The block's background color. See the - rectangle's documentation for more details.

- example: null - types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

The block's border color. See the - rectangle's documentation for more details.

- example: null - types: - - none - - length - - color - - dictionary - - stroke - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: radius - details: |- -

How much to round the block's corners. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: inset - details: |- -

How much to pad the block's content. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: outset - details: |- -

How much to expand the block's size without affecting the layout. See - the rectangle's documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: spacing - details: |- -

The spacing around this block. This is shorthand to set above and - below to the same value.

- example: |- -
#set align(center)
-        #show math.equation: set block(above: 8pt, below: 16pt)
-
-        This sum of $x$ and $y$:
-        $ x + y = z $
-        A second paragraph.
-        
Preview
- types: - - relative length - - fraction - strings: [] - default: 1.2em - positional: false - named: true - required: false - variadic: false - settable: true - - name: above - details: |- -

The spacing between this block and its predecessor. Takes precedence - over spacing. Can be used in combination with a show rule to adjust - the spacing around arbitrary block-level elements.

- example: null - types: - - relative length - - fraction - strings: [] - default: 1.2em - positional: false - named: true - required: false - variadic: false - settable: true - - name: below - details: |- -

The spacing between this block and its successor. Takes precedence - over spacing.

- example: null - types: - - relative length - - fraction - strings: [] - default: 1.2em - positional: false - named: true - required: false - variadic: false - settable: true - - name: clip - details:

Whether to clip the content inside the block.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The contents of the block.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/block/ +title: Block +description: Documentation for the `block` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: examples + name: Examples + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-breakable + name: breakable + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-radius + name: radius + children: [] + - id: parameters-inset + name: inset + children: [] + - id: parameters-outset + name: outset + children: [] + - id: parameters-spacing + name: spacing + children: [] + - id: parameters-above + name: above + children: [] + - id: parameters-below + name: below + children: [] + - id: parameters-clip + name: clip + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - block + display: Block + keywords: null + oneliner: A block-level container. + element: true + details: |- +

A block-level container.

+

Such a container can be used to separate content, size it, and give it a + background or border.

+

Examples

+

With a block, you can give a background to content while still allowing it + to break across multiple pages.

+
#set page(height: 100pt)
+      #block(
+        fill: luma(230),
+        inset: 8pt,
+        radius: 4pt,
+        lorem(30),
+      )
+      
Preview
+

Blocks are also useful to force elements that would otherwise be inline to + become block-level, especially when writing show rules.

+
#show heading: it => it.body
+      = Blockless
+      More text.
+
+      #show heading: it => block(it.body)
+      = Blocky
+      More text.
+      
Preview
+ params: + - name: width + details:

The block's width.

+ example: |- +
#set align(center)
+        #block(
+          width: 60%,
+          inset: 8pt,
+          fill: silver,
+          lorem(10),
+        )
+        
Preview
+ types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details: |- +

The block's height. When the height is larger than the remaining space + on a page and breakable is true, the + block will continue on the next page with the remaining height.

+ example: |- +
#set page(height: 80pt)
+        #set align(center)
+        #block(
+          width: 80%,
+          height: 150%,
+          fill: aqua,
+        )
+        
Preview
+ types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: breakable + details:

Whether the block can be broken and continue on the next page.

+ example: |- +
#set page(height: 80pt)
+        The following block will
+        jump to its own page.
+        #block(
+          breakable: false,
+          lorem(15),
+        )
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

The block's background color. See the + rectangle's documentation for more details.

+ example: null + types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

The block's border color. See the + rectangle's documentation for more details.

+ example: null + types: + - none + - length + - color + - dictionary + - stroke + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: radius + details: |- +

How much to round the block's corners. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: inset + details: |- +

How much to pad the block's content. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: outset + details: |- +

How much to expand the block's size without affecting the layout. See + the rectangle's documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: spacing + details: |- +

The spacing around this block. This is shorthand to set above and + below to the same value.

+ example: |- +
#set align(center)
+        #show math.equation: set block(above: 8pt, below: 16pt)
+
+        This sum of $x$ and $y$:
+        $ x + y = z $
+        A second paragraph.
+        
Preview
+ types: + - relative length + - fraction + strings: [] + default: 1.2em + positional: false + named: true + required: false + variadic: false + settable: true + - name: above + details: |- +

The spacing between this block and its predecessor. Takes precedence + over spacing. Can be used in combination with a show rule to adjust + the spacing around arbitrary block-level elements.

+ example: null + types: + - relative length + - fraction + strings: [] + default: 1.2em + positional: false + named: true + required: false + variadic: false + settable: true + - name: below + details: |- +

The spacing between this block and its successor. Takes precedence + over spacing.

+ example: null + types: + - relative length + - fraction + strings: [] + default: 1.2em + positional: false + named: true + required: false + variadic: false + settable: true + - name: clip + details:

Whether to clip the content inside the block.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The contents of the block.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/block-zh.yaml b/docs/i18n/layout/block-zh.yaml index 8dbd382bca94..b8cc5c3b8ee0 100644 --- a/docs/i18n/layout/block-zh.yaml +++ b/docs/i18n/layout/block-zh.yaml @@ -61,12 +61,10 @@ body: oneliner: A block-level container. element: true details: |- -

A block-level container.

-

Such a container can be used to separate content, size it, and give it a - background or border.

+

一个块级容器。

+

这样的容器可以用来分隔内容、调整大小,并为其添加背景或边框。

Examples

-

With a block, you can give a background to content while still allowing it - to break across multiple pages.

+

通过使用块级容器,你可以为内容设置背景,并且仍然允许内容跨多个页面断开。

#set page(height: 100pt)
       #block(
         fill: luma(230),
@@ -75,8 +73,7 @@ body:
         lorem(30),
       )
       
Preview
-

Blocks are also useful to force elements that would otherwise be inline to - become block-level, especially when writing show rules.

+

块还可以用于将本应为内联的元素强制变为块级元素,特别是在编写 show 规则时非常有用。

#show heading: it => it.body
       = Blockless
       More text.
diff --git a/docs/i18n/layout/box-en.yaml b/docs/i18n/layout/box-en.yaml
index 1a0a1f7eae32..bbe6b069be8e 100644
--- a/docs/i18n/layout/box-en.yaml
+++ b/docs/i18n/layout/box-en.yaml
@@ -1,235 +1,235 @@
-route: /docs/reference/layout/box/
-title: Box
-description: Documentation for the `box` function.
-part: null
-outline:
-- id: summary
-  name: Summary
-  children: []
-- id: example
-  name: Example
-  children: []
-- id: parameters
-  name: Parameters
-  children:
-  - id: parameters-width
-    name: width
-    children: []
-  - id: parameters-height
-    name: height
-    children: []
-  - id: parameters-baseline
-    name: baseline
-    children: []
-  - id: parameters-fill
-    name: fill
-    children: []
-  - id: parameters-stroke
-    name: stroke
-    children: []
-  - id: parameters-radius
-    name: radius
-    children: []
-  - id: parameters-inset
-    name: inset
-    children: []
-  - id: parameters-outset
-    name: outset
-    children: []
-  - id: parameters-clip
-    name: clip
-    children: []
-  - id: parameters-body
-    name: body
-    children: []
-body:
-  kind: func
-  content:
-    path:
-    - box
-    display: Box
-    keywords: null
-    oneliner: An inline-level container that sizes content.
-    element: true
-    details: |-
-      

An inline-level container that sizes content.

-

All elements except inline math, text, and boxes are block-level and cannot - occur inside of a paragraph. The box function can be used to integrate such - elements into a paragraph. Boxes take the size of their contents by default - but can also be sized explicitly.

-

Example

-
Refer to the docs
-      #box(
-        height: 9pt,
-        image("docs.svg")
-      )
-      for more information.
-      
Preview
- params: - - name: width - details: |- -

The width of the box.

-

Boxes can have fractional widths, as the example - below demonstrates.

-

Note: Currently, only boxes and only their widths might be fractionally - sized within paragraphs. Support for fractionally sized images, shapes, - and more might be added in the future.

- example: |- -
Line in #box(width: 1fr, line(length: 100%)) between.
-        
Preview
- types: - - auto - - relative length - - fraction - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details:

The height of the box.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: baseline - details:

An amount to shift the box's baseline by.

- example: |- -
Image: #box(baseline: 40%, image("tiger.jpg", width: 2cm)).
-        
Preview
- types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

The box's background color. See the - rectangle's documentation for more details.

- example: null - types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

The box's border color. See the - rectangle's documentation for more details.

- example: null - types: - - none - - length - - color - - dictionary - - stroke - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: radius - details: |- -

How much to round the box's corners. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: inset - details: |- -

How much to pad the box's content. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: outset - details: |- -

How much to expand the box's size without affecting the layout.

-

This is useful to prevent padding from affecting line layout. For a - generalized version of the example below, see the documentation for the - raw text's block parameter.

- example: |- -
An inline
-        #box(
-          fill: luma(235),
-          inset: (x: 3pt, y: 0pt),
-          outset: (y: 3pt),
-          radius: 2pt,
-        )[rectangle].
-        
Preview
- types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: clip - details:

Whether to clip the content inside the box.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The contents of the box.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/box/ +title: Box +description: Documentation for the `box` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-baseline + name: baseline + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-radius + name: radius + children: [] + - id: parameters-inset + name: inset + children: [] + - id: parameters-outset + name: outset + children: [] + - id: parameters-clip + name: clip + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - box + display: Box + keywords: null + oneliner: An inline-level container that sizes content. + element: true + details: |- +

An inline-level container that sizes content.

+

All elements except inline math, text, and boxes are block-level and cannot + occur inside of a paragraph. The box function can be used to integrate such + elements into a paragraph. Boxes take the size of their contents by default + but can also be sized explicitly.

+

Example

+
Refer to the docs
+      #box(
+        height: 9pt,
+        image("docs.svg")
+      )
+      for more information.
+      
Preview
+ params: + - name: width + details: |- +

The width of the box.

+

Boxes can have fractional widths, as the example + below demonstrates.

+

Note: Currently, only boxes and only their widths might be fractionally + sized within paragraphs. Support for fractionally sized images, shapes, + and more might be added in the future.

+ example: |- +
Line in #box(width: 1fr, line(length: 100%)) between.
+        
Preview
+ types: + - auto + - relative length + - fraction + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details:

The height of the box.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: baseline + details:

An amount to shift the box's baseline by.

+ example: |- +
Image: #box(baseline: 40%, image("tiger.jpg", width: 2cm)).
+        
Preview
+ types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

The box's background color. See the + rectangle's documentation for more details.

+ example: null + types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

The box's border color. See the + rectangle's documentation for more details.

+ example: null + types: + - none + - length + - color + - dictionary + - stroke + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: radius + details: |- +

How much to round the box's corners. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: inset + details: |- +

How much to pad the box's content. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: outset + details: |- +

How much to expand the box's size without affecting the layout.

+

This is useful to prevent padding from affecting line layout. For a + generalized version of the example below, see the documentation for the + raw text's block parameter.

+ example: |- +
An inline
+        #box(
+          fill: luma(235),
+          inset: (x: 3pt, y: 0pt),
+          outset: (y: 3pt),
+          radius: 2pt,
+        )[rectangle].
+        
Preview
+ types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: clip + details:

Whether to clip the content inside the box.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The contents of the box.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/colbreak-en.yaml b/docs/i18n/layout/colbreak-en.yaml index 6a0d4efec771..562cb712ece1 100644 --- a/docs/i18n/layout/colbreak-en.yaml +++ b/docs/i18n/layout/colbreak-en.yaml @@ -1,67 +1,67 @@ -route: /docs/reference/layout/colbreak/ -title: Column Break -description: Documentation for the `colbreak` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-weak - name: weak - children: [] -body: - kind: func - content: - path: - - colbreak - display: Column Break - keywords: null - oneliner: Forces a column break. - element: true - details: |- -

Forces a column break.

-

The function will behave like a page break when used in a - single column layout or the last column on a page. Otherwise, content after - the column break will be placed in the next column.

-

Example

-
#set page(columns: 2)
-      Preliminary findings from our
-      ongoing research project have
-      revealed a hitherto unknown
-      phenomenon of extraordinary
-      significance.
-
-      #colbreak()
-      Through rigorous experimentation
-      and analysis, we have discovered
-      a hitherto uncharacterized process
-      that defies our current
-      understanding of the fundamental
-      laws of nature.
-      
Preview
- params: - - name: weak - details: |- -

If true, the column break is skipped if the current column is - already empty.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/colbreak/ +title: Column Break +description: Documentation for the `colbreak` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-weak + name: weak + children: [] +body: + kind: func + content: + path: + - colbreak + display: Column Break + keywords: null + oneliner: Forces a column break. + element: true + details: |- +

Forces a column break.

+

The function will behave like a page break when used in a + single column layout or the last column on a page. Otherwise, content after + the column break will be placed in the next column.

+

Example

+
#set page(columns: 2)
+      Preliminary findings from our
+      ongoing research project have
+      revealed a hitherto unknown
+      phenomenon of extraordinary
+      significance.
+
+      #colbreak()
+      Through rigorous experimentation
+      and analysis, we have discovered
+      a hitherto uncharacterized process
+      that defies our current
+      understanding of the fundamental
+      laws of nature.
+      
Preview
+ params: + - name: weak + details: |- +

If true, the column break is skipped if the current column is + already empty.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/columns-en.yaml b/docs/i18n/layout/columns-en.yaml index d195539beae3..94763e223dc5 100644 --- a/docs/i18n/layout/columns-en.yaml +++ b/docs/i18n/layout/columns-en.yaml @@ -1,100 +1,100 @@ -route: /docs/reference/layout/columns/ -title: Columns -description: Documentation for the `columns` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-count - name: count - children: [] - - id: parameters-gutter - name: gutter - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - columns - display: Columns - keywords: null - oneliner: Separates a region into multiple equally sized columns. - element: true - details: |- -

Separates a region into multiple equally sized columns.

-

The column function allows to separate the interior of any container into - multiple columns. It will not equalize the height of the columns, instead, - the columns will take up the height of their container or the remaining - height on the page. The columns function can break across pages if - necessary.

-

Example

-
= Towards Advanced Deep Learning
-
-      #box(height: 68pt,
-       columns(2, gutter: 11pt)[
-         #set par(justify: true)
-         This research was funded by the
-         National Academy of Sciences.
-         NAoS provided support for field
-         tests and interviews with a
-         grant of up to USD 40.000 for a
-         period of 6 months.
-       ]
-      )
-
-      In recent years, deep learning has
-      increasingly been used to solve a
-      variety of problems.
-      
Preview
- params: - - name: count - details:

The number of columns.

- example: null - types: - - integer - strings: [] - default: 2 - positional: true - named: false - required: false - variadic: false - settable: true - - name: gutter - details:

The size of the gutter space between each column.

- example: null - types: - - relative length - strings: [] - default: 4% - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content that should be layouted into the columns.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/columns/ +title: Columns +description: Documentation for the `columns` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-count + name: count + children: [] + - id: parameters-gutter + name: gutter + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - columns + display: Columns + keywords: null + oneliner: Separates a region into multiple equally sized columns. + element: true + details: |- +

Separates a region into multiple equally sized columns.

+

The column function allows to separate the interior of any container into + multiple columns. It will not equalize the height of the columns, instead, + the columns will take up the height of their container or the remaining + height on the page. The columns function can break across pages if + necessary.

+

Example

+
= Towards Advanced Deep Learning
+
+      #box(height: 68pt,
+       columns(2, gutter: 11pt)[
+         #set par(justify: true)
+         This research was funded by the
+         National Academy of Sciences.
+         NAoS provided support for field
+         tests and interviews with a
+         grant of up to USD 40.000 for a
+         period of 6 months.
+       ]
+      )
+
+      In recent years, deep learning has
+      increasingly been used to solve a
+      variety of problems.
+      
Preview
+ params: + - name: count + details:

The number of columns.

+ example: null + types: + - integer + strings: [] + default: 2 + positional: true + named: false + required: false + variadic: false + settable: true + - name: gutter + details:

The size of the gutter space between each column.

+ example: null + types: + - relative length + strings: [] + default: 4% + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content that should be layouted into the columns.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/enum-en.yaml b/docs/i18n/layout/enum-en.yaml index e0997d4e3074..0452587876cc 100644 --- a/docs/i18n/layout/enum-en.yaml +++ b/docs/i18n/layout/enum-en.yaml @@ -1,339 +1,339 @@ -route: /docs/reference/layout/enum/ -title: Numbered List -description: Documentation for the `enum` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-tight - name: tight - children: [] - - id: parameters-numbering - name: numbering - children: [] - - id: parameters-start - name: start - children: [] - - id: parameters-full - name: full - children: [] - - id: parameters-indent - name: indent - children: [] - - id: parameters-body-indent - name: body-indent - children: [] - - id: parameters-spacing - name: spacing - children: [] - - id: parameters-number-align - name: number-align - children: [] - - id: parameters-children - name: children - children: [] -- id: enum-item - name: Numbered List Item - children: - - id: enum-item-parameters - name: Parameters - children: - - id: enum-item-parameters-number - name: number - children: [] - - id: enum-item-parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - enum - display: Numbered List - keywords: null - oneliner: A numbered list. - element: true - details: |- -

A numbered list.

-

Displays a sequence of items vertically and numbers them consecutively.

-

Example

-
Automatically numbered:
-      + Preparations
-      + Analysis
-      + Conclusions
-
-      Manually numbered:
-      2. What is the first step?
-      5. I am confused.
-      +  Moving on ...
-
-      Function call.
-      #enum[First][Second]
-      
Preview
-

You can easily switch all your enumerations to a different numbering style - with a set rule.

-
#set enum(numbering: "a)")
-
-      + Starting off ...
-      + Don't forget step two
-      
Preview
-

You can also use enum.item to programmatically - customize the number of each item in the enumeration:

-
#enum(
-        enum.item(1)[First step],
-        enum.item(5)[Fifth step],
-        enum.item(10)[Tenth step]
-      )
-      
Preview
-

Syntax

-

This functions also has dedicated syntax:

-
    -
  • Starting a line with a plus sign creates an automatically numbered - enumeration item.
  • -
  • Starting a line with a number followed by a dot creates an explicitly - numbered enumeration item.
  • -
-

Enumeration items can contain multiple paragraphs and other block-level - content. All content that is indented more than an item's plus sign or dot - becomes part of that item.

- params: - - name: tight - details: |- -

If this is false, the items are spaced apart with - enum spacing. If it is true, they use normal - leading instead. This makes the enumeration more - compact, which can look better if the items are short.

-

In markup mode, the value of this parameter is determined based on - whether items are separated with a blank line. If items directly follow - each other, this is set to true; if items are separated by a blank - line, this is set to false.

- example: |- -
+ If an enum has a lot of text, and
-          maybe other inline content, it
-          should not be tight anymore.
-
-        + To make an enum wide, simply
-          insert a blank line between the
-          items.
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: numbering - details: |- -

How to number the enumeration. Accepts a - numbering pattern or function.

-

If the numbering pattern contains multiple counting symbols, they apply - to nested enums. If given a function, the function receives one argument - if full is false and multiple arguments if full is true.

- example: |- -
#set enum(numbering: "1.a)")
-        + Different
-        + Numbering
-          + Nested
-          + Items
-        + Style
-
-        #set enum(numbering: n => super[#n])
-        + Superscript
-        + Numbering!
-        
Preview
- types: - - string - - function - strings: [] - default: "1." - positional: false - named: true - required: false - variadic: false - settable: true - - name: start - details:

Which number to start the enumeration with.

- example: |- -
#enum(
-          start: 3,
-          [Skipping],
-          [Ahead],
-        )
-        
Preview
- types: - - integer - strings: [] - default: 1 - positional: false - named: true - required: false - variadic: false - settable: true - - name: full - details: |- -

Whether to display the full numbering, including the numbers of - all parent enumerations.

- example: |- -
#set enum(numbering: "1.a)", full: true)
-        + Cook
-          + Heat water
-          + Add integredients
-        + Eat
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: indent - details:

The indentation of each item.

- example: null - types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body-indent - details:

The space between the numbering and the body of each item.

- example: null - types: - - length - strings: [] - default: 0.5em - positional: false - named: true - required: false - variadic: false - settable: true - - name: spacing - details: |- -

The spacing between the items of a wide (non-tight) enumeration.

-

If set to auto, uses the spacing below blocks.

- example: null - types: - - auto - - relative length - - fraction - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: number-align - details: |- -

The horizontal alignment that enum numbers should have.

-

By default, this is set to end, which aligns enum numbers - towards end of the current text direction (in left-to-right script, - for example, this is the same as right). The choice of end - for horizontal alignment of enum numbers is usually preferred over - start, as numbers then grow away from the text instead of towards - it, avoiding certain visual issues. This option lets you override this - behavior, however.

- example: |- -
#set enum(number-align: start)
-
-        Here are some powers of two:
-        1. One
-        2. Two
-        4. Four
-        8. Eight
-        16. Sixteen
-        32. Thirty two
-        
Preview
- types: - - alignment - strings: [] - default: end - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details: |- -

The numbered list's items.

-

When using the enum syntax, adjacent items are automatically collected - into enumerations, even through constructs like for loops.

- example: |- -
#for phase in (
-           "Launch",
-           "Orbit",
-           "Descent",
-        ) [+ #phase]
-        
Preview
- types: - - content - - array - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: - - path: - - enum - - item - display: Numbered List Item - keywords: null - oneliner: An enumeration item. - element: true - details:

An enumeration item.

- params: - - name: number - details:

The item's number.

- example: null - types: - - none - - integer - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - - name: body - details:

The item's body.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/enum/ +title: Numbered List +description: Documentation for the `enum` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-tight + name: tight + children: [] + - id: parameters-numbering + name: numbering + children: [] + - id: parameters-start + name: start + children: [] + - id: parameters-full + name: full + children: [] + - id: parameters-indent + name: indent + children: [] + - id: parameters-body-indent + name: body-indent + children: [] + - id: parameters-spacing + name: spacing + children: [] + - id: parameters-number-align + name: number-align + children: [] + - id: parameters-children + name: children + children: [] +- id: enum-item + name: Numbered List Item + children: + - id: enum-item-parameters + name: Parameters + children: + - id: enum-item-parameters-number + name: number + children: [] + - id: enum-item-parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - enum + display: Numbered List + keywords: null + oneliner: A numbered list. + element: true + details: |- +

A numbered list.

+

Displays a sequence of items vertically and numbers them consecutively.

+

Example

+
Automatically numbered:
+      + Preparations
+      + Analysis
+      + Conclusions
+
+      Manually numbered:
+      2. What is the first step?
+      5. I am confused.
+      +  Moving on ...
+
+      Function call.
+      #enum[First][Second]
+      
Preview
+

You can easily switch all your enumerations to a different numbering style + with a set rule.

+
#set enum(numbering: "a)")
+
+      + Starting off ...
+      + Don't forget step two
+      
Preview
+

You can also use enum.item to programmatically + customize the number of each item in the enumeration:

+
#enum(
+        enum.item(1)[First step],
+        enum.item(5)[Fifth step],
+        enum.item(10)[Tenth step]
+      )
+      
Preview
+

Syntax

+

This functions also has dedicated syntax:

+
    +
  • Starting a line with a plus sign creates an automatically numbered + enumeration item.
  • +
  • Starting a line with a number followed by a dot creates an explicitly + numbered enumeration item.
  • +
+

Enumeration items can contain multiple paragraphs and other block-level + content. All content that is indented more than an item's plus sign or dot + becomes part of that item.

+ params: + - name: tight + details: |- +

If this is false, the items are spaced apart with + enum spacing. If it is true, they use normal + leading instead. This makes the enumeration more + compact, which can look better if the items are short.

+

In markup mode, the value of this parameter is determined based on + whether items are separated with a blank line. If items directly follow + each other, this is set to true; if items are separated by a blank + line, this is set to false.

+ example: |- +
+ If an enum has a lot of text, and
+          maybe other inline content, it
+          should not be tight anymore.
+
+        + To make an enum wide, simply
+          insert a blank line between the
+          items.
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: numbering + details: |- +

How to number the enumeration. Accepts a + numbering pattern or function.

+

If the numbering pattern contains multiple counting symbols, they apply + to nested enums. If given a function, the function receives one argument + if full is false and multiple arguments if full is true.

+ example: |- +
#set enum(numbering: "1.a)")
+        + Different
+        + Numbering
+          + Nested
+          + Items
+        + Style
+
+        #set enum(numbering: n => super[#n])
+        + Superscript
+        + Numbering!
+        
Preview
+ types: + - string + - function + strings: [] + default: "1." + positional: false + named: true + required: false + variadic: false + settable: true + - name: start + details:

Which number to start the enumeration with.

+ example: |- +
#enum(
+          start: 3,
+          [Skipping],
+          [Ahead],
+        )
+        
Preview
+ types: + - integer + strings: [] + default: 1 + positional: false + named: true + required: false + variadic: false + settable: true + - name: full + details: |- +

Whether to display the full numbering, including the numbers of + all parent enumerations.

+ example: |- +
#set enum(numbering: "1.a)", full: true)
+        + Cook
+          + Heat water
+          + Add integredients
+        + Eat
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: indent + details:

The indentation of each item.

+ example: null + types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body-indent + details:

The space between the numbering and the body of each item.

+ example: null + types: + - length + strings: [] + default: 0.5em + positional: false + named: true + required: false + variadic: false + settable: true + - name: spacing + details: |- +

The spacing between the items of a wide (non-tight) enumeration.

+

If set to auto, uses the spacing below blocks.

+ example: null + types: + - auto + - relative length + - fraction + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: number-align + details: |- +

The horizontal alignment that enum numbers should have.

+

By default, this is set to end, which aligns enum numbers + towards end of the current text direction (in left-to-right script, + for example, this is the same as right). The choice of end + for horizontal alignment of enum numbers is usually preferred over + start, as numbers then grow away from the text instead of towards + it, avoiding certain visual issues. This option lets you override this + behavior, however.

+ example: |- +
#set enum(number-align: start)
+
+        Here are some powers of two:
+        1. One
+        2. Two
+        4. Four
+        8. Eight
+        16. Sixteen
+        32. Thirty two
+        
Preview
+ types: + - alignment + strings: [] + default: end + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details: |- +

The numbered list's items.

+

When using the enum syntax, adjacent items are automatically collected + into enumerations, even through constructs like for loops.

+ example: |- +
#for phase in (
+           "Launch",
+           "Orbit",
+           "Descent",
+        ) [+ #phase]
+        
Preview
+ types: + - content + - array + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: + - path: + - enum + - item + display: Numbered List Item + keywords: null + oneliner: An enumeration item. + element: true + details:

An enumeration item.

+ params: + - name: number + details:

The item's number.

+ example: null + types: + - none + - integer + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + - name: body + details:

The item's body.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/grid-en.yaml b/docs/i18n/layout/grid-en.yaml index 01fcab9cb363..885c6ffd9337 100644 --- a/docs/i18n/layout/grid-en.yaml +++ b/docs/i18n/layout/grid-en.yaml @@ -1,207 +1,207 @@ -route: /docs/reference/layout/grid/ -title: Grid -description: Documentation for the `grid` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-columns - name: columns - children: [] - - id: parameters-rows - name: rows - children: [] - - id: parameters-gutter - name: gutter - children: [] - - id: parameters-column-gutter - name: column-gutter - children: [] - - id: parameters-row-gutter - name: row-gutter - children: [] - - id: parameters-children - name: children - children: [] -body: - kind: func - content: - path: - - grid - display: Grid - keywords: null - oneliner: Arranges content in a grid. - element: true - details: |- -

Arranges content in a grid.

-

The grid element allows you to arrange content in a grid. You can define the - number of rows and columns, as well as the size of the gutters between them. - There are multiple sizing modes for columns and rows that can be used to - create complex layouts.

-

The sizing of the grid is determined by the track sizes specified in the - arguments. Because each of the sizing parameters accepts the same values, we - will explain them just once, here. Each sizing argument accepts an array of - individual track sizes. A track size is either:

-
    -
  • -

    auto: The track will be sized to fit its contents. It will be at most - as large as the remaining space. If there is more than one auto track - which, and together they claim more than the available space, the auto - tracks will fairly distribute the available space among themselves.

    -
  • -
  • -

    A fixed or relative length (e.g. 10pt or 20% - 1cm): The track - will be exactly of this size.

    -
  • -
  • -

    A fractional length (e.g. 1fr): Once all other tracks have been sized, - the remaining space will be divided among the fractional tracks according - to their fractions. For example, if there are two fractional tracks, each - with a fraction of 1fr, they will each take up half of the remaining - space.

    -
  • -
-

To specify a single track, the array can be omitted in favor of a single - value. To specify multiple auto tracks, enter the number of tracks - instead of an array. For example, columns: 3 is equivalent to - columns: (auto, auto, auto).

-

Example

-
#set text(10pt, style: "italic")
-      #let cell = rect.with(
-        inset: 8pt,
-        fill: rgb("e4e5ea"),
-        width: 100%,
-        radius: 6pt
-      )
-      #grid(
-        columns: (60pt, 1fr, 60pt),
-        rows: (60pt, auto),
-        gutter: 3pt,
-        cell(height: 100%)[Easy to learn],
-        cell(height: 100%)[Great output],
-        cell(height: 100%)[Intuitive],
-        cell[Our best Typst yet],
-        cell[
-          Responsive design in print
-          for everyone
-        ],
-        cell[One more thing...],
-      )
-      
Preview
- params: - - name: columns - details: |- -

The column sizes.

-

Either specify a track size array or provide an integer to create a grid - with that many auto-sized columns. Note that opposed to rows and - gutters, providing a single track size will only ever create a single - column.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: rows - details: |- -

The row sizes.

-

If there are more cells than fit the defined rows, the last row is - repeated until there are no more cells.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: gutter - details: |- -

The gaps between rows & columns.

-

If there are more gutters than defined sizes, the last gutter is repeated.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: column-gutter - details:

The gaps between columns. Takes precedence over gutter.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: row-gutter - details:

The gaps between rows. Takes precedence over gutter.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details: |- -

The contents of the grid cells.

-

The cells are populated in row-major order.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/grid/ +title: Grid +description: Documentation for the `grid` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-columns + name: columns + children: [] + - id: parameters-rows + name: rows + children: [] + - id: parameters-gutter + name: gutter + children: [] + - id: parameters-column-gutter + name: column-gutter + children: [] + - id: parameters-row-gutter + name: row-gutter + children: [] + - id: parameters-children + name: children + children: [] +body: + kind: func + content: + path: + - grid + display: Grid + keywords: null + oneliner: Arranges content in a grid. + element: true + details: |- +

Arranges content in a grid.

+

The grid element allows you to arrange content in a grid. You can define the + number of rows and columns, as well as the size of the gutters between them. + There are multiple sizing modes for columns and rows that can be used to + create complex layouts.

+

The sizing of the grid is determined by the track sizes specified in the + arguments. Because each of the sizing parameters accepts the same values, we + will explain them just once, here. Each sizing argument accepts an array of + individual track sizes. A track size is either:

+
    +
  • +

    auto: The track will be sized to fit its contents. It will be at most + as large as the remaining space. If there is more than one auto track + which, and together they claim more than the available space, the auto + tracks will fairly distribute the available space among themselves.

    +
  • +
  • +

    A fixed or relative length (e.g. 10pt or 20% - 1cm): The track + will be exactly of this size.

    +
  • +
  • +

    A fractional length (e.g. 1fr): Once all other tracks have been sized, + the remaining space will be divided among the fractional tracks according + to their fractions. For example, if there are two fractional tracks, each + with a fraction of 1fr, they will each take up half of the remaining + space.

    +
  • +
+

To specify a single track, the array can be omitted in favor of a single + value. To specify multiple auto tracks, enter the number of tracks + instead of an array. For example, columns: 3 is equivalent to + columns: (auto, auto, auto).

+

Example

+
#set text(10pt, style: "italic")
+      #let cell = rect.with(
+        inset: 8pt,
+        fill: rgb("e4e5ea"),
+        width: 100%,
+        radius: 6pt
+      )
+      #grid(
+        columns: (60pt, 1fr, 60pt),
+        rows: (60pt, auto),
+        gutter: 3pt,
+        cell(height: 100%)[Easy to learn],
+        cell(height: 100%)[Great output],
+        cell(height: 100%)[Intuitive],
+        cell[Our best Typst yet],
+        cell[
+          Responsive design in print
+          for everyone
+        ],
+        cell[One more thing...],
+      )
+      
Preview
+ params: + - name: columns + details: |- +

The column sizes.

+

Either specify a track size array or provide an integer to create a grid + with that many auto-sized columns. Note that opposed to rows and + gutters, providing a single track size will only ever create a single + column.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: rows + details: |- +

The row sizes.

+

If there are more cells than fit the defined rows, the last row is + repeated until there are no more cells.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: gutter + details: |- +

The gaps between rows & columns.

+

If there are more gutters than defined sizes, the last gutter is repeated.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: column-gutter + details:

The gaps between columns. Takes precedence over gutter.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: row-gutter + details:

The gaps between rows. Takes precedence over gutter.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details: |- +

The contents of the grid cells.

+

The cells are populated in row-major order.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/h-en.yaml b/docs/i18n/layout/h-en.yaml index a7d2e2ea0dee..47e7b1af95d9 100644 --- a/docs/i18n/layout/h-en.yaml +++ b/docs/i18n/layout/h-en.yaml @@ -1,88 +1,88 @@ -route: /docs/reference/layout/h/ -title: Spacing (H) -description: Documentation for the `h` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: math-spacing - name: Math Spacing - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-amount - name: amount - children: [] - - id: parameters-weak - name: weak - children: [] -body: - kind: func - content: - path: - - h - display: Spacing (H) - keywords: null - oneliner: Inserts horizontal spacing into a paragraph. - element: true - details: |- -

Inserts horizontal spacing into a paragraph.

-

The spacing can be absolute, relative, or fractional. In the last case, the - remaining space on the line is distributed among all fractional spacings - according to their relative fractions.

-

Example

-
First #h(1cm) Second \
-      First #h(30%) Second \
-      First #h(2fr) Second #h(1fr) Third
-      
Preview
-

Mathematical Spacing

-

In mathematical formulas, you can additionally use these - constants to add spacing between elements: thin, med, thick, quad.

- params: - - name: amount - details:

How much spacing to insert.

- example: null - types: - - relative length - - fraction - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: weak - details: |- -

If true, the spacing collapses at the start or end of a paragraph. - Moreover, from multiple adjacent weak spacings all but the largest one - collapse.

- example: |- -
#h(1cm, weak: true)
-        We identified a group of
-        _weak_ specimens that fail to
-        manifest in most cases. However,
-        when #h(8pt, weak: true)
-        supported
-        #h(8pt, weak: true) on both
-        sides, they do show up.
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/h/ +title: Spacing (H) +description: Documentation for the `h` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: math-spacing + name: Math Spacing + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-amount + name: amount + children: [] + - id: parameters-weak + name: weak + children: [] +body: + kind: func + content: + path: + - h + display: Spacing (H) + keywords: null + oneliner: Inserts horizontal spacing into a paragraph. + element: true + details: |- +

Inserts horizontal spacing into a paragraph.

+

The spacing can be absolute, relative, or fractional. In the last case, the + remaining space on the line is distributed among all fractional spacings + according to their relative fractions.

+

Example

+
First #h(1cm) Second \
+      First #h(30%) Second \
+      First #h(2fr) Second #h(1fr) Third
+      
Preview
+

Mathematical Spacing

+

In mathematical formulas, you can additionally use these + constants to add spacing between elements: thin, med, thick, quad.

+ params: + - name: amount + details:

How much spacing to insert.

+ example: null + types: + - relative length + - fraction + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: weak + details: |- +

If true, the spacing collapses at the start or end of a paragraph. + Moreover, from multiple adjacent weak spacings all but the largest one + collapse.

+ example: |- +
#h(1cm, weak: true)
+        We identified a group of
+        _weak_ specimens that fail to
+        manifest in most cases. However,
+        when #h(8pt, weak: true)
+        supported
+        #h(8pt, weak: true) on both
+        sides, they do show up.
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/hide-en.yaml b/docs/i18n/layout/hide-en.yaml index a3f41368e6f7..48e8bb838c9a 100644 --- a/docs/i18n/layout/hide-en.yaml +++ b/docs/i18n/layout/hide-en.yaml @@ -1,54 +1,54 @@ -route: /docs/reference/layout/hide/ -title: Hide -description: Documentation for the `hide` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - hide - display: Hide - keywords: null - oneliner: Hides content without affecting layout. - element: true - details: |- -

Hides content without affecting layout.

-

The hide function allows you to hide content while the layout still 'sees' - it. This is useful to create whitespace that is exactly as large as some - content. It may also be useful to redact content because its arguments are - not included in the output.

-

Example

-
Hello Jane \
-      #hide[Hello] Joe
-      
Preview
- params: - - name: body - details:

The content to hide.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/hide/ +title: Hide +description: Documentation for the `hide` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - hide + display: Hide + keywords: null + oneliner: Hides content without affecting layout. + element: true + details: |- +

Hides content without affecting layout.

+

The hide function allows you to hide content while the layout still 'sees' + it. This is useful to create whitespace that is exactly as large as some + content. It may also be useful to redact content because its arguments are + not included in the output.

+

Example

+
Hello Jane \
+      #hide[Hello] Joe
+      
Preview
+ params: + - name: body + details:

The content to hide.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/list-en.yaml b/docs/i18n/layout/list-en.yaml index 76ad3502103a..129f3923db0e 100644 --- a/docs/i18n/layout/list-en.yaml +++ b/docs/i18n/layout/list-en.yaml @@ -1,226 +1,226 @@ -route: /docs/reference/layout/list/ -title: Bullet List -description: Documentation for the `list` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-tight - name: tight - children: [] - - id: parameters-marker - name: marker - children: [] - - id: parameters-indent - name: indent - children: [] - - id: parameters-body-indent - name: body-indent - children: [] - - id: parameters-spacing - name: spacing - children: [] - - id: parameters-children - name: children - children: [] -- id: list-item - name: Bullet List Item - children: - - id: list-item-parameters - name: Parameters - children: - - id: list-item-parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - list - display: Bullet List - keywords: null - oneliner: A bullet list. - element: true - details: |- -

A bullet list.

-

Displays a sequence of items vertically, with each item introduced by a - marker.

-

Example

-
- *Content*
-        - Text
-        - Math
-        - Layout
-        - Visualize
-        - Meta
-        - Symbols
-
-      - *Compute*
-        #list(
-          [Foundations],
-          [Calculate],
-          [Construct],
-          [Data Loading],
-        )
-      
Preview
-

Syntax

-

This functions also has dedicated syntax: Start a line with a hyphen, - followed by a space to create a list item. A list item can contain multiple - paragraphs and other block-level content. All content that is indented - more than an item's hyphen becomes part of that item.

- params: - - name: tight - details: |- -

If this is false, the items are spaced apart with list - spacing. If it is true, they use normal - leading instead. This makes the list more compact, - which can look better if the items are short.

-

In markup mode, the value of this parameter is determined based on - whether items are separated with a blank line. If items directly follow - each other, this is set to true; if items are separated by a blank - line, this is set to false.

- example: |- -
- If a list has a lot of text, and
-          maybe other inline content, it
-          should not be tight anymore.
-
-        - To make a list wide, simply insert
-          a blank line between the items.
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: marker - details: |- -

The marker which introduces each item.

-

Instead of plain content, you can also pass an array with multiple - markers that should be used for nested lists. If the list nesting depth - exceeds the number of markers, the last one is repeated. For total - control, you may pass a function that maps the list's nesting depth - (starting from 0) to a desired marker.

- example: |- -
#set list(marker: [--])
-        - A more classic list
-        - With en-dashes
-
-        #set list(marker: ([], [--]))
-        - Top-level
-          - Nested
-          - Items
-        - Items
-        
Preview
- types: - - content - - array - - function - strings: [] - default: [] - positional: false - named: true - required: false - variadic: false - settable: true - - name: indent - details:

The indent of each item.

- example: null - types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body-indent - details:

The spacing between the marker and the body of each item.

- example: null - types: - - length - strings: [] - default: 0.5em - positional: false - named: true - required: false - variadic: false - settable: true - - name: spacing - details: |- -

The spacing between the items of a wide (non-tight) list.

-

If set to auto, uses the spacing below blocks.

- example: null - types: - - auto - - relative length - - fraction - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details: |- -

The bullet list's children.

-

When using the list syntax, adjacent items are automatically collected - into lists, even through constructs like for loops.

- example: |- -
#for letter in "ABC" [
-          - Letter #letter
-        ]
-        
Preview
- types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: - - path: - - list - - item - display: Bullet List Item - keywords: null - oneliner: A bullet list item. - element: true - details:

A bullet list item.

- params: - - name: body - details:

The item's body.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/list/ +title: Bullet List +description: Documentation for the `list` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-tight + name: tight + children: [] + - id: parameters-marker + name: marker + children: [] + - id: parameters-indent + name: indent + children: [] + - id: parameters-body-indent + name: body-indent + children: [] + - id: parameters-spacing + name: spacing + children: [] + - id: parameters-children + name: children + children: [] +- id: list-item + name: Bullet List Item + children: + - id: list-item-parameters + name: Parameters + children: + - id: list-item-parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - list + display: Bullet List + keywords: null + oneliner: A bullet list. + element: true + details: |- +

A bullet list.

+

Displays a sequence of items vertically, with each item introduced by a + marker.

+

Example

+
- *Content*
+        - Text
+        - Math
+        - Layout
+        - Visualize
+        - Meta
+        - Symbols
+
+      - *Compute*
+        #list(
+          [Foundations],
+          [Calculate],
+          [Construct],
+          [Data Loading],
+        )
+      
Preview
+

Syntax

+

This functions also has dedicated syntax: Start a line with a hyphen, + followed by a space to create a list item. A list item can contain multiple + paragraphs and other block-level content. All content that is indented + more than an item's hyphen becomes part of that item.

+ params: + - name: tight + details: |- +

If this is false, the items are spaced apart with list + spacing. If it is true, they use normal + leading instead. This makes the list more compact, + which can look better if the items are short.

+

In markup mode, the value of this parameter is determined based on + whether items are separated with a blank line. If items directly follow + each other, this is set to true; if items are separated by a blank + line, this is set to false.

+ example: |- +
- If a list has a lot of text, and
+          maybe other inline content, it
+          should not be tight anymore.
+
+        - To make a list wide, simply insert
+          a blank line between the items.
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: marker + details: |- +

The marker which introduces each item.

+

Instead of plain content, you can also pass an array with multiple + markers that should be used for nested lists. If the list nesting depth + exceeds the number of markers, the last one is repeated. For total + control, you may pass a function that maps the list's nesting depth + (starting from 0) to a desired marker.

+ example: |- +
#set list(marker: [--])
+        - A more classic list
+        - With en-dashes
+
+        #set list(marker: ([], [--]))
+        - Top-level
+          - Nested
+          - Items
+        - Items
+        
Preview
+ types: + - content + - array + - function + strings: [] + default: [] + positional: false + named: true + required: false + variadic: false + settable: true + - name: indent + details:

The indent of each item.

+ example: null + types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body-indent + details:

The spacing between the marker and the body of each item.

+ example: null + types: + - length + strings: [] + default: 0.5em + positional: false + named: true + required: false + variadic: false + settable: true + - name: spacing + details: |- +

The spacing between the items of a wide (non-tight) list.

+

If set to auto, uses the spacing below blocks.

+ example: null + types: + - auto + - relative length + - fraction + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details: |- +

The bullet list's children.

+

When using the list syntax, adjacent items are automatically collected + into lists, even through constructs like for loops.

+ example: |- +
#for letter in "ABC" [
+          - Letter #letter
+        ]
+        
Preview
+ types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: + - path: + - list + - item + display: Bullet List Item + keywords: null + oneliner: A bullet list item. + element: true + details:

A bullet list item.

+ params: + - name: body + details:

The item's body.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/measure-en.yaml b/docs/i18n/layout/measure-en.yaml index ecc5546d4486..4585c184e308 100644 --- a/docs/i18n/layout/measure-en.yaml +++ b/docs/i18n/layout/measure-en.yaml @@ -1,85 +1,85 @@ -route: /docs/reference/layout/measure/ -title: Measure -description: Documentation for the `measure` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-content - name: content - children: [] - - id: parameters-styles - name: styles - children: [] -body: - kind: func - content: - path: - - measure - display: Measure - keywords: null - oneliner: Measures the layouted size of content. - element: false - details: |- -

Measures the layouted size of content.

-

The measure function lets you determine the layouted size of content. - Note that an infinite space is assumed, therefore the measured height/width - may not necessarily match the final height/width of the measured content. - If you want to measure in the current layout dimensions, you can combined - measure and layout.

-

Example

-

The same content can have a different size depending on the styles that - are active when it is layouted. For example, in the example below - #content is of course bigger when we increase the font size.

-
#let content = [Hello!]
-      #content
-      #set text(14pt)
-      #content
-      
Preview
-

To do a meaningful measurement, you therefore first need to retrieve the - active styles with the style function. You can then pass - them to the measure function.

-
#let thing(body) = style(styles => {
-        let size = measure(body, styles)
-        [Width of "#body" is #size.width]
-      })
-
-      #thing[Hey] \
-      #thing[Welcome]
-      
Preview
-

The measure function returns a dictionary with the entries width and - height, both of type length.

- params: - - name: content - details:

The content whose size to measure.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: styles - details:

The styles with which to layout the content.

- example: null - types: - - styles - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - dictionary - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/measure/ +title: Measure +description: Documentation for the `measure` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-content + name: content + children: [] + - id: parameters-styles + name: styles + children: [] +body: + kind: func + content: + path: + - measure + display: Measure + keywords: null + oneliner: Measures the layouted size of content. + element: false + details: |- +

Measures the layouted size of content.

+

The measure function lets you determine the layouted size of content. + Note that an infinite space is assumed, therefore the measured height/width + may not necessarily match the final height/width of the measured content. + If you want to measure in the current layout dimensions, you can combined + measure and layout.

+

Example

+

The same content can have a different size depending on the styles that + are active when it is layouted. For example, in the example below + #content is of course bigger when we increase the font size.

+
#let content = [Hello!]
+      #content
+      #set text(14pt)
+      #content
+      
Preview
+

To do a meaningful measurement, you therefore first need to retrieve the + active styles with the style function. You can then pass + them to the measure function.

+
#let thing(body) = style(styles => {
+        let size = measure(body, styles)
+        [Width of "#body" is #size.width]
+      })
+
+      #thing[Hey] \
+      #thing[Welcome]
+      
Preview
+

The measure function returns a dictionary with the entries width and + height, both of type length.

+ params: + - name: content + details:

The content whose size to measure.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: styles + details:

The styles with which to layout the content.

+ example: null + types: + - styles + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - dictionary + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/move-en.yaml b/docs/i18n/layout/move-en.yaml index da71b60d1444..cd68ca3e488e 100644 --- a/docs/i18n/layout/move-en.yaml +++ b/docs/i18n/layout/move-en.yaml @@ -1,90 +1,90 @@ -route: /docs/reference/layout/move/ -title: Move -description: Documentation for the `move` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-dx - name: dx - children: [] - - id: parameters-dy - name: dy - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - move - display: Move - keywords: null - oneliner: Moves content without affecting layout. - element: true - details: |- -

Moves content without affecting layout.

-

The move function allows you to move content while the layout still 'sees' - it at the original positions. Containers will still be sized as if the - content was not moved.

-

Example

-
#rect(inset: 0pt, move(
-        dx: 6pt, dy: 6pt,
-        rect(
-          inset: 8pt,
-          fill: white,
-          stroke: black,
-          [Abra cadabra]
-        )
-      ))
-      
Preview
- params: - - name: dx - details:

The horizontal displacement of the content.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: dy - details:

The vertical displacement of the content.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to move.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/move/ +title: Move +description: Documentation for the `move` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-dx + name: dx + children: [] + - id: parameters-dy + name: dy + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - move + display: Move + keywords: null + oneliner: Moves content without affecting layout. + element: true + details: |- +

Moves content without affecting layout.

+

The move function allows you to move content while the layout still 'sees' + it at the original positions. Containers will still be sized as if the + content was not moved.

+

Example

+
#rect(inset: 0pt, move(
+        dx: 6pt, dy: 6pt,
+        rect(
+          inset: 8pt,
+          fill: white,
+          stroke: black,
+          [Abra cadabra]
+        )
+      ))
+      
Preview
+ params: + - name: dx + details:

The horizontal displacement of the content.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: dy + details:

The vertical displacement of the content.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to move.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/pad-en.yaml b/docs/i18n/layout/pad-en.yaml index e25f4ca16370..9fc052a71c16 100644 --- a/docs/i18n/layout/pad-en.yaml +++ b/docs/i18n/layout/pad-en.yaml @@ -1,165 +1,165 @@ -route: /docs/reference/layout/pad/ -title: Padding -description: Documentation for the `pad` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-left - name: left - children: [] - - id: parameters-top - name: top - children: [] - - id: parameters-right - name: right - children: [] - - id: parameters-bottom - name: bottom - children: [] - - id: parameters-x - name: x - children: [] - - id: parameters-y - name: y - children: [] - - id: parameters-rest - name: rest - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - pad - display: Padding - keywords: null - oneliner: Adds spacing around content. - element: true - details: |- -

Adds spacing around content.

-

The spacing can be specified for each side individually, or for all sides at - once by specifying a positional argument.

-

Example

-
#set align(center)
-
-      #pad(x: 16pt, image("typing.jpg"))
-      _Typing speeds can be
-       measured in words per minute._
-      
Preview
- params: - - name: left - details:

The padding at the left side.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: top - details:

The padding at the top side.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: right - details:

The padding at the right side.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: bottom - details:

The padding at the bottom side.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: x - details: |- -

The horizontal padding. Both left and right take precedence over - this.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: y - details:

The vertical padding. Both top and bottom - take precedence over this.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: rest - details: |- -

The padding for all sides. All other parameters take precedence over - this.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to pad at the sides.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/pad/ +title: Padding +description: Documentation for the `pad` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-left + name: left + children: [] + - id: parameters-top + name: top + children: [] + - id: parameters-right + name: right + children: [] + - id: parameters-bottom + name: bottom + children: [] + - id: parameters-x + name: x + children: [] + - id: parameters-y + name: y + children: [] + - id: parameters-rest + name: rest + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - pad + display: Padding + keywords: null + oneliner: Adds spacing around content. + element: true + details: |- +

Adds spacing around content.

+

The spacing can be specified for each side individually, or for all sides at + once by specifying a positional argument.

+

Example

+
#set align(center)
+
+      #pad(x: 16pt, image("typing.jpg"))
+      _Typing speeds can be
+       measured in words per minute._
+      
Preview
+ params: + - name: left + details:

The padding at the left side.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: top + details:

The padding at the top side.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: right + details:

The padding at the right side.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: bottom + details:

The padding at the bottom side.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: x + details: |- +

The horizontal padding. Both left and right take precedence over + this.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: y + details:

The vertical padding. Both top and bottom + take precedence over this.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: rest + details: |- +

The padding for all sides. All other parameters take precedence over + this.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to pad at the sides.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/page-en.yaml b/docs/i18n/layout/page-en.yaml index 8bd16a0d1b6a..90b62e572e6b 100644 --- a/docs/i18n/layout/page-en.yaml +++ b/docs/i18n/layout/page-en.yaml @@ -1,693 +1,693 @@ -route: /docs/reference/layout/page/ -title: Page -description: Documentation for the `page` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-paper - name: paper - children: [] - - id: parameters-width - name: width - children: [] - - id: parameters-height - name: height - children: [] - - id: parameters-flipped - name: flipped - children: [] - - id: parameters-margin - name: margin - children: [] - - id: parameters-binding - name: binding - children: [] - - id: parameters-columns - name: columns - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-numbering - name: numbering - children: [] - - id: parameters-number-align - name: number-align - children: [] - - id: parameters-header - name: header - children: [] - - id: parameters-header-ascent - name: header-ascent - children: [] - - id: parameters-footer - name: footer - children: [] - - id: parameters-footer-descent - name: footer-descent - children: [] - - id: parameters-background - name: background - children: [] - - id: parameters-foreground - name: foreground - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - page - display: Page - keywords: null - oneliner: Layouts its child onto one or multiple pages. - element: true - details: |- -

Layouts its child onto one or multiple pages.

-

Although this function is primarily used in set rules to affect page - properties, it can also be used to explicitly render its argument onto - a set of pages of its own.

-

Pages can be set to use auto as their width or height. In this case, - the pages will grow to fit their content on the respective axis.

-

Example

-
#set page("us-letter")
-
-      There you go, US friends!
-      
Preview
- params: - - name: paper - details:

A standard paper size to set width and height.

- example: null - types: - - string - strings: - - string: a0 - details:

Produces a paper of the respective size.

- - string: a1 - details:

Produces a paper of the respective size.

- - string: a2 - details:

Produces a paper of the respective size.

- - string: a3 - details:

Produces a paper of the respective size.

- - string: a4 - details:

Produces a paper of the respective size.

- - string: a5 - details:

Produces a paper of the respective size.

- - string: a6 - details:

Produces a paper of the respective size.

- - string: a7 - details:

Produces a paper of the respective size.

- - string: a8 - details:

Produces a paper of the respective size.

- - string: a9 - details:

Produces a paper of the respective size.

- - string: a10 - details:

Produces a paper of the respective size.

- - string: a11 - details:

Produces a paper of the respective size.

- - string: iso-b1 - details:

Produces a paper of the respective size.

- - string: iso-b2 - details:

Produces a paper of the respective size.

- - string: iso-b3 - details:

Produces a paper of the respective size.

- - string: iso-b4 - details:

Produces a paper of the respective size.

- - string: iso-b5 - details:

Produces a paper of the respective size.

- - string: iso-b6 - details:

Produces a paper of the respective size.

- - string: iso-b7 - details:

Produces a paper of the respective size.

- - string: iso-b8 - details:

Produces a paper of the respective size.

- - string: iso-c3 - details:

Produces a paper of the respective size.

- - string: iso-c4 - details:

Produces a paper of the respective size.

- - string: iso-c5 - details:

Produces a paper of the respective size.

- - string: iso-c6 - details:

Produces a paper of the respective size.

- - string: iso-c7 - details:

Produces a paper of the respective size.

- - string: iso-c8 - details:

Produces a paper of the respective size.

- - string: din-d3 - details:

Produces a paper of the respective size.

- - string: din-d4 - details:

Produces a paper of the respective size.

- - string: din-d5 - details:

Produces a paper of the respective size.

- - string: din-d6 - details:

Produces a paper of the respective size.

- - string: din-d7 - details:

Produces a paper of the respective size.

- - string: din-d8 - details:

Produces a paper of the respective size.

- - string: sis-g5 - details:

Produces a paper of the respective size.

- - string: sis-e5 - details:

Produces a paper of the respective size.

- - string: ansi-a - details:

Produces a paper of the respective size.

- - string: ansi-b - details:

Produces a paper of the respective size.

- - string: ansi-c - details:

Produces a paper of the respective size.

- - string: ansi-d - details:

Produces a paper of the respective size.

- - string: ansi-e - details:

Produces a paper of the respective size.

- - string: arch-a - details:

Produces a paper of the respective size.

- - string: arch-b - details:

Produces a paper of the respective size.

- - string: arch-c - details:

Produces a paper of the respective size.

- - string: arch-d - details:

Produces a paper of the respective size.

- - string: arch-e1 - details:

Produces a paper of the respective size.

- - string: arch-e - details:

Produces a paper of the respective size.

- - string: jis-b0 - details:

Produces a paper of the respective size.

- - string: jis-b1 - details:

Produces a paper of the respective size.

- - string: jis-b2 - details:

Produces a paper of the respective size.

- - string: jis-b3 - details:

Produces a paper of the respective size.

- - string: jis-b4 - details:

Produces a paper of the respective size.

- - string: jis-b5 - details:

Produces a paper of the respective size.

- - string: jis-b6 - details:

Produces a paper of the respective size.

- - string: jis-b7 - details:

Produces a paper of the respective size.

- - string: jis-b8 - details:

Produces a paper of the respective size.

- - string: jis-b9 - details:

Produces a paper of the respective size.

- - string: jis-b10 - details:

Produces a paper of the respective size.

- - string: jis-b11 - details:

Produces a paper of the respective size.

- - string: sac-d0 - details:

Produces a paper of the respective size.

- - string: sac-d1 - details:

Produces a paper of the respective size.

- - string: sac-d2 - details:

Produces a paper of the respective size.

- - string: sac-d3 - details:

Produces a paper of the respective size.

- - string: sac-d4 - details:

Produces a paper of the respective size.

- - string: sac-d5 - details:

Produces a paper of the respective size.

- - string: sac-d6 - details:

Produces a paper of the respective size.

- - string: iso-id-1 - details:

Produces a paper of the respective size.

- - string: iso-id-2 - details:

Produces a paper of the respective size.

- - string: iso-id-3 - details:

Produces a paper of the respective size.

- - string: asia-f4 - details:

Produces a paper of the respective size.

- - string: jp-shiroku-ban-4 - details:

Produces a paper of the respective size.

- - string: jp-shiroku-ban-5 - details:

Produces a paper of the respective size.

- - string: jp-shiroku-ban-6 - details:

Produces a paper of the respective size.

- - string: jp-kiku-4 - details:

Produces a paper of the respective size.

- - string: jp-kiku-5 - details:

Produces a paper of the respective size.

- - string: jp-business-card - details:

Produces a paper of the respective size.

- - string: cn-business-card - details:

Produces a paper of the respective size.

- - string: eu-business-card - details:

Produces a paper of the respective size.

- - string: fr-tellière - details:

Produces a paper of the respective size.

- - string: fr-couronne-écriture - details:

Produces a paper of the respective size.

- - string: fr-couronne-édition - details:

Produces a paper of the respective size.

- - string: fr-raisin - details:

Produces a paper of the respective size.

- - string: fr-carré - details:

Produces a paper of the respective size.

- - string: fr-jésus - details:

Produces a paper of the respective size.

- - string: uk-brief - details:

Produces a paper of the respective size.

- - string: uk-draft - details:

Produces a paper of the respective size.

- - string: uk-foolscap - details:

Produces a paper of the respective size.

- - string: uk-quarto - details:

Produces a paper of the respective size.

- - string: uk-crown - details:

Produces a paper of the respective size.

- - string: uk-book-a - details:

Produces a paper of the respective size.

- - string: uk-book-b - details:

Produces a paper of the respective size.

- - string: us-letter - details:

Produces a paper of the respective size.

- - string: us-legal - details:

Produces a paper of the respective size.

- - string: us-tabloid - details:

Produces a paper of the respective size.

- - string: us-executive - details:

Produces a paper of the respective size.

- - string: us-foolscap-folio - details:

Produces a paper of the respective size.

- - string: us-statement - details:

Produces a paper of the respective size.

- - string: us-ledger - details:

Produces a paper of the respective size.

- - string: us-oficio - details:

Produces a paper of the respective size.

- - string: us-gov-letter - details:

Produces a paper of the respective size.

- - string: us-gov-legal - details:

Produces a paper of the respective size.

- - string: us-business-card - details:

Produces a paper of the respective size.

- - string: us-digest - details:

Produces a paper of the respective size.

- - string: us-trade - details:

Produces a paper of the respective size.

- - string: newspaper-compact - details:

Produces a paper of the respective size.

- - string: newspaper-berliner - details:

Produces a paper of the respective size.

- - string: newspaper-broadsheet - details:

Produces a paper of the respective size.

- - string: presentation-16-9 - details:

Produces a paper of the respective size.

- - string: presentation-4-3 - details:

Produces a paper of the respective size.

- default: "a4" - positional: false - named: true - required: false - variadic: false - settable: true - - name: width - details:

The width of the page.

- example: |- -
#set page(
-          width: 3cm,
-          margin: (x: 0cm),
-        )
-
-        #for i in range(3) {
-          box(square(width: 1cm))
-        }
-        
Preview
- types: - - auto - - length - strings: [] - default: 595.28pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details: |- -

The height of the page.

-

If this is set to auto, page breaks can only be triggered manually - by inserting a page break. Most examples throughout - this documentation use auto for the height of the page to - dynamically grow and shrink to fit their content.

- example: null - types: - - auto - - length - strings: [] - default: 841.89pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: flipped - details:

Whether the page is flipped into landscape orientation.

- example: |- -
#set page(
-          "us-business-card",
-          flipped: true,
-          fill: rgb("f2e5dd"),
-        )
-
-        #set align(bottom + end)
-        #text(14pt)[*Sam H. Richards*] \
-        _Procurement Manager_
-
-        #set text(10pt)
-        17 Main Street \
-        New York, NY 10001 \
-        +1 555 555 5555
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: margin - details: |- -

The page's margins.

-
    -
  • A single length: The same margin on all sides.
  • -
  • auto: The margin is set to the default value for the page's size.
  • -
  • A dictionary: With a dictionary, the margins can be set individually. - The dictionary can contain the following keys in order of precedence: -
      -
    • top: The top margin.
    • -
    • right: The right margin.
    • -
    • bottom: The bottom margin.
    • -
    • left: The left margin.
    • -
    • inside: The margin at the inner side of the page (where the - binding is).
    • -
    • outside: The margin at the outer side of the page (opposite to the - binding).
    • -
    • x: The horizontal margins.
    • -
    • y: The vertical margins.
    • -
    • rest: The margins on all sides except those for which the - dictionary explicitly sets a size.
    • -
    -
  • -
-

The values for left and right are mutually exclusive with - the values for inside and outside.

- example: |- -
#set page(
-         width: 3cm,
-         height: 4cm,
-         margin: (x: 8pt, y: 4pt),
-        )
-
-        #rect(
-          width: 100%,
-          height: 100%,
-          fill: aqua,
-        )
-        
Preview
- types: - - auto - - relative length - - dictionary - strings: [] - default: (:) - positional: false - named: true - required: false - variadic: false - settable: true - - name: binding - details: |- -

On which side the pages will be bound.

-
    -
  • auto: Equivalent to left if the text direction - is left-to-right and right if it is right-to-left.
  • -
  • left: Bound on the left side.
  • -
  • right: Bound on the right side.
  • -
-

This affects the meaning of the inside and outside options for - margins.

- example: null - types: - - auto - - alignment - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: columns - details:

How many columns the page has.

- example: |- -
#set page(columns: 2, height: 4.8cm)
-        Climate change is one of the most
-        pressing issues of our time, with
-        the potential to devastate
-        communities, ecosystems, and
-        economies around the world. It's
-        clear that we need to take urgent
-        action to reduce our carbon
-        emissions and mitigate the impacts
-        of a rapidly changing climate.
-        
Preview
- types: - - integer - strings: [] - default: 1 - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

The page's background color.

-

This instructs the printer to color the complete page with the given - color. If you are considering larger production runs, it may be more - environmentally friendly and cost-effective to source pre-dyed pages and - not set this property.

- example: |- -
#set page(fill: rgb("444352"))
-        #set text(fill: rgb("fdfdfd"))
-        *Dark mode enabled.*
-        
Preview
- types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: numbering - details: |- -

How to number the pages.

-

If an explicit footer is given, the numbering is ignored.

- example: |- -
#set page(
-          height: 100pt,
-          margin: (top: 16pt, bottom: 24pt),
-          numbering: "1 / 1",
-        )
-
-        #lorem(48)
-        
Preview
- types: - - none - - string - - function - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: number-align - details:

The alignment of the page numbering.

- example: |- -
#set page(
-          margin: (top: 16pt, bottom: 24pt),
-          numbering: "1",
-          number-align: right,
-        )
-
-        #lorem(30)
-        
Preview
- types: - - alignment - - 2d alignment - strings: [] - default: center - positional: false - named: true - required: false - variadic: false - settable: true - - name: header - details:

The page's header. Fills the top margin of each page.

- example: |- -
#set par(justify: true)
-        #set page(
-          margin: (top: 32pt, bottom: 20pt),
-          header: [
-            #set text(8pt)
-            #smallcaps[Typst Academcy]
-            #h(1fr) _Exercise Sheet 3_
-          ],
-        )
-
-        #lorem(19)
-        
Preview
- types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: header-ascent - details:

The amount the header is raised into the top margin.

- example: null - types: - - relative length - strings: [] - default: 30% - positional: false - named: true - required: false - variadic: false - settable: true - - name: footer - details: |- -

The page's footer. Fills the bottom margin of each page.

-

For just a page number, the numbering property, typically suffices. If - you want to create a custom footer, but still display the page number, - you can directly access the page counter.

- example: |- -
#set par(justify: true)
-        #set page(
-          height: 100pt,
-          margin: 20pt,
-          footer: [
-            #set align(right)
-            #set text(8pt)
-            #counter(page).display(
-              "1 of I",
-              both: true,
-            )
-          ]
-        )
-
-        #lorem(48)
-        
Preview
- types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: footer-descent - details:

The amount the footer is lowered into the bottom margin.

- example: null - types: - - relative length - strings: [] - default: 30% - positional: false - named: true - required: false - variadic: false - settable: true - - name: background - details: |- -

Content in the page's background.

-

This content will be placed behind the page's body. It can be - used to place a background image or a watermark.

- example: |- -
#set page(background: rotate(24deg,
-          text(18pt, fill: rgb("FFCBC4"))[
-            *CONFIDENTIAL*
-          ]
-        ))
-
-        = Typst's secret plans
-        In the year 2023, we plan to take
-        over the world (of typesetting).
-        
Preview
- types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: foreground - details: |- -

Content in the page's foreground.

-

This content will overlay the page's body.

- example: |- -
#set page(foreground: text(24pt)[🥸])
-
-        Reviewer 2 has marked our paper
-        "Weak Reject" because they did
-        not understand our approach...
-        
Preview
- types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details: |- -

The contents of the page(s).

-

Multiple pages will be created if the content does not fit on a single - page. A new page with the page properties prior to the function invocation - will be created after the body has been typeset.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/page/ +title: Page +description: Documentation for the `page` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-paper + name: paper + children: [] + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-flipped + name: flipped + children: [] + - id: parameters-margin + name: margin + children: [] + - id: parameters-binding + name: binding + children: [] + - id: parameters-columns + name: columns + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-numbering + name: numbering + children: [] + - id: parameters-number-align + name: number-align + children: [] + - id: parameters-header + name: header + children: [] + - id: parameters-header-ascent + name: header-ascent + children: [] + - id: parameters-footer + name: footer + children: [] + - id: parameters-footer-descent + name: footer-descent + children: [] + - id: parameters-background + name: background + children: [] + - id: parameters-foreground + name: foreground + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - page + display: Page + keywords: null + oneliner: Layouts its child onto one or multiple pages. + element: true + details: |- +

Layouts its child onto one or multiple pages.

+

Although this function is primarily used in set rules to affect page + properties, it can also be used to explicitly render its argument onto + a set of pages of its own.

+

Pages can be set to use auto as their width or height. In this case, + the pages will grow to fit their content on the respective axis.

+

Example

+
#set page("us-letter")
+
+      There you go, US friends!
+      
Preview
+ params: + - name: paper + details:

A standard paper size to set width and height.

+ example: null + types: + - string + strings: + - string: a0 + details:

Produces a paper of the respective size.

+ - string: a1 + details:

Produces a paper of the respective size.

+ - string: a2 + details:

Produces a paper of the respective size.

+ - string: a3 + details:

Produces a paper of the respective size.

+ - string: a4 + details:

Produces a paper of the respective size.

+ - string: a5 + details:

Produces a paper of the respective size.

+ - string: a6 + details:

Produces a paper of the respective size.

+ - string: a7 + details:

Produces a paper of the respective size.

+ - string: a8 + details:

Produces a paper of the respective size.

+ - string: a9 + details:

Produces a paper of the respective size.

+ - string: a10 + details:

Produces a paper of the respective size.

+ - string: a11 + details:

Produces a paper of the respective size.

+ - string: iso-b1 + details:

Produces a paper of the respective size.

+ - string: iso-b2 + details:

Produces a paper of the respective size.

+ - string: iso-b3 + details:

Produces a paper of the respective size.

+ - string: iso-b4 + details:

Produces a paper of the respective size.

+ - string: iso-b5 + details:

Produces a paper of the respective size.

+ - string: iso-b6 + details:

Produces a paper of the respective size.

+ - string: iso-b7 + details:

Produces a paper of the respective size.

+ - string: iso-b8 + details:

Produces a paper of the respective size.

+ - string: iso-c3 + details:

Produces a paper of the respective size.

+ - string: iso-c4 + details:

Produces a paper of the respective size.

+ - string: iso-c5 + details:

Produces a paper of the respective size.

+ - string: iso-c6 + details:

Produces a paper of the respective size.

+ - string: iso-c7 + details:

Produces a paper of the respective size.

+ - string: iso-c8 + details:

Produces a paper of the respective size.

+ - string: din-d3 + details:

Produces a paper of the respective size.

+ - string: din-d4 + details:

Produces a paper of the respective size.

+ - string: din-d5 + details:

Produces a paper of the respective size.

+ - string: din-d6 + details:

Produces a paper of the respective size.

+ - string: din-d7 + details:

Produces a paper of the respective size.

+ - string: din-d8 + details:

Produces a paper of the respective size.

+ - string: sis-g5 + details:

Produces a paper of the respective size.

+ - string: sis-e5 + details:

Produces a paper of the respective size.

+ - string: ansi-a + details:

Produces a paper of the respective size.

+ - string: ansi-b + details:

Produces a paper of the respective size.

+ - string: ansi-c + details:

Produces a paper of the respective size.

+ - string: ansi-d + details:

Produces a paper of the respective size.

+ - string: ansi-e + details:

Produces a paper of the respective size.

+ - string: arch-a + details:

Produces a paper of the respective size.

+ - string: arch-b + details:

Produces a paper of the respective size.

+ - string: arch-c + details:

Produces a paper of the respective size.

+ - string: arch-d + details:

Produces a paper of the respective size.

+ - string: arch-e1 + details:

Produces a paper of the respective size.

+ - string: arch-e + details:

Produces a paper of the respective size.

+ - string: jis-b0 + details:

Produces a paper of the respective size.

+ - string: jis-b1 + details:

Produces a paper of the respective size.

+ - string: jis-b2 + details:

Produces a paper of the respective size.

+ - string: jis-b3 + details:

Produces a paper of the respective size.

+ - string: jis-b4 + details:

Produces a paper of the respective size.

+ - string: jis-b5 + details:

Produces a paper of the respective size.

+ - string: jis-b6 + details:

Produces a paper of the respective size.

+ - string: jis-b7 + details:

Produces a paper of the respective size.

+ - string: jis-b8 + details:

Produces a paper of the respective size.

+ - string: jis-b9 + details:

Produces a paper of the respective size.

+ - string: jis-b10 + details:

Produces a paper of the respective size.

+ - string: jis-b11 + details:

Produces a paper of the respective size.

+ - string: sac-d0 + details:

Produces a paper of the respective size.

+ - string: sac-d1 + details:

Produces a paper of the respective size.

+ - string: sac-d2 + details:

Produces a paper of the respective size.

+ - string: sac-d3 + details:

Produces a paper of the respective size.

+ - string: sac-d4 + details:

Produces a paper of the respective size.

+ - string: sac-d5 + details:

Produces a paper of the respective size.

+ - string: sac-d6 + details:

Produces a paper of the respective size.

+ - string: iso-id-1 + details:

Produces a paper of the respective size.

+ - string: iso-id-2 + details:

Produces a paper of the respective size.

+ - string: iso-id-3 + details:

Produces a paper of the respective size.

+ - string: asia-f4 + details:

Produces a paper of the respective size.

+ - string: jp-shiroku-ban-4 + details:

Produces a paper of the respective size.

+ - string: jp-shiroku-ban-5 + details:

Produces a paper of the respective size.

+ - string: jp-shiroku-ban-6 + details:

Produces a paper of the respective size.

+ - string: jp-kiku-4 + details:

Produces a paper of the respective size.

+ - string: jp-kiku-5 + details:

Produces a paper of the respective size.

+ - string: jp-business-card + details:

Produces a paper of the respective size.

+ - string: cn-business-card + details:

Produces a paper of the respective size.

+ - string: eu-business-card + details:

Produces a paper of the respective size.

+ - string: fr-tellière + details:

Produces a paper of the respective size.

+ - string: fr-couronne-écriture + details:

Produces a paper of the respective size.

+ - string: fr-couronne-édition + details:

Produces a paper of the respective size.

+ - string: fr-raisin + details:

Produces a paper of the respective size.

+ - string: fr-carré + details:

Produces a paper of the respective size.

+ - string: fr-jésus + details:

Produces a paper of the respective size.

+ - string: uk-brief + details:

Produces a paper of the respective size.

+ - string: uk-draft + details:

Produces a paper of the respective size.

+ - string: uk-foolscap + details:

Produces a paper of the respective size.

+ - string: uk-quarto + details:

Produces a paper of the respective size.

+ - string: uk-crown + details:

Produces a paper of the respective size.

+ - string: uk-book-a + details:

Produces a paper of the respective size.

+ - string: uk-book-b + details:

Produces a paper of the respective size.

+ - string: us-letter + details:

Produces a paper of the respective size.

+ - string: us-legal + details:

Produces a paper of the respective size.

+ - string: us-tabloid + details:

Produces a paper of the respective size.

+ - string: us-executive + details:

Produces a paper of the respective size.

+ - string: us-foolscap-folio + details:

Produces a paper of the respective size.

+ - string: us-statement + details:

Produces a paper of the respective size.

+ - string: us-ledger + details:

Produces a paper of the respective size.

+ - string: us-oficio + details:

Produces a paper of the respective size.

+ - string: us-gov-letter + details:

Produces a paper of the respective size.

+ - string: us-gov-legal + details:

Produces a paper of the respective size.

+ - string: us-business-card + details:

Produces a paper of the respective size.

+ - string: us-digest + details:

Produces a paper of the respective size.

+ - string: us-trade + details:

Produces a paper of the respective size.

+ - string: newspaper-compact + details:

Produces a paper of the respective size.

+ - string: newspaper-berliner + details:

Produces a paper of the respective size.

+ - string: newspaper-broadsheet + details:

Produces a paper of the respective size.

+ - string: presentation-16-9 + details:

Produces a paper of the respective size.

+ - string: presentation-4-3 + details:

Produces a paper of the respective size.

+ default: "a4" + positional: false + named: true + required: false + variadic: false + settable: true + - name: width + details:

The width of the page.

+ example: |- +
#set page(
+          width: 3cm,
+          margin: (x: 0cm),
+        )
+
+        #for i in range(3) {
+          box(square(width: 1cm))
+        }
+        
Preview
+ types: + - auto + - length + strings: [] + default: 595.28pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details: |- +

The height of the page.

+

If this is set to auto, page breaks can only be triggered manually + by inserting a page break. Most examples throughout + this documentation use auto for the height of the page to + dynamically grow and shrink to fit their content.

+ example: null + types: + - auto + - length + strings: [] + default: 841.89pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: flipped + details:

Whether the page is flipped into landscape orientation.

+ example: |- +
#set page(
+          "us-business-card",
+          flipped: true,
+          fill: rgb("f2e5dd"),
+        )
+
+        #set align(bottom + end)
+        #text(14pt)[*Sam H. Richards*] \
+        _Procurement Manager_
+
+        #set text(10pt)
+        17 Main Street \
+        New York, NY 10001 \
+        +1 555 555 5555
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: margin + details: |- +

The page's margins.

+
    +
  • A single length: The same margin on all sides.
  • +
  • auto: The margin is set to the default value for the page's size.
  • +
  • A dictionary: With a dictionary, the margins can be set individually. + The dictionary can contain the following keys in order of precedence: +
      +
    • top: The top margin.
    • +
    • right: The right margin.
    • +
    • bottom: The bottom margin.
    • +
    • left: The left margin.
    • +
    • inside: The margin at the inner side of the page (where the + binding is).
    • +
    • outside: The margin at the outer side of the page (opposite to the + binding).
    • +
    • x: The horizontal margins.
    • +
    • y: The vertical margins.
    • +
    • rest: The margins on all sides except those for which the + dictionary explicitly sets a size.
    • +
    +
  • +
+

The values for left and right are mutually exclusive with + the values for inside and outside.

+ example: |- +
#set page(
+         width: 3cm,
+         height: 4cm,
+         margin: (x: 8pt, y: 4pt),
+        )
+
+        #rect(
+          width: 100%,
+          height: 100%,
+          fill: aqua,
+        )
+        
Preview
+ types: + - auto + - relative length + - dictionary + strings: [] + default: (:) + positional: false + named: true + required: false + variadic: false + settable: true + - name: binding + details: |- +

On which side the pages will be bound.

+
    +
  • auto: Equivalent to left if the text direction + is left-to-right and right if it is right-to-left.
  • +
  • left: Bound on the left side.
  • +
  • right: Bound on the right side.
  • +
+

This affects the meaning of the inside and outside options for + margins.

+ example: null + types: + - auto + - alignment + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: columns + details:

How many columns the page has.

+ example: |- +
#set page(columns: 2, height: 4.8cm)
+        Climate change is one of the most
+        pressing issues of our time, with
+        the potential to devastate
+        communities, ecosystems, and
+        economies around the world. It's
+        clear that we need to take urgent
+        action to reduce our carbon
+        emissions and mitigate the impacts
+        of a rapidly changing climate.
+        
Preview
+ types: + - integer + strings: [] + default: 1 + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

The page's background color.

+

This instructs the printer to color the complete page with the given + color. If you are considering larger production runs, it may be more + environmentally friendly and cost-effective to source pre-dyed pages and + not set this property.

+ example: |- +
#set page(fill: rgb("444352"))
+        #set text(fill: rgb("fdfdfd"))
+        *Dark mode enabled.*
+        
Preview
+ types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: numbering + details: |- +

How to number the pages.

+

If an explicit footer is given, the numbering is ignored.

+ example: |- +
#set page(
+          height: 100pt,
+          margin: (top: 16pt, bottom: 24pt),
+          numbering: "1 / 1",
+        )
+
+        #lorem(48)
+        
Preview
+ types: + - none + - string + - function + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: number-align + details:

The alignment of the page numbering.

+ example: |- +
#set page(
+          margin: (top: 16pt, bottom: 24pt),
+          numbering: "1",
+          number-align: right,
+        )
+
+        #lorem(30)
+        
Preview
+ types: + - alignment + - 2d alignment + strings: [] + default: center + positional: false + named: true + required: false + variadic: false + settable: true + - name: header + details:

The page's header. Fills the top margin of each page.

+ example: |- +
#set par(justify: true)
+        #set page(
+          margin: (top: 32pt, bottom: 20pt),
+          header: [
+            #set text(8pt)
+            #smallcaps[Typst Academcy]
+            #h(1fr) _Exercise Sheet 3_
+          ],
+        )
+
+        #lorem(19)
+        
Preview
+ types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: header-ascent + details:

The amount the header is raised into the top margin.

+ example: null + types: + - relative length + strings: [] + default: 30% + positional: false + named: true + required: false + variadic: false + settable: true + - name: footer + details: |- +

The page's footer. Fills the bottom margin of each page.

+

For just a page number, the numbering property, typically suffices. If + you want to create a custom footer, but still display the page number, + you can directly access the page counter.

+ example: |- +
#set par(justify: true)
+        #set page(
+          height: 100pt,
+          margin: 20pt,
+          footer: [
+            #set align(right)
+            #set text(8pt)
+            #counter(page).display(
+              "1 of I",
+              both: true,
+            )
+          ]
+        )
+
+        #lorem(48)
+        
Preview
+ types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: footer-descent + details:

The amount the footer is lowered into the bottom margin.

+ example: null + types: + - relative length + strings: [] + default: 30% + positional: false + named: true + required: false + variadic: false + settable: true + - name: background + details: |- +

Content in the page's background.

+

This content will be placed behind the page's body. It can be + used to place a background image or a watermark.

+ example: |- +
#set page(background: rotate(24deg,
+          text(18pt, fill: rgb("FFCBC4"))[
+            *CONFIDENTIAL*
+          ]
+        ))
+
+        = Typst's secret plans
+        In the year 2023, we plan to take
+        over the world (of typesetting).
+        
Preview
+ types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: foreground + details: |- +

Content in the page's foreground.

+

This content will overlay the page's body.

+ example: |- +
#set page(foreground: text(24pt)[🥸])
+
+        Reviewer 2 has marked our paper
+        "Weak Reject" because they did
+        not understand our approach...
+        
Preview
+ types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details: |- +

The contents of the page(s).

+

Multiple pages will be created if the content does not fit on a single + page. A new page with the page properties prior to the function invocation + will be created after the body has been typeset.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/pagebreak-en.yaml b/docs/i18n/layout/pagebreak-en.yaml index 777410c2a43d..ce946cb48e1a 100644 --- a/docs/i18n/layout/pagebreak-en.yaml +++ b/docs/i18n/layout/pagebreak-en.yaml @@ -1,85 +1,85 @@ -route: /docs/reference/layout/pagebreak/ -title: Page Break -description: Documentation for the `pagebreak` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-weak - name: weak - children: [] - - id: parameters-to - name: to - children: [] -body: - kind: func - content: - path: - - pagebreak - display: Page Break - keywords: null - oneliner: A manual page break. - element: true - details: |- -

A manual page break.

-

Must not be used inside any containers.

-

Example

-
The next page contains
-      more details on compound theory.
-      #pagebreak()
-
-      == Compound Theory
-      In 1984, the first ...
-      
Preview
- params: - - name: weak - details: |- -

If true, the page break is skipped if the current page is already - empty.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: to - details: |- -

If given, ensures that the next page will be an even/odd page, with an - empty page in between if necessary.

- example: |- -
#set page(height: 30pt)
-
-        First.
-        #pagebreak(to: "odd")
-        Third.
-        
Preview
- types: - - none - - string - strings: - - string: even - details:

Next page will be an even page.

- - string: odd - details:

Next page will be an odd page.

- default: none - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/pagebreak/ +title: Page Break +description: Documentation for the `pagebreak` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-weak + name: weak + children: [] + - id: parameters-to + name: to + children: [] +body: + kind: func + content: + path: + - pagebreak + display: Page Break + keywords: null + oneliner: A manual page break. + element: true + details: |- +

A manual page break.

+

Must not be used inside any containers.

+

Example

+
The next page contains
+      more details on compound theory.
+      #pagebreak()
+
+      == Compound Theory
+      In 1984, the first ...
+      
Preview
+ params: + - name: weak + details: |- +

If true, the page break is skipped if the current page is already + empty.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: to + details: |- +

If given, ensures that the next page will be an even/odd page, with an + empty page in between if necessary.

+ example: |- +
#set page(height: 30pt)
+
+        First.
+        #pagebreak(to: "odd")
+        Third.
+        
Preview
+ types: + - none + - string + strings: + - string: even + details:

Next page will be an even page.

+ - string: odd + details:

Next page will be an odd page.

+ default: none + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/par-en.yaml b/docs/i18n/layout/par-en.yaml index 7ed98cc434a6..a3fa3e779125 100644 --- a/docs/i18n/layout/par-en.yaml +++ b/docs/i18n/layout/par-en.yaml @@ -1,185 +1,185 @@ -route: /docs/reference/layout/par/ -title: Paragraph -description: Documentation for the `par` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-leading - name: leading - children: [] - - id: parameters-justify - name: justify - children: [] - - id: parameters-linebreaks - name: linebreaks - children: [] - - id: parameters-first-line-indent - name: first-line-indent - children: [] - - id: parameters-hanging-indent - name: hanging-indent - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - par - display: Paragraph - keywords: null - oneliner: Arranges text, spacing and inline-level elements into a paragraph. - element: true - details: |- -

Arranges text, spacing and inline-level elements into a paragraph.

-

Although this function is primarily used in set rules to affect paragraph - properties, it can also be used to explicitly render its argument onto a - paragraph of its own.

-

Example

-
#show par: set block(spacing: 0.65em)
-      #set par(
-        first-line-indent: 1em,
-        justify: true,
-      )
-
-      We proceed by contradiction.
-      Suppose that there exists a set
-      of positive integers $a$, $b$, and
-      $c$ that satisfies the equation
-      $a^n + b^n = c^n$ for some
-      integer value of $n > 2$.
-
-      Without loss of generality,
-      let $a$ be the smallest of the
-      three integers. Then, we ...
-      
Preview
- params: - - name: leading - details:

The spacing between lines.

- example: null - types: - - length - strings: [] - default: 0.65em - positional: false - named: true - required: false - variadic: false - settable: true - - name: justify - details: |- -

Whether to justify text in its line.

-

Hyphenation will be enabled for justified paragraphs if the text - property hyphenate is set to auto and the - current language is known.

-

Note that the current alignment still has an effect on - the placement of the last line except if it ends with a justified line - break.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: linebreaks - details: |- -

How to determine line breaks.

-

When this property is set to auto, its default value, optimized line - breaks will be used for justified paragraphs. Enabling optimized line - breaks for ragged paragraphs may also be worthwhile to improve the - appearance of the text.

- example: |- -
#set page(width: 190pt)
-        #set par(linebreaks: "simple")
-        Some texts are frustratingly
-        challenging to break in a
-        visually pleasing way. This
-        very aesthetic example is one
-        of them.
-
-        #set par(linebreaks: "optimized")
-        Some texts are frustratingly
-        challenging to break in a
-        visually pleasing way. This
-        very aesthetic example is one
-        of them.
-        
Preview
- types: - - auto - - string - strings: - - string: simple - details:

Determine the line breaks in a simple first-fit style.

- - string: optimized - details: |- -

Optimize the line breaks for the whole paragraph.

-

Typst will try to produce more evenly filled lines of text by - considering the whole paragraph when calculating line breaks.

- default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: first-line-indent - details: |- -

The indent the first line of a paragraph should have.

-

Only the first line of a consecutive paragraph will be indented (not - the first one in a block or on the page).

-

By typographic convention, paragraph breaks are indicated either by some - space between paragraphs or by indented first lines. Consider reducing - the paragraph spacing to the [leading] when - using this property (e.g. using - #show par: set block(spacing: 0.65em)).

- example: null - types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: hanging-indent - details:

The indent all but the first line of a paragraph should have.

- example: null - types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The contents of the paragraph.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/par/ +title: Paragraph +description: Documentation for the `par` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-leading + name: leading + children: [] + - id: parameters-justify + name: justify + children: [] + - id: parameters-linebreaks + name: linebreaks + children: [] + - id: parameters-first-line-indent + name: first-line-indent + children: [] + - id: parameters-hanging-indent + name: hanging-indent + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - par + display: Paragraph + keywords: null + oneliner: Arranges text, spacing and inline-level elements into a paragraph. + element: true + details: |- +

Arranges text, spacing and inline-level elements into a paragraph.

+

Although this function is primarily used in set rules to affect paragraph + properties, it can also be used to explicitly render its argument onto a + paragraph of its own.

+

Example

+
#show par: set block(spacing: 0.65em)
+      #set par(
+        first-line-indent: 1em,
+        justify: true,
+      )
+
+      We proceed by contradiction.
+      Suppose that there exists a set
+      of positive integers $a$, $b$, and
+      $c$ that satisfies the equation
+      $a^n + b^n = c^n$ for some
+      integer value of $n > 2$.
+
+      Without loss of generality,
+      let $a$ be the smallest of the
+      three integers. Then, we ...
+      
Preview
+ params: + - name: leading + details:

The spacing between lines.

+ example: null + types: + - length + strings: [] + default: 0.65em + positional: false + named: true + required: false + variadic: false + settable: true + - name: justify + details: |- +

Whether to justify text in its line.

+

Hyphenation will be enabled for justified paragraphs if the text + property hyphenate is set to auto and the + current language is known.

+

Note that the current alignment still has an effect on + the placement of the last line except if it ends with a justified line + break.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: linebreaks + details: |- +

How to determine line breaks.

+

When this property is set to auto, its default value, optimized line + breaks will be used for justified paragraphs. Enabling optimized line + breaks for ragged paragraphs may also be worthwhile to improve the + appearance of the text.

+ example: |- +
#set page(width: 190pt)
+        #set par(linebreaks: "simple")
+        Some texts are frustratingly
+        challenging to break in a
+        visually pleasing way. This
+        very aesthetic example is one
+        of them.
+
+        #set par(linebreaks: "optimized")
+        Some texts are frustratingly
+        challenging to break in a
+        visually pleasing way. This
+        very aesthetic example is one
+        of them.
+        
Preview
+ types: + - auto + - string + strings: + - string: simple + details:

Determine the line breaks in a simple first-fit style.

+ - string: optimized + details: |- +

Optimize the line breaks for the whole paragraph.

+

Typst will try to produce more evenly filled lines of text by + considering the whole paragraph when calculating line breaks.

+ default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: first-line-indent + details: |- +

The indent the first line of a paragraph should have.

+

Only the first line of a consecutive paragraph will be indented (not + the first one in a block or on the page).

+

By typographic convention, paragraph breaks are indicated either by some + space between paragraphs or by indented first lines. Consider reducing + the paragraph spacing to the [leading] when + using this property (e.g. using + #show par: set block(spacing: 0.65em)).

+ example: null + types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: hanging-indent + details:

The indent all but the first line of a paragraph should have.

+ example: null + types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The contents of the paragraph.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/parbreak-en.yaml b/docs/i18n/layout/parbreak-en.yaml index 3fb91941e408..d2e587915d6b 100644 --- a/docs/i18n/layout/parbreak-en.yaml +++ b/docs/i18n/layout/parbreak-en.yaml @@ -1,44 +1,44 @@ -route: /docs/reference/layout/parbreak/ -title: Paragraph Break -description: Documentation for the `parbreak` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -body: - kind: func - content: - path: - - parbreak - display: Paragraph Break - keywords: null - oneliner: A paragraph break. - element: true - details: |- -

A paragraph break.

-

This starts a new paragraph. Especially useful when used within code like - for loops. Multiple consecutive - paragraph breaks collapse into a single one.

-

Example

-
#for i in range(3) {
-        [Blind text #i: ]
-        lorem(5)
-        parbreak()
-      }
-      
Preview
-

Syntax

-

Instead of calling this function, you can insert a blank line into your - markup to create a paragraph break.

- params: [] - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/parbreak/ +title: Paragraph Break +description: Documentation for the `parbreak` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +body: + kind: func + content: + path: + - parbreak + display: Paragraph Break + keywords: null + oneliner: A paragraph break. + element: true + details: |- +

A paragraph break.

+

This starts a new paragraph. Especially useful when used within code like + for loops. Multiple consecutive + paragraph breaks collapse into a single one.

+

Example

+
#for i in range(3) {
+        [Blind text #i: ]
+        lorem(5)
+        parbreak()
+      }
+      
Preview
+

Syntax

+

Instead of calling this function, you can insert a blank line into your + markup to create a paragraph break.

+ params: [] + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/place-en.yaml b/docs/i18n/layout/place-en.yaml index 2ed9f9ade212..ad892c0c8f3b 100644 --- a/docs/i18n/layout/place-en.yaml +++ b/docs/i18n/layout/place-en.yaml @@ -1,117 +1,117 @@ -route: /docs/reference/layout/place/ -title: Place -description: Documentation for the `place` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-alignment - name: alignment - children: [] - - id: parameters-dx - name: dx - children: [] - - id: parameters-dy - name: dy - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - place - display: Place - keywords: null - oneliner: Places content at an absolute position. - element: true - details: |- -

Places content at an absolute position.

-

Placed content will not affect the position of other content. Place is - always relative to its parent container and will be in the foreground of all - other content in the container. Page margins will be respected.

-

Example

-
#set page(height: 60pt)
-      Hello, world!
-
-      #place(
-        top + right,
-        square(
-          width: 20pt,
-          stroke: 2pt + blue
-        ),
-      )
-      
Preview
- params: - - name: alignment - details: |- -

Relative to which position in the parent container to place the content.

-

When an axis of the page is auto sized, all alignments relative to that - axis will be ignored, instead, the item will be placed in the origin of the - axis.

- example: null - types: - - alignment - - 2d alignment - strings: [] - default: start - positional: true - named: false - required: false - variadic: false - settable: true - - name: dx - details:

The horizontal displacement of the placed content.

- example: |- -
#set page(height: 100pt)
-        #for i in range(16) {
-          let amount = i * 4pt
-          place(center, dx: amount - 32pt, dy: amount)[A]
-        }
-        
Preview
- types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: dy - details:

The vertical displacement of the placed content.

- example: null - types: - - relative length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to place.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/place/ +title: Place +description: Documentation for the `place` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-alignment + name: alignment + children: [] + - id: parameters-dx + name: dx + children: [] + - id: parameters-dy + name: dy + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - place + display: Place + keywords: null + oneliner: Places content at an absolute position. + element: true + details: |- +

Places content at an absolute position.

+

Placed content will not affect the position of other content. Place is + always relative to its parent container and will be in the foreground of all + other content in the container. Page margins will be respected.

+

Example

+
#set page(height: 60pt)
+      Hello, world!
+
+      #place(
+        top + right,
+        square(
+          width: 20pt,
+          stroke: 2pt + blue
+        ),
+      )
+      
Preview
+ params: + - name: alignment + details: |- +

Relative to which position in the parent container to place the content.

+

When an axis of the page is auto sized, all alignments relative to that + axis will be ignored, instead, the item will be placed in the origin of the + axis.

+ example: null + types: + - alignment + - 2d alignment + strings: [] + default: start + positional: true + named: false + required: false + variadic: false + settable: true + - name: dx + details:

The horizontal displacement of the placed content.

+ example: |- +
#set page(height: 100pt)
+        #for i in range(16) {
+          let amount = i * 4pt
+          place(center, dx: amount - 32pt, dy: amount)[A]
+        }
+        
Preview
+ types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: dy + details:

The vertical displacement of the placed content.

+ example: null + types: + - relative length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to place.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/repeat-en.yaml b/docs/i18n/layout/repeat-en.yaml index a857db11b9f0..1507e4d92e9f 100644 --- a/docs/i18n/layout/repeat-en.yaml +++ b/docs/i18n/layout/repeat-en.yaml @@ -1,61 +1,61 @@ -route: /docs/reference/layout/repeat/ -title: Repeat -description: Documentation for the `repeat` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - repeat - display: Repeat - keywords: null - oneliner: Repeats content to the available space. - element: true - details: |- -

Repeats content to the available space.

-

This can be useful when implementing a custom index, reference, or outline.

-

Space may be inserted between the instances of the body parameter, so be - sure to include negative space if you need the instances to overlap.

-

Errors if there no bounds on the available space, as it would create - infinite content.

-

Example

-
Sign on the dotted line:
-      #box(width: 1fr, repeat[.])
-
-      #set text(10pt)
-      #v(8pt, weak: true)
-      #align(right)[
-        Berlin, the 22nd of December, 2022
-      ]
-      
Preview
- params: - - name: body - details:

The content to repeat.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/repeat/ +title: Repeat +description: Documentation for the `repeat` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - repeat + display: Repeat + keywords: null + oneliner: Repeats content to the available space. + element: true + details: |- +

Repeats content to the available space.

+

This can be useful when implementing a custom index, reference, or outline.

+

Space may be inserted between the instances of the body parameter, so be + sure to include negative space if you need the instances to overlap.

+

Errors if there no bounds on the available space, as it would create + infinite content.

+

Example

+
Sign on the dotted line:
+      #box(width: 1fr, repeat[.])
+
+      #set text(10pt)
+      #v(8pt, weak: true)
+      #align(right)[
+        Berlin, the 22nd of December, 2022
+      ]
+      
Preview
+ params: + - name: body + details:

The content to repeat.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/rotate-en.yaml b/docs/i18n/layout/rotate-en.yaml index 0df7973215dd..9384aa8c3116 100644 --- a/docs/i18n/layout/rotate-en.yaml +++ b/docs/i18n/layout/rotate-en.yaml @@ -1,100 +1,100 @@ -route: /docs/reference/layout/rotate/ -title: Rotate -description: Documentation for the `rotate` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-angle - name: angle - children: [] - - id: parameters-origin - name: origin - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - rotate - display: Rotate - keywords: null - oneliner: Rotates content without affecting layout. - element: true - details: |- -

Rotates content without affecting layout.

-

Rotates an element by a given angle. The layout will act as if the element - was not rotated.

-

Example

-
#stack(
-        dir: ltr,
-        spacing: 1fr,
-        ..range(16)
-          .map(i => rotate(24deg * i)[X]),
-      )
-      
Preview
- params: - - name: angle - details:

The amount of rotation.

- example: |- -
#rotate(-1.571rad)[Space!]
-        
Preview
- types: - - angle - strings: [] - default: 0deg - positional: true - named: false - required: false - variadic: false - settable: true - - name: origin - details: |- -

The origin of the rotation.

-

If, for instance, you wanted the bottom left corner of the rotated - element to stay aligned with the baseline, you would set it to bottom + left instead.

- example: |- -
#set text(spacing: 8pt)
-        #let square = square.with(width: 8pt)
-
-        #box(square())
-        #box(rotate(30deg, origin: center, square()))
-        #box(rotate(30deg, origin: top + left, square()))
-        #box(rotate(30deg, origin: bottom + right, square()))
-        
Preview
- types: - - alignment - - 2d alignment - strings: [] - default: center + horizon - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to rotate.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/rotate/ +title: Rotate +description: Documentation for the `rotate` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-angle + name: angle + children: [] + - id: parameters-origin + name: origin + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - rotate + display: Rotate + keywords: null + oneliner: Rotates content without affecting layout. + element: true + details: |- +

Rotates content without affecting layout.

+

Rotates an element by a given angle. The layout will act as if the element + was not rotated.

+

Example

+
#stack(
+        dir: ltr,
+        spacing: 1fr,
+        ..range(16)
+          .map(i => rotate(24deg * i)[X]),
+      )
+      
Preview
+ params: + - name: angle + details:

The amount of rotation.

+ example: |- +
#rotate(-1.571rad)[Space!]
+        
Preview
+ types: + - angle + strings: [] + default: 0deg + positional: true + named: false + required: false + variadic: false + settable: true + - name: origin + details: |- +

The origin of the rotation.

+

If, for instance, you wanted the bottom left corner of the rotated + element to stay aligned with the baseline, you would set it to bottom + left instead.

+ example: |- +
#set text(spacing: 8pt)
+        #let square = square.with(width: 8pt)
+
+        #box(square())
+        #box(rotate(30deg, origin: center, square()))
+        #box(rotate(30deg, origin: top + left, square()))
+        #box(rotate(30deg, origin: bottom + right, square()))
+        
Preview
+ types: + - alignment + - 2d alignment + strings: [] + default: center + horizon + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to rotate.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/scale-en.yaml b/docs/i18n/layout/scale-en.yaml index c19f14ab1fb9..de8c871c9bf7 100644 --- a/docs/i18n/layout/scale-en.yaml +++ b/docs/i18n/layout/scale-en.yaml @@ -1,104 +1,104 @@ -route: /docs/reference/layout/scale/ -title: Scale -description: Documentation for the `scale` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-x - name: x - children: [] - - id: parameters-y - name: y - children: [] - - id: parameters-origin - name: origin - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - scale - display: Scale - keywords: null - oneliner: Scales content without affecting layout. - element: true - details: |- -

Scales content without affecting layout.

-

Lets you mirror content by specifying a negative scale on a single axis.

-

Example

-
#set align(center)
-      #scale(x: -100%)[This is mirrored.]
-      
Preview
- params: - - name: x - details: |- -

The horizontal scaling factor.

-

The body will be mirrored horizontally if the parameter is negative.

- example: null - types: - - ratio - strings: [] - default: 100% - positional: false - named: true - required: false - variadic: false - settable: true - - name: y - details: |- -

The vertical scaling factor.

-

The body will be mirrored vertically if the parameter is negative.

- example: null - types: - - ratio - strings: [] - default: 100% - positional: false - named: true - required: false - variadic: false - settable: true - - name: origin - details:

The origin of the transformation.

- example: |- -
A#box(scale(75%)[A])A \
-        B#box(scale(75%, origin: bottom + left)[B])B
-        
Preview
- types: - - alignment - - 2d alignment - strings: [] - default: center + horizon - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to scale.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/scale/ +title: Scale +description: Documentation for the `scale` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-x + name: x + children: [] + - id: parameters-y + name: y + children: [] + - id: parameters-origin + name: origin + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - scale + display: Scale + keywords: null + oneliner: Scales content without affecting layout. + element: true + details: |- +

Scales content without affecting layout.

+

Lets you mirror content by specifying a negative scale on a single axis.

+

Example

+
#set align(center)
+      #scale(x: -100%)[This is mirrored.]
+      
Preview
+ params: + - name: x + details: |- +

The horizontal scaling factor.

+

The body will be mirrored horizontally if the parameter is negative.

+ example: null + types: + - ratio + strings: [] + default: 100% + positional: false + named: true + required: false + variadic: false + settable: true + - name: y + details: |- +

The vertical scaling factor.

+

The body will be mirrored vertically if the parameter is negative.

+ example: null + types: + - ratio + strings: [] + default: 100% + positional: false + named: true + required: false + variadic: false + settable: true + - name: origin + details:

The origin of the transformation.

+ example: |- +
A#box(scale(75%)[A])A \
+        B#box(scale(75%, origin: bottom + left)[B])B
+        
Preview
+ types: + - alignment + - 2d alignment + strings: [] + default: center + horizon + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to scale.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/stack-en.yaml b/docs/i18n/layout/stack-en.yaml index c672e7f01aa3..4e9b3a80db74 100644 --- a/docs/i18n/layout/stack-en.yaml +++ b/docs/i18n/layout/stack-en.yaml @@ -1,97 +1,97 @@ -route: /docs/reference/layout/stack/ -title: Stack -description: Documentation for the `stack` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-dir - name: dir - children: [] - - id: parameters-spacing - name: spacing - children: [] - - id: parameters-children - name: children - children: [] -body: - kind: func - content: - path: - - stack - display: Stack - keywords: null - oneliner: Arranges content and spacing horizontally or vertically. - element: true - details: |- -

Arranges content and spacing horizontally or vertically.

-

The stack places a list of items along an axis, with optional spacing - between each item.

-

Example

-
#stack(
-        dir: ttb,
-        rect(width: 40pt),
-        rect(width: 120pt),
-        rect(width: 90pt),
-      )
-      
Preview
- params: - - name: dir - details: |- -

The direction along which the items are stacked. Possible values are:

-
    -
  • ltr: Left to right.
  • -
  • rtl: Right to left.
  • -
  • ttb: Top to bottom.
  • -
  • btt: Bottom to top.
  • -
- example: null - types: - - direction - strings: [] - default: ttb - positional: false - named: true - required: false - variadic: false - settable: true - - name: spacing - details:

Spacing to insert between items where no explicit spacing was provided.

- example: null - types: - - none - - relative length - - fraction - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details:

The children to stack along the axis.

- example: null - types: - - relative length - - fraction - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/stack/ +title: Stack +description: Documentation for the `stack` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-dir + name: dir + children: [] + - id: parameters-spacing + name: spacing + children: [] + - id: parameters-children + name: children + children: [] +body: + kind: func + content: + path: + - stack + display: Stack + keywords: null + oneliner: Arranges content and spacing horizontally or vertically. + element: true + details: |- +

Arranges content and spacing horizontally or vertically.

+

The stack places a list of items along an axis, with optional spacing + between each item.

+

Example

+
#stack(
+        dir: ttb,
+        rect(width: 40pt),
+        rect(width: 120pt),
+        rect(width: 90pt),
+      )
+      
Preview
+ params: + - name: dir + details: |- +

The direction along which the items are stacked. Possible values are:

+
    +
  • ltr: Left to right.
  • +
  • rtl: Right to left.
  • +
  • ttb: Top to bottom.
  • +
  • btt: Bottom to top.
  • +
+ example: null + types: + - direction + strings: [] + default: ttb + positional: false + named: true + required: false + variadic: false + settable: true + - name: spacing + details:

Spacing to insert between items where no explicit spacing was provided.

+ example: null + types: + - none + - relative length + - fraction + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details:

The children to stack along the axis.

+ example: null + types: + - relative length + - fraction + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/table-en.yaml b/docs/i18n/layout/table-en.yaml index 6cb90ea3e2f1..9ed64c40877c 100644 --- a/docs/i18n/layout/table-en.yaml +++ b/docs/i18n/layout/table-en.yaml @@ -1,283 +1,283 @@ -route: /docs/reference/layout/table/ -title: Table -description: Documentation for the `table` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-columns - name: columns - children: [] - - id: parameters-rows - name: rows - children: [] - - id: parameters-gutter - name: gutter - children: [] - - id: parameters-column-gutter - name: column-gutter - children: [] - - id: parameters-row-gutter - name: row-gutter - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-align - name: align - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-inset - name: inset - children: [] - - id: parameters-children - name: children - children: [] -body: - kind: func - content: - path: - - table - display: Table - keywords: null - oneliner: A table of items. - element: true - details: |- -

A table of items.

-

Tables are used to arrange content in cells. Cells can contain arbitrary - content, including multiple paragraphs and are specified in row-major order. - Because tables are just grids with configurable cell properties, refer to - the grid documentation for more information on how to size the - table tracks.

-

To give a table a caption and make it referenceable, put it - into a figure.

-

Example

-
#table(
-        columns: (1fr, auto, auto),
-        inset: 10pt,
-        align: horizon,
-        [], [*Area*], [*Parameters*],
-        image("cylinder.svg"),
-        $ pi h (D^2 - d^2) / 4 $,
-        [
-          $h$: height \
-          $D$: outer radius \
-          $d$: inner radius
-        ],
-        image("tetrahedron.svg"),
-        $ sqrt(2) / 12 a^3 $,
-        [$a$: edge length]
-      )
-      
Preview
- params: - - name: columns - details: |- -

The column sizes. See the grid documentation for more - information on track sizing.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: rows - details: |- -

The row sizes. See the grid documentation for more - information on track sizing.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: gutter - details: |- -

The gaps between rows & columns. See the grid - documentation for more information on gutters.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: column-gutter - details: |- -

The gaps between columns. Takes precedence over gutter. See the grid - documentation for more information on gutters.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: row-gutter - details: |- -

The gaps between rows. Takes precedence over gutter. See the grid - documentation for more information on gutters.

- example: null - types: - - auto - - integer - - relative length - - fraction - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

How to fill the cells.

-

This can be a color or a function that returns a color. The function is - passed the cells' column and row index, starting at zero. This can be - used to implement striped tables.

- example: |- -
#table(
-          fill: (col, _) => if calc.odd(col) { luma(240) } else { white },
-          align: (col, row) =>
-            if row == 0 { center }
-            else if col == 0 { left }
-            else { right },
-          columns: 4,
-          [], [*Q1*], [*Q2*], [*Q3*],
-          [Revenue:], [1000 €], [2000 €], [3000 €],
-          [Expenses:], [500 €], [1000 €], [1500 €],
-          [Profit:], [500 €], [1000 €], [1500 €],
-        )
-        
Preview
- types: - - none - - color - - array - - function - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: align - details: |- -

How to align the cells' content.

-

This can either be a single alignment, an array of alignments - (corresponding to each column) or a function that returns an alignment. - The function is passed the cells' column and row index, starting at zero. - If set to auto, the outer alignment is used.

- example: |- -
#table(
-          columns: 3,
-          align: (x, y) => (left, center, right).at(x),
-          [Hello], [Hello], [Hello],
-          [A], [B], [C],
-        )
-        
Preview
- types: - - auto - - array - - function - - alignment - - 2d alignment - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the cells.

-

See the line's documentation for more details. - Strokes can be disabled by setting this to none.

-

Note: Richer stroke customization for individual cells is not yet - implemented, but will be in the future. In the meantime, you can use - the third-party tablex library.

- example: null - types: - - none - - length - - color - - dictionary - - stroke - strings: [] - default: 1pt + - black - positional: false - named: true - required: false - variadic: false - settable: true - - name: inset - details:

How much to pad the cells' content.

- example: null - types: - - relative length - strings: [] - default: 5pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details:

The contents of the table cells.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/table/ +title: Table +description: Documentation for the `table` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-columns + name: columns + children: [] + - id: parameters-rows + name: rows + children: [] + - id: parameters-gutter + name: gutter + children: [] + - id: parameters-column-gutter + name: column-gutter + children: [] + - id: parameters-row-gutter + name: row-gutter + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-align + name: align + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-inset + name: inset + children: [] + - id: parameters-children + name: children + children: [] +body: + kind: func + content: + path: + - table + display: Table + keywords: null + oneliner: A table of items. + element: true + details: |- +

A table of items.

+

Tables are used to arrange content in cells. Cells can contain arbitrary + content, including multiple paragraphs and are specified in row-major order. + Because tables are just grids with configurable cell properties, refer to + the grid documentation for more information on how to size the + table tracks.

+

To give a table a caption and make it referenceable, put it + into a figure.

+

Example

+
#table(
+        columns: (1fr, auto, auto),
+        inset: 10pt,
+        align: horizon,
+        [], [*Area*], [*Parameters*],
+        image("cylinder.svg"),
+        $ pi h (D^2 - d^2) / 4 $,
+        [
+          $h$: height \
+          $D$: outer radius \
+          $d$: inner radius
+        ],
+        image("tetrahedron.svg"),
+        $ sqrt(2) / 12 a^3 $,
+        [$a$: edge length]
+      )
+      
Preview
+ params: + - name: columns + details: |- +

The column sizes. See the grid documentation for more + information on track sizing.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: rows + details: |- +

The row sizes. See the grid documentation for more + information on track sizing.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: gutter + details: |- +

The gaps between rows & columns. See the grid + documentation for more information on gutters.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: column-gutter + details: |- +

The gaps between columns. Takes precedence over gutter. See the grid + documentation for more information on gutters.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: row-gutter + details: |- +

The gaps between rows. Takes precedence over gutter. See the grid + documentation for more information on gutters.

+ example: null + types: + - auto + - integer + - relative length + - fraction + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

How to fill the cells.

+

This can be a color or a function that returns a color. The function is + passed the cells' column and row index, starting at zero. This can be + used to implement striped tables.

+ example: |- +
#table(
+          fill: (col, _) => if calc.odd(col) { luma(240) } else { white },
+          align: (col, row) =>
+            if row == 0 { center }
+            else if col == 0 { left }
+            else { right },
+          columns: 4,
+          [], [*Q1*], [*Q2*], [*Q3*],
+          [Revenue:], [1000 €], [2000 €], [3000 €],
+          [Expenses:], [500 €], [1000 €], [1500 €],
+          [Profit:], [500 €], [1000 €], [1500 €],
+        )
+        
Preview
+ types: + - none + - color + - array + - function + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: align + details: |- +

How to align the cells' content.

+

This can either be a single alignment, an array of alignments + (corresponding to each column) or a function that returns an alignment. + The function is passed the cells' column and row index, starting at zero. + If set to auto, the outer alignment is used.

+ example: |- +
#table(
+          columns: 3,
+          align: (x, y) => (left, center, right).at(x),
+          [Hello], [Hello], [Hello],
+          [A], [B], [C],
+        )
+        
Preview
+ types: + - auto + - array + - function + - alignment + - 2d alignment + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the cells.

+

See the line's documentation for more details. + Strokes can be disabled by setting this to none.

+

Note: Richer stroke customization for individual cells is not yet + implemented, but will be in the future. In the meantime, you can use + the third-party tablex library.

+ example: null + types: + - none + - length + - color + - dictionary + - stroke + strings: [] + default: 1pt + + black + positional: false + named: true + required: false + variadic: false + settable: true + - name: inset + details:

How much to pad the cells' content.

+ example: null + types: + - relative length + strings: [] + default: 5pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details:

The contents of the table cells.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/terms-en.yaml b/docs/i18n/layout/terms-en.yaml index 50a92814d01f..6e6376410db7 100644 --- a/docs/i18n/layout/terms-en.yaml +++ b/docs/i18n/layout/terms-en.yaml @@ -1,232 +1,232 @@ -route: /docs/reference/layout/terms/ -title: Term List -description: Documentation for the `terms` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-tight - name: tight - children: [] - - id: parameters-separator - name: separator - children: [] - - id: parameters-indent - name: indent - children: [] - - id: parameters-hanging-indent - name: hanging-indent - children: [] - - id: parameters-spacing - name: spacing - children: [] - - id: parameters-children - name: children - children: [] -- id: terms-item - name: Term List Item - children: - - id: terms-item-parameters - name: Parameters - children: - - id: terms-item-parameters-term - name: term - children: [] - - id: terms-item-parameters-description - name: description - children: [] -body: - kind: func - content: - path: - - terms - display: Term List - keywords: null - oneliner: A list of terms and their descriptions. - element: true - details: |- -

A list of terms and their descriptions.

-

Displays a sequence of terms and their descriptions vertically. When the - descriptions span over multiple lines, they use hanging indent to - communicate the visual hierarchy.

-

Example

-
/ Ligature: A merged glyph.
-      / Kerning: A spacing adjustment
-        between two adjacent letters.
-      
Preview
-

Syntax

-

This function also has dedicated syntax: Starting a line with a slash, - followed by a term, a colon and a description creates a term list item.

- params: - - name: tight - details: |- -

If this is false, the items are spaced apart with term list - spacing. If it is true, they use normal - leading instead. This makes the term list more - compact, which can look better if the items are short.

-

In markup mode, the value of this parameter is determined based on - whether items are separated with a blank line. If items directly follow - each other, this is set to true; if items are separated by a blank - line, this is set to false.

- example: |- -
/ Fact: If a term list has a lot
-          of text, and maybe other inline
-          content, it should not be tight
-          anymore.
-
-        / Tip: To make it wide, simply
-          insert a blank line between the
-          items.
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: separator - details: |- -

The separator between the item and the description.

-

If you want to just separate them with a certain amount of space, use - h(2cm, weak: true) as the separator and replace 2cm with your - desired amount of space.

- example: |- -
#set terms(separator: [: ])
-
-        / Colon: A nice separator symbol.
-        
Preview
- types: - - content - strings: [] - default: h(amount: 0.6em, - weak: true) - positional: false - named: true - required: false - variadic: false - settable: true - - name: indent - details:

The indentation of each item.

- example: null - types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: hanging-indent - details: |- -

The hanging indent of the description.

-

This is in addition to the whole item's indent.

- example: |- -
#set terms(hanging-indent: 0pt)
-        / Term: This term list does not
-          make use of hanging indents.
-        
Preview
- types: - - length - strings: [] - default: 2em - positional: false - named: true - required: false - variadic: false - settable: true - - name: spacing - details: |- -

The spacing between the items of a wide (non-tight) term list.

-

If set to auto, uses the spacing below blocks.

- example: null - types: - - auto - - relative length - - fraction - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details: |- -

The term list's children.

-

When using the term list syntax, adjacent items are automatically - collected into term lists, even through constructs like for loops.

- example: |- -
#for (year, product) in (
-          "1978": "TeX",
-          "1984": "LaTeX",
-          "2019": "Typst",
-        ) [/ #product: Born in #year.]
-        
Preview
- types: - - content - - array - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: - - path: - - terms - - item - display: Term List Item - keywords: null - oneliner: A term list item. - element: true - details:

A term list item.

- params: - - name: term - details:

The term described by the list item.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: description - details:

The description of the term.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/terms/ +title: Term List +description: Documentation for the `terms` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-tight + name: tight + children: [] + - id: parameters-separator + name: separator + children: [] + - id: parameters-indent + name: indent + children: [] + - id: parameters-hanging-indent + name: hanging-indent + children: [] + - id: parameters-spacing + name: spacing + children: [] + - id: parameters-children + name: children + children: [] +- id: terms-item + name: Term List Item + children: + - id: terms-item-parameters + name: Parameters + children: + - id: terms-item-parameters-term + name: term + children: [] + - id: terms-item-parameters-description + name: description + children: [] +body: + kind: func + content: + path: + - terms + display: Term List + keywords: null + oneliner: A list of terms and their descriptions. + element: true + details: |- +

A list of terms and their descriptions.

+

Displays a sequence of terms and their descriptions vertically. When the + descriptions span over multiple lines, they use hanging indent to + communicate the visual hierarchy.

+

Example

+
/ Ligature: A merged glyph.
+      / Kerning: A spacing adjustment
+        between two adjacent letters.
+      
Preview
+

Syntax

+

This function also has dedicated syntax: Starting a line with a slash, + followed by a term, a colon and a description creates a term list item.

+ params: + - name: tight + details: |- +

If this is false, the items are spaced apart with term list + spacing. If it is true, they use normal + leading instead. This makes the term list more + compact, which can look better if the items are short.

+

In markup mode, the value of this parameter is determined based on + whether items are separated with a blank line. If items directly follow + each other, this is set to true; if items are separated by a blank + line, this is set to false.

+ example: |- +
/ Fact: If a term list has a lot
+          of text, and maybe other inline
+          content, it should not be tight
+          anymore.
+
+        / Tip: To make it wide, simply
+          insert a blank line between the
+          items.
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: separator + details: |- +

The separator between the item and the description.

+

If you want to just separate them with a certain amount of space, use + h(2cm, weak: true) as the separator and replace 2cm with your + desired amount of space.

+ example: |- +
#set terms(separator: [: ])
+
+        / Colon: A nice separator symbol.
+        
Preview
+ types: + - content + strings: [] + default: h(amount: 0.6em, + weak: true) + positional: false + named: true + required: false + variadic: false + settable: true + - name: indent + details:

The indentation of each item.

+ example: null + types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: hanging-indent + details: |- +

The hanging indent of the description.

+

This is in addition to the whole item's indent.

+ example: |- +
#set terms(hanging-indent: 0pt)
+        / Term: This term list does not
+          make use of hanging indents.
+        
Preview
+ types: + - length + strings: [] + default: 2em + positional: false + named: true + required: false + variadic: false + settable: true + - name: spacing + details: |- +

The spacing between the items of a wide (non-tight) term list.

+

If set to auto, uses the spacing below blocks.

+ example: null + types: + - auto + - relative length + - fraction + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details: |- +

The term list's children.

+

When using the term list syntax, adjacent items are automatically + collected into term lists, even through constructs like for loops.

+ example: |- +
#for (year, product) in (
+          "1978": "TeX",
+          "1984": "LaTeX",
+          "2019": "Typst",
+        ) [/ #product: Born in #year.]
+        
Preview
+ types: + - content + - array + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: + - path: + - terms + - item + display: Term List Item + keywords: null + oneliner: A term list item. + element: true + details:

A term list item.

+ params: + - name: term + details:

The term described by the list item.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: description + details:

The description of the term.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/layout/v-en.yaml b/docs/i18n/layout/v-en.yaml index 271b5dd1b9f2..e3102f320e68 100644 --- a/docs/i18n/layout/v-en.yaml +++ b/docs/i18n/layout/v-en.yaml @@ -1,89 +1,89 @@ -route: /docs/reference/layout/v/ -title: Spacing (V) -description: Documentation for the `v` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-amount - name: amount - children: [] - - id: parameters-weak - name: weak - children: [] -body: - kind: func - content: - path: - - v - display: Spacing (V) - keywords: null - oneliner: Inserts vertical spacing into a flow of blocks. - element: true - details: |- -

Inserts vertical spacing into a flow of blocks.

-

The spacing can be absolute, relative, or fractional. In the last case, - the remaining space on the page is distributed among all fractional spacings - according to their relative fractions.

-

Example

-
#grid(
-        rows: 3cm,
-        columns: 6,
-        gutter: 1fr,
-        [A #parbreak() B],
-        [A #v(0pt) B],
-        [A #v(10pt) B],
-        [A #v(0pt, weak: true) B],
-        [A #v(40%, weak: true) B],
-        [A #v(1fr) B],
-      )
-      
Preview
- params: - - name: amount - details:

How much spacing to insert.

- example: null - types: - - relative length - - fraction - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: weak - details: |- -

If true, the spacing collapses at the start or end of a flow. - Moreover, from multiple adjacent weak spacings all but the largest one - collapse. Weak spacings will always collapse adjacent paragraph spacing, - even if the paragraph spacing is larger.

- example: |- -
The following theorem is
-        foundational to the field:
-        #v(4pt, weak: true)
-        $ x^2 + y^2 = r^2 $
-        #v(4pt, weak: true)
-        The proof is simple:
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/layout/v/ +title: Spacing (V) +description: Documentation for the `v` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-amount + name: amount + children: [] + - id: parameters-weak + name: weak + children: [] +body: + kind: func + content: + path: + - v + display: Spacing (V) + keywords: null + oneliner: Inserts vertical spacing into a flow of blocks. + element: true + details: |- +

Inserts vertical spacing into a flow of blocks.

+

The spacing can be absolute, relative, or fractional. In the last case, + the remaining space on the page is distributed among all fractional spacings + according to their relative fractions.

+

Example

+
#grid(
+        rows: 3cm,
+        columns: 6,
+        gutter: 1fr,
+        [A #parbreak() B],
+        [A #v(0pt) B],
+        [A #v(10pt) B],
+        [A #v(0pt, weak: true) B],
+        [A #v(40%, weak: true) B],
+        [A #v(1fr) B],
+      )
+      
Preview
+ params: + - name: amount + details:

How much spacing to insert.

+ example: null + types: + - relative length + - fraction + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: weak + details: |- +

If true, the spacing collapses at the start or end of a flow. + Moreover, from multiple adjacent weak spacings all but the largest one + collapse. Weak spacings will always collapse adjacent paragraph spacing, + even if the paragraph spacing is larger.

+ example: |- +
The following theorem is
+        foundational to the field:
+        #v(4pt, weak: true)
+        $ x^2 + y^2 = r^2 $
+        #v(4pt, weak: true)
+        The proof is simple:
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/accent-en.yaml b/docs/i18n/math/accent-en.yaml index 4a995fd94af6..ce06a44391ab 100644 --- a/docs/i18n/math/accent-en.yaml +++ b/docs/i18n/math/accent-en.yaml @@ -1,91 +1,91 @@ -route: /docs/reference/math/accent/ -title: Accent -description: Documentation for the `accent` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-base - name: base - children: [] - - id: parameters-accent - name: accent - children: [] -body: - kind: func - content: - path: - - accent - display: Accent - keywords: null - oneliner: Attaches an accent to a base. - element: true - details: |- -

Attaches an accent to a base.

-

Example

-
$grave(a) = accent(a, `)$ \
-      $arrow(a) = accent(a, arrow)$ \
-      $tilde(a) = accent(a, \u{0303})$
-      
Preview
- params: - - name: base - details: |- -

The base to which the accent is applied. - May consist of multiple letters.

- example: |- -
$arrow(A B C)$
-        
Preview
- types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: accent - details: |- -

The accent to apply to the base.

-

Supported accents include:

- - - - - - - - - - - - - - - - - -
AccentNameCodepoint
Gravegrave`
Acuteacute´
Circumflexhat^
Tildetilde~
Macronmacron¯
Brevebreve˘
Dotdot.
Double dotdot.double¨
Triple dotdot.triple
Quadruple dotdot.quad
Diaeresisdiaer¨
Circlecircle
Double acuteacute.double˝
Caroncaronˇ
Right arrowarrow, ->
Left arrowarrow.l, <-
- example: null - types: - - string - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/accent/ +title: Accent +description: Documentation for the `accent` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-base + name: base + children: [] + - id: parameters-accent + name: accent + children: [] +body: + kind: func + content: + path: + - accent + display: Accent + keywords: null + oneliner: Attaches an accent to a base. + element: true + details: |- +

Attaches an accent to a base.

+

Example

+
$grave(a) = accent(a, `)$ \
+      $arrow(a) = accent(a, arrow)$ \
+      $tilde(a) = accent(a, \u{0303})$
+      
Preview
+ params: + - name: base + details: |- +

The base to which the accent is applied. + May consist of multiple letters.

+ example: |- +
$arrow(A B C)$
+        
Preview
+ types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: accent + details: |- +

The accent to apply to the base.

+

Supported accents include:

+ + + + + + + + + + + + + + + + + +
AccentNameCodepoint
Gravegrave`
Acuteacute´
Circumflexhat^
Tildetilde~
Macronmacron¯
Brevebreve˘
Dotdot.
Double dotdot.double¨
Triple dotdot.triple
Quadruple dotdot.quad
Diaeresisdiaer¨
Circlecircle
Double acuteacute.double˝
Caroncaronˇ
Right arrowarrow, ->
Left arrowarrow.l, <-
+ example: null + types: + - string + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/attach-en.yaml b/docs/i18n/math/attach-en.yaml index 49e0e187aa5e..efa912057496 100644 --- a/docs/i18n/math/attach-en.yaml +++ b/docs/i18n/math/attach-en.yaml @@ -1,277 +1,277 @@ -route: /docs/reference/math/attach/ -title: Attach -description: Documentation for attach group of functions. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: attach - name: Attachment - children: - - id: attach-example - name: Example - children: [] - - id: attach-syntax - name: Syntax - children: [] - - id: attach-parameters - name: Parameters - children: - - id: attach-parameters-base - name: base - children: [] - - id: attach-parameters-t - name: t - children: [] - - id: attach-parameters-b - name: b - children: [] - - id: attach-parameters-tl - name: tl - children: [] - - id: attach-parameters-bl - name: bl - children: [] - - id: attach-parameters-tr - name: tr - children: [] - - id: attach-parameters-br - name: br - children: [] -- id: scripts - name: Scripts - children: - - id: scripts-example - name: Example - children: [] - - id: scripts-parameters - name: Parameters - children: - - id: scripts-parameters-body - name: body - children: [] -- id: limits - name: Limits - children: - - id: limits-example - name: Example - children: [] - - id: limits-parameters - name: Parameters - children: - - id: limits-parameters-body - name: body - children: [] - - id: limits-parameters-inline - name: inline - children: [] -body: - kind: funcs - content: - name: attach - display: Attach - details: |- -

Subscript, superscripts, and limits.

-

The attach function backs the $a_b^c$ syntax that adds top and bottom - attachments to a part of an equation. Attachments can be displayed either as - sub/superscripts, or limits. Typst automatically decides which is more - suitable depending on the base, but you can also control this manually with - the scripts and limits functions.

- functions: - - path: - - attach - display: Attachment - keywords: null - oneliner: A base with optional attachments. - element: true - details: |- -

A base with optional attachments.

-

Example

-
// With syntax.
-        $ sum_(i=0)^n a_i = 2^(1+i) $
-
-        // With function call.
-        $ attach(
-          Pi, t: alpha, b: beta,
-          tl: 1, tr: 2+3, bl: 4+5, br: 6,
-        ) $
-        
Preview
-

Syntax

-

This function also has dedicated syntax for attachments after the base: Use - the underscore (_) to indicate a subscript i.e. bottom attachment and the - hat (^) to indicate a superscript i.e. top attachment.

- params: - - name: base - details:

The base to which things are attached.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: t - details: |- -

The top attachment, smartly positioned at top-right or above the base.

-

You can wrap the base in limits() or scripts() to override the - smart positioning.

- example: null - types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: b - details: |- -

The bottom attachment, smartly positioned at the bottom-right or below - the base.

-

You can wrap the base in limits() or scripts() to override the - smart positioning.

- example: null - types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: tl - details:

The top-left attachment (before the base).

- example: null - types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: bl - details:

The bottom-left attachment (before base).

- example: null - types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: tr - details:

The top-right attachment (after the base).

- example: null - types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: br - details:

The bottom-right attachment (after the base).

- example: null - types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] - - path: - - scripts - display: Scripts - keywords: null - oneliner: Forces a base to display attachments as scripts. - element: true - details: |- -

Forces a base to display attachments as scripts.

-

Example

-
$ scripts(sum)_1^2 != sum_1^2 $
-        
Preview
- params: - - name: body - details:

The base to attach the scripts to.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - limits - display: Limits - keywords: null - oneliner: Forces a base to display attachments as limits. - element: true - details: |- -

Forces a base to display attachments as limits.

-

Example

-
$ limits(A)_1^2 != A_1^2 $
-        
Preview
- params: - - name: body - details:

The base to attach the limits to.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: inline - details: |- -

Whether to also force limits in inline equations.

-

When applying limits globally (e.g., through a show rule), it is - typically a good idea to disable this.

- example: null - types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/attach/ +title: Attach +description: Documentation for attach group of functions. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: attach + name: Attachment + children: + - id: attach-example + name: Example + children: [] + - id: attach-syntax + name: Syntax + children: [] + - id: attach-parameters + name: Parameters + children: + - id: attach-parameters-base + name: base + children: [] + - id: attach-parameters-t + name: t + children: [] + - id: attach-parameters-b + name: b + children: [] + - id: attach-parameters-tl + name: tl + children: [] + - id: attach-parameters-bl + name: bl + children: [] + - id: attach-parameters-tr + name: tr + children: [] + - id: attach-parameters-br + name: br + children: [] +- id: scripts + name: Scripts + children: + - id: scripts-example + name: Example + children: [] + - id: scripts-parameters + name: Parameters + children: + - id: scripts-parameters-body + name: body + children: [] +- id: limits + name: Limits + children: + - id: limits-example + name: Example + children: [] + - id: limits-parameters + name: Parameters + children: + - id: limits-parameters-body + name: body + children: [] + - id: limits-parameters-inline + name: inline + children: [] +body: + kind: funcs + content: + name: attach + display: Attach + details: |- +

Subscript, superscripts, and limits.

+

The attach function backs the $a_b^c$ syntax that adds top and bottom + attachments to a part of an equation. Attachments can be displayed either as + sub/superscripts, or limits. Typst automatically decides which is more + suitable depending on the base, but you can also control this manually with + the scripts and limits functions.

+ functions: + - path: + - attach + display: Attachment + keywords: null + oneliner: A base with optional attachments. + element: true + details: |- +

A base with optional attachments.

+

Example

+
// With syntax.
+        $ sum_(i=0)^n a_i = 2^(1+i) $
+
+        // With function call.
+        $ attach(
+          Pi, t: alpha, b: beta,
+          tl: 1, tr: 2+3, bl: 4+5, br: 6,
+        ) $
+        
Preview
+

Syntax

+

This function also has dedicated syntax for attachments after the base: Use + the underscore (_) to indicate a subscript i.e. bottom attachment and the + hat (^) to indicate a superscript i.e. top attachment.

+ params: + - name: base + details:

The base to which things are attached.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: t + details: |- +

The top attachment, smartly positioned at top-right or above the base.

+

You can wrap the base in limits() or scripts() to override the + smart positioning.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: b + details: |- +

The bottom attachment, smartly positioned at the bottom-right or below + the base.

+

You can wrap the base in limits() or scripts() to override the + smart positioning.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: tl + details:

The top-left attachment (before the base).

+ example: null + types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: bl + details:

The bottom-left attachment (before base).

+ example: null + types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: tr + details:

The top-right attachment (after the base).

+ example: null + types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: br + details:

The bottom-right attachment (after the base).

+ example: null + types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] + - path: + - scripts + display: Scripts + keywords: null + oneliner: Forces a base to display attachments as scripts. + element: true + details: |- +

Forces a base to display attachments as scripts.

+

Example

+
$ scripts(sum)_1^2 != sum_1^2 $
+        
Preview
+ params: + - name: body + details:

The base to attach the scripts to.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - limits + display: Limits + keywords: null + oneliner: Forces a base to display attachments as limits. + element: true + details: |- +

Forces a base to display attachments as limits.

+

Example

+
$ limits(A)_1^2 != A_1^2 $
+        
Preview
+ params: + - name: body + details:

The base to attach the limits to.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: inline + details: |- +

Whether to also force limits in inline equations.

+

When applying limits globally (e.g., through a show rule), it is + typically a good idea to disable this.

+ example: null + types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/binom-en.yaml b/docs/i18n/math/binom-en.yaml index d58cc80dbaa5..fedbb89afe47 100644 --- a/docs/i18n/math/binom-en.yaml +++ b/docs/i18n/math/binom-en.yaml @@ -1,64 +1,64 @@ -route: /docs/reference/math/binom/ -title: Binomial -description: Documentation for the `binom` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-upper - name: upper - children: [] - - id: parameters-lower - name: lower - children: [] -body: - kind: func - content: - path: - - binom - display: Binomial - keywords: null - oneliner: A binomial expression. - element: true - details: |- -

A binomial expression.

-

Example

-
$ binom(n, k) $
-      
Preview
- params: - - name: upper - details:

The binomial's upper index.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: lower - details:

The binomial's lower index.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/binom/ +title: Binomial +description: Documentation for the `binom` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-upper + name: upper + children: [] + - id: parameters-lower + name: lower + children: [] +body: + kind: func + content: + path: + - binom + display: Binomial + keywords: null + oneliner: A binomial expression. + element: true + details: |- +

A binomial expression.

+

Example

+
$ binom(n, k) $
+      
Preview
+ params: + - name: upper + details:

The binomial's upper index.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: lower + details:

The binomial's lower index.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/cancel-en.yaml b/docs/i18n/math/cancel-en.yaml index 7559af315f3f..6e93976aaa0a 100644 --- a/docs/i18n/math/cancel-en.yaml +++ b/docs/i18n/math/cancel-en.yaml @@ -1,161 +1,161 @@ -route: /docs/reference/math/cancel/ -title: Cancel -description: Documentation for the `cancel` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-body - name: body - children: [] - - id: parameters-length - name: length - children: [] - - id: parameters-inverted - name: inverted - children: [] - - id: parameters-cross - name: cross - children: [] - - id: parameters-rotation - name: rotation - children: [] - - id: parameters-stroke - name: stroke - children: [] -body: - kind: func - content: - path: - - cancel - display: Cancel - keywords: null - oneliner: Displays a diagonal line over a part of an equation. - element: true - details: |- -

Displays a diagonal line over a part of an equation.

-

This is commonly used to show the elimination of a term.

-

Example

-
Here, we can simplify:
-      $ (a dot b dot cancel(x)) /
-          cancel(x) $
-      
Preview
- params: - - name: body - details:

The content over which the line should be placed.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: length - details: |- -

The length of the line, relative to the length of the diagonal spanning - the whole element being "cancelled". A value of 100% would then have - the line span precisely the element's diagonal.

- example: |- -
$ a + cancel(x, length: #200%)
-            - cancel(x, length: #200%) $
-        
Preview
- types: - - relative length - strings: [] - default: 100% + - 3pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: inverted - details: |- -

If the cancel line should be inverted (pointing to the top left instead - of top right).

- example: |- -
$ (a cancel((b + c), inverted: #true)) /
-            cancel(b + c, inverted: #true) $
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: cross - details: |- -

If two opposing cancel lines should be drawn, forming a cross over the - element. Overrides inverted.

- example: |- -
$ cancel(Pi, cross: #true) $
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: rotation - details: |- -

How to rotate the cancel line. See the line's - documentation for more details.

- example: |- -
$ cancel(Pi, rotation: #30deg) $
-        
Preview
- types: - - angle - strings: [] - default: 0deg - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the cancel line. See the - line's documentation for more details.

- example: |- -
$ cancel(
-          sum x,
-          stroke: #(
-            paint: red,
-            thickness: 1.5pt,
-            dash: "dashed",
-          ),
-        ) $
-        
Preview
- types: - - length - - color - - dictionary - - stroke - strings: [] - default: 0.5pt - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/cancel/ +title: Cancel +description: Documentation for the `cancel` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-body + name: body + children: [] + - id: parameters-length + name: length + children: [] + - id: parameters-inverted + name: inverted + children: [] + - id: parameters-cross + name: cross + children: [] + - id: parameters-rotation + name: rotation + children: [] + - id: parameters-stroke + name: stroke + children: [] +body: + kind: func + content: + path: + - cancel + display: Cancel + keywords: null + oneliner: Displays a diagonal line over a part of an equation. + element: true + details: |- +

Displays a diagonal line over a part of an equation.

+

This is commonly used to show the elimination of a term.

+

Example

+
Here, we can simplify:
+      $ (a dot b dot cancel(x)) /
+          cancel(x) $
+      
Preview
+ params: + - name: body + details:

The content over which the line should be placed.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: length + details: |- +

The length of the line, relative to the length of the diagonal spanning + the whole element being "cancelled". A value of 100% would then have + the line span precisely the element's diagonal.

+ example: |- +
$ a + cancel(x, length: #200%)
+            - cancel(x, length: #200%) $
+        
Preview
+ types: + - relative length + strings: [] + default: 100% + + 3pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: inverted + details: |- +

If the cancel line should be inverted (pointing to the top left instead + of top right).

+ example: |- +
$ (a cancel((b + c), inverted: #true)) /
+            cancel(b + c, inverted: #true) $
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: cross + details: |- +

If two opposing cancel lines should be drawn, forming a cross over the + element. Overrides inverted.

+ example: |- +
$ cancel(Pi, cross: #true) $
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: rotation + details: |- +

How to rotate the cancel line. See the line's + documentation for more details.

+ example: |- +
$ cancel(Pi, rotation: #30deg) $
+        
Preview
+ types: + - angle + strings: [] + default: 0deg + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the cancel line. See the + line's documentation for more details.

+ example: |- +
$ cancel(
+          sum x,
+          stroke: #(
+            paint: red,
+            thickness: 1.5pt,
+            dash: "dashed",
+          ),
+        ) $
+        
Preview
+ types: + - length + - color + - dictionary + - stroke + strings: [] + default: 0.5pt + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/cases-en.yaml b/docs/i18n/math/cases-en.yaml index 183e552d434b..51419ed2d1bb 100644 --- a/docs/i18n/math/cases-en.yaml +++ b/docs/i18n/math/cases-en.yaml @@ -1,83 +1,83 @@ -route: /docs/reference/math/cases/ -title: Cases -description: Documentation for the `cases` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-delim - name: delim - children: [] - - id: parameters-children - name: children - children: [] -body: - kind: func - content: - path: - - cases - display: Cases - keywords: null - oneliner: A case distinction. - element: true - details: |- -

A case distinction.

-

Content across different branches can be aligned with the & symbol.

-

Example

-
$ f(x, y) := cases(
-        1 "if" (x dot y)/2 <= 0,
-        2 "if" x "is even",
-        3 "if" x in NN,
-        4 "else",
-      ) $
-      
Preview
- params: - - name: delim - details:

The delimiter to use.

- example: |- -
#set math.cases(delim: "[")
-        $ x = cases(1, 2) $
-        
Preview
- types: - - string - strings: - - string: ( - details:

Delimit with parentheses.

- - string: '[' - details:

Delimit with brackets.

- - string: '{' - details:

Delimit with curly braces.

- - string: '|' - details:

Delimit with vertical bars.

- - string: '||' - details:

Delimit with double vertical bars.

- default: "{" - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details:

The branches of the case distinction.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/cases/ +title: Cases +description: Documentation for the `cases` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-delim + name: delim + children: [] + - id: parameters-children + name: children + children: [] +body: + kind: func + content: + path: + - cases + display: Cases + keywords: null + oneliner: A case distinction. + element: true + details: |- +

A case distinction.

+

Content across different branches can be aligned with the & symbol.

+

Example

+
$ f(x, y) := cases(
+        1 "if" (x dot y)/2 <= 0,
+        2 "if" x "is even",
+        3 "if" x in NN,
+        4 "else",
+      ) $
+      
Preview
+ params: + - name: delim + details:

The delimiter to use.

+ example: |- +
#set math.cases(delim: "[")
+        $ x = cases(1, 2) $
+        
Preview
+ types: + - string + strings: + - string: ( + details:

Delimit with parentheses.

+ - string: '[' + details:

Delimit with brackets.

+ - string: '{' + details:

Delimit with curly braces.

+ - string: '|' + details:

Delimit with vertical bars.

+ - string: '||' + details:

Delimit with double vertical bars.

+ default: "{" + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details:

The branches of the case distinction.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/equation-en.yaml b/docs/i18n/math/equation-en.yaml index 6376f6cb5c44..75c6a0e00227 100644 --- a/docs/i18n/math/equation-en.yaml +++ b/docs/i18n/math/equation-en.yaml @@ -1,138 +1,138 @@ -route: /docs/reference/math/equation/ -title: Equation -description: Documentation for the `equation` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-block - name: block - children: [] - - id: parameters-numbering - name: numbering - children: [] - - id: parameters-supplement - name: supplement - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - equation - display: Equation - keywords: null - oneliner: A mathematical equation. - element: true - details: |- -

A mathematical equation.

-

Can be displayed inline with text or as a separate block.

-

Example

-
#set text(font: "New Computer Modern")
-
-      Let $a$, $b$, and $c$ be the side
-      lengths of right-angled triangle.
-      Then, we know that:
-      $ a^2 + b^2 = c^2 $
-
-      Prove by induction:
-      $ sum_(k=1)^n k = (n(n+1)) / 2 $
-      
Preview
-

Syntax

-

This function also has dedicated syntax: Write mathematical markup within - dollar signs to create an equation. Starting and ending the equation with at - least one space lifts it into a separate block that is centered - horizontally. For more details about math syntax, see the - main math page.

- params: - - name: block - details:

Whether the equation is displayed as a separate block.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: numbering - details:

How to number block-level - equations.

- example: |- -
#set math.equation(numbering: "(1)")
-
-        We define:
-        $ phi.alt := (1 + sqrt(5)) / 2 $ <ratio>
-
-        With @ratio, we get:
-        $ F_n = floor(1 / sqrt(5) phi.alt^n) $
-        
Preview
- types: - - none - - string - - function - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: supplement - details: |- -

A supplement for the equation.

-

For references to equations, this is added before the referenced number.

-

If a function is specified, it is passed the referenced equation and - should return content.

- example: |- -
#set math.equation(numbering: "(1)", supplement: [Eq.])
-
-        We define:
-        $ phi.alt := (1 + sqrt(5)) / 2 $ <ratio>
-
-        With @ratio, we get:
-        $ F_n = floor(1 / sqrt(5) phi.alt^n) $
-        
Preview
- types: - - none - - auto - - content - - function - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The contents of the equation.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/equation/ +title: Equation +description: Documentation for the `equation` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-block + name: block + children: [] + - id: parameters-numbering + name: numbering + children: [] + - id: parameters-supplement + name: supplement + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - equation + display: Equation + keywords: null + oneliner: A mathematical equation. + element: true + details: |- +

A mathematical equation.

+

Can be displayed inline with text or as a separate block.

+

Example

+
#set text(font: "New Computer Modern")
+
+      Let $a$, $b$, and $c$ be the side
+      lengths of right-angled triangle.
+      Then, we know that:
+      $ a^2 + b^2 = c^2 $
+
+      Prove by induction:
+      $ sum_(k=1)^n k = (n(n+1)) / 2 $
+      
Preview
+

Syntax

+

This function also has dedicated syntax: Write mathematical markup within + dollar signs to create an equation. Starting and ending the equation with at + least one space lifts it into a separate block that is centered + horizontally. For more details about math syntax, see the + main math page.

+ params: + - name: block + details:

Whether the equation is displayed as a separate block.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: numbering + details:

How to number block-level + equations.

+ example: |- +
#set math.equation(numbering: "(1)")
+
+        We define:
+        $ phi.alt := (1 + sqrt(5)) / 2 $ <ratio>
+
+        With @ratio, we get:
+        $ F_n = floor(1 / sqrt(5) phi.alt^n) $
+        
Preview
+ types: + - none + - string + - function + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: supplement + details: |- +

A supplement for the equation.

+

For references to equations, this is added before the referenced number.

+

If a function is specified, it is passed the referenced equation and + should return content.

+ example: |- +
#set math.equation(numbering: "(1)", supplement: [Eq.])
+
+        We define:
+        $ phi.alt := (1 + sqrt(5)) / 2 $ <ratio>
+
+        With @ratio, we get:
+        $ F_n = floor(1 / sqrt(5) phi.alt^n) $
+        
Preview
+ types: + - none + - auto + - content + - function + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The contents of the equation.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/frac-en.yaml b/docs/i18n/math/frac-en.yaml index f7383c7ed7b5..b8cc4f8b86c0 100644 --- a/docs/i18n/math/frac-en.yaml +++ b/docs/i18n/math/frac-en.yaml @@ -1,73 +1,73 @@ -route: /docs/reference/math/frac/ -title: Fraction -description: Documentation for the `frac` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-num - name: num - children: [] - - id: parameters-denom - name: denom - children: [] -body: - kind: func - content: - path: - - frac - display: Fraction - keywords: null - oneliner: A mathematical fraction. - element: true - details: |- -

A mathematical fraction.

-

Example

-
$ 1/2 < (x+1)/2 $
-      $ ((x+1)) / 2 = frac(a, b) $
-      
Preview
-

Syntax

-

This function also has dedicated syntax: Use a slash to turn neighbouring - expressions into a fraction. Multiple atoms can be grouped into a single - expression using round grouping parenthesis. Such parentheses are removed - from the output, but you can nest multiple to force them.

- params: - - name: num - details:

The fraction's numerator.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: denom - details:

The fraction's denominator.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/frac/ +title: Fraction +description: Documentation for the `frac` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-num + name: num + children: [] + - id: parameters-denom + name: denom + children: [] +body: + kind: func + content: + path: + - frac + display: Fraction + keywords: null + oneliner: A mathematical fraction. + element: true + details: |- +

A mathematical fraction.

+

Example

+
$ 1/2 < (x+1)/2 $
+      $ ((x+1)) / 2 = frac(a, b) $
+      
Preview
+

Syntax

+

This function also has dedicated syntax: Use a slash to turn neighbouring + expressions into a fraction. Multiple atoms can be grouped into a single + expression using round grouping parenthesis. Such parentheses are removed + from the output, but you can nest multiple to force them.

+ params: + - name: num + details:

The fraction's numerator.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: denom + details:

The fraction's denominator.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/lr-en.yaml b/docs/i18n/math/lr-en.yaml index 53568b374c7a..e69c04a25cc3 100644 --- a/docs/i18n/math/lr-en.yaml +++ b/docs/i18n/math/lr-en.yaml @@ -1,283 +1,283 @@ -route: /docs/reference/math/lr/ -title: Left/Right -description: Documentation for lr group of functions. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: lr - name: Left/Right - children: - - id: lr-example - name: Example - children: [] - - id: lr-parameters - name: Parameters - children: - - id: lr-parameters-size - name: size - children: [] - - id: lr-parameters-body - name: body - children: [] -- id: abs - name: Abs - children: - - id: abs-example - name: Example - children: [] - - id: abs-parameters - name: Parameters - children: - - id: abs-parameters-body - name: body - children: [] -- id: norm - name: Norm - children: - - id: norm-example - name: Example - children: [] - - id: norm-parameters - name: Parameters - children: - - id: norm-parameters-body - name: body - children: [] -- id: floor - name: Floor - children: - - id: floor-example - name: Example - children: [] - - id: floor-parameters - name: Parameters - children: - - id: floor-parameters-body - name: body - children: [] -- id: ceil - name: Ceil - children: - - id: ceil-example - name: Example - children: [] - - id: ceil-parameters - name: Parameters - children: - - id: ceil-parameters-body - name: body - children: [] -- id: round - name: Round - children: - - id: round-example - name: Example - children: [] - - id: round-parameters - name: Parameters - children: - - id: round-parameters-body - name: body - children: [] -body: - kind: funcs - content: - name: lr - display: Left/Right - details: |- -

Delimiter matching.

-

The lr function allows you to match two delimiters and scale them with the - content they contain. While this also happens automatically for delimiters - that match syntactically, lr allows you to match two arbitrary delimiters - and control their size exactly. Apart from the lr function, Typst provides - a few more functions that create delimiter pairings for absolute, ceiled, - and floored values as well as norms.

- functions: - - path: - - lr - display: Left/Right - keywords: null - oneliner: Scales delimiters. - element: true - details: |- -

Scales delimiters.

-

While matched delimiters scale by default, this can be used to scale - unmatched delimiters and to control the delimiter scaling more precisely.

-

Example

-
$ lr(]a, b/2]) $
-        $ lr(]sum_(x=1)^n] x, size: #50%) $
-        
Preview
- params: - - name: size - details:

The size of the brackets, relative to the height of the wrapped - content.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The delimited content, including the delimiters.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - abs - display: Abs - keywords: null - oneliner: Takes the absolute value of an expression. - element: false - details: |- -

Takes the absolute value of an expression.

-

Example

-
$ abs(x/2) $
-        
Preview
- params: - - name: body - details:

The expression to take the absolute value of.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - norm - display: Norm - keywords: null - oneliner: Takes the norm of an expression. - element: false - details: |- -

Takes the norm of an expression.

-

Example

-
$ norm(x/2) $
-        
Preview
- params: - - name: body - details:

The expression to take the norm of.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - floor - display: Floor - keywords: null - oneliner: Floors an expression. - element: false - details: |- -

Floors an expression.

-

Example

-
$ floor(x/2) $
-        
Preview
- params: - - name: body - details:

The expression to floor.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - ceil - display: Ceil - keywords: null - oneliner: Ceils an expression. - element: false - details: |- -

Ceils an expression.

-

Example

-
$ ceil(x/2) $
-        
Preview
- params: - - name: body - details:

The expression to ceil.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - round - display: Round - keywords: null - oneliner: Rounds an expression. - element: false - details: |- -

Rounds an expression.

-

Example

-
$ round(x/2) $
-        
Preview
- params: - - name: body - details:

The expression to round.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/lr/ +title: Left/Right +description: Documentation for lr group of functions. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: lr + name: Left/Right + children: + - id: lr-example + name: Example + children: [] + - id: lr-parameters + name: Parameters + children: + - id: lr-parameters-size + name: size + children: [] + - id: lr-parameters-body + name: body + children: [] +- id: abs + name: Abs + children: + - id: abs-example + name: Example + children: [] + - id: abs-parameters + name: Parameters + children: + - id: abs-parameters-body + name: body + children: [] +- id: norm + name: Norm + children: + - id: norm-example + name: Example + children: [] + - id: norm-parameters + name: Parameters + children: + - id: norm-parameters-body + name: body + children: [] +- id: floor + name: Floor + children: + - id: floor-example + name: Example + children: [] + - id: floor-parameters + name: Parameters + children: + - id: floor-parameters-body + name: body + children: [] +- id: ceil + name: Ceil + children: + - id: ceil-example + name: Example + children: [] + - id: ceil-parameters + name: Parameters + children: + - id: ceil-parameters-body + name: body + children: [] +- id: round + name: Round + children: + - id: round-example + name: Example + children: [] + - id: round-parameters + name: Parameters + children: + - id: round-parameters-body + name: body + children: [] +body: + kind: funcs + content: + name: lr + display: Left/Right + details: |- +

Delimiter matching.

+

The lr function allows you to match two delimiters and scale them with the + content they contain. While this also happens automatically for delimiters + that match syntactically, lr allows you to match two arbitrary delimiters + and control their size exactly. Apart from the lr function, Typst provides + a few more functions that create delimiter pairings for absolute, ceiled, + and floored values as well as norms.

+ functions: + - path: + - lr + display: Left/Right + keywords: null + oneliner: Scales delimiters. + element: true + details: |- +

Scales delimiters.

+

While matched delimiters scale by default, this can be used to scale + unmatched delimiters and to control the delimiter scaling more precisely.

+

Example

+
$ lr(]a, b/2]) $
+        $ lr(]sum_(x=1)^n] x, size: #50%) $
+        
Preview
+ params: + - name: size + details:

The size of the brackets, relative to the height of the wrapped + content.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The delimited content, including the delimiters.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - abs + display: Abs + keywords: null + oneliner: Takes the absolute value of an expression. + element: false + details: |- +

Takes the absolute value of an expression.

+

Example

+
$ abs(x/2) $
+        
Preview
+ params: + - name: body + details:

The expression to take the absolute value of.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - norm + display: Norm + keywords: null + oneliner: Takes the norm of an expression. + element: false + details: |- +

Takes the norm of an expression.

+

Example

+
$ norm(x/2) $
+        
Preview
+ params: + - name: body + details:

The expression to take the norm of.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - floor + display: Floor + keywords: null + oneliner: Floors an expression. + element: false + details: |- +

Floors an expression.

+

Example

+
$ floor(x/2) $
+        
Preview
+ params: + - name: body + details:

The expression to floor.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - ceil + display: Ceil + keywords: null + oneliner: Ceils an expression. + element: false + details: |- +

Ceils an expression.

+

Example

+
$ ceil(x/2) $
+        
Preview
+ params: + - name: body + details:

The expression to ceil.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - round + display: Round + keywords: null + oneliner: Rounds an expression. + element: false + details: |- +

Rounds an expression.

+

Example

+
$ round(x/2) $
+        
Preview
+ params: + - name: body + details:

The expression to round.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/mat-en.yaml b/docs/i18n/math/mat-en.yaml index 00dba821bf25..e11af8b0196a 100644 --- a/docs/i18n/math/mat-en.yaml +++ b/docs/i18n/math/mat-en.yaml @@ -1,93 +1,93 @@ -route: /docs/reference/math/mat/ -title: Matrix -description: Documentation for the `mat` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-delim - name: delim - children: [] - - id: parameters-rows - name: rows - children: [] -body: - kind: func - content: - path: - - mat - display: Matrix - keywords: null - oneliner: A matrix. - element: true - details: |- -

A matrix.

-

The elements of a row should be separated by commas, while the rows - themselves should be separated by semicolons. The semicolon syntax merges - preceding arguments separated by commas into an array. You can also use this - special syntax of math function calls to define custom functions that take - 2D data.

-

Content in cells that are in the same row can be aligned with the & symbol.

-

Example

-
$ mat(
-        1, 2, ..., 10;
-        2, 2, ..., 10;
-        dots.v, dots.v, dots.down, dots.v;
-        10, 10, ..., 10;
-      ) $
-      
Preview
- params: - - name: delim - details:

The delimiter to use.

- example: |- -
#set math.mat(delim: "[")
-        $ mat(1, 2; 3, 4) $
-        
Preview
- types: - - none - - string - strings: - - string: ( - details:

Delimit with parentheses.

- - string: '[' - details:

Delimit with brackets.

- - string: '{' - details:

Delimit with curly braces.

- - string: '|' - details:

Delimit with vertical bars.

- - string: '||' - details:

Delimit with double vertical bars.

- default: "(" - positional: false - named: true - required: false - variadic: false - settable: true - - name: rows - details:

An array of arrays with the rows of the matrix.

- example: |- -
#let data = ((1, 2, 3), (4, 5, 6))
-        #let matrix = math.mat(..data)
-        $ v := matrix $
-        
Preview
- types: - - array - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/mat/ +title: Matrix +description: Documentation for the `mat` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-delim + name: delim + children: [] + - id: parameters-rows + name: rows + children: [] +body: + kind: func + content: + path: + - mat + display: Matrix + keywords: null + oneliner: A matrix. + element: true + details: |- +

A matrix.

+

The elements of a row should be separated by commas, while the rows + themselves should be separated by semicolons. The semicolon syntax merges + preceding arguments separated by commas into an array. You can also use this + special syntax of math function calls to define custom functions that take + 2D data.

+

Content in cells that are in the same row can be aligned with the & symbol.

+

Example

+
$ mat(
+        1, 2, ..., 10;
+        2, 2, ..., 10;
+        dots.v, dots.v, dots.down, dots.v;
+        10, 10, ..., 10;
+      ) $
+      
Preview
+ params: + - name: delim + details:

The delimiter to use.

+ example: |- +
#set math.mat(delim: "[")
+        $ mat(1, 2; 3, 4) $
+        
Preview
+ types: + - none + - string + strings: + - string: ( + details:

Delimit with parentheses.

+ - string: '[' + details:

Delimit with brackets.

+ - string: '{' + details:

Delimit with curly braces.

+ - string: '|' + details:

Delimit with vertical bars.

+ - string: '||' + details:

Delimit with double vertical bars.

+ default: "(" + positional: false + named: true + required: false + variadic: false + settable: true + - name: rows + details:

An array of arrays with the rows of the matrix.

+ example: |- +
#let data = ((1, 2, 3), (4, 5, 6))
+        #let matrix = math.mat(..data)
+        $ v := matrix $
+        
Preview
+ types: + - array + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/op-en.yaml b/docs/i18n/math/op-en.yaml index 09bd058de241..21560acf4930 100644 --- a/docs/i18n/math/op-en.yaml +++ b/docs/i18n/math/op-en.yaml @@ -1,76 +1,76 @@ -route: /docs/reference/math/op/ -title: Text Operator -description: Documentation for the `op` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: predefined - name: Predefined - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-text - name: text - children: [] - - id: parameters-limits - name: limits - children: [] -body: - kind: func - content: - path: - - op - display: Text Operator - keywords: null - oneliner: A text operator in an equation. - element: true - details: |- -

A text operator in an equation.

-

Example

-
$ tan x = (sin x)/(cos x) $
-      $ op("custom",
-           limits: #true)_(n->oo) n $
-      
Preview
-

Predefined Operators

-

Typst predefines the operators arccos, arcsin, arctan, arg, - cos, cosh, cot, ctg, coth, csc, deg, det, dim, - exp, gcd, hom, mod, inf, ker, lg, lim, ln, log, - max, min, Pr, sec, sin, sinc, sinh, sup, tan, tg, - tanh, liminf, and limsup.

- params: - - name: text - details:

The operator's text.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: limits - details:

Whether the operator should show attachments as limits in display - mode.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/op/ +title: Text Operator +description: Documentation for the `op` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: predefined + name: Predefined + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-text + name: text + children: [] + - id: parameters-limits + name: limits + children: [] +body: + kind: func + content: + path: + - op + display: Text Operator + keywords: null + oneliner: A text operator in an equation. + element: true + details: |- +

A text operator in an equation.

+

Example

+
$ tan x = (sin x)/(cos x) $
+      $ op("custom",
+           limits: #true)_(n->oo) n $
+      
Preview
+

Predefined Operators

+

Typst predefines the operators arccos, arcsin, arctan, arg, + cos, cosh, cot, ctg, coth, csc, deg, det, dim, + exp, gcd, hom, mod, inf, ker, lg, lim, ln, log, + max, min, Pr, sec, sin, sinc, sinh, sup, tan, tg, + tanh, liminf, and limsup.

+ params: + - name: text + details:

The operator's text.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: limits + details:

Whether the operator should show attachments as limits in display + mode.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/roots-en.yaml b/docs/i18n/math/roots-en.yaml index f66db6c4d23d..3a56049c0b6c 100644 --- a/docs/i18n/math/roots-en.yaml +++ b/docs/i18n/math/roots-en.yaml @@ -1,112 +1,112 @@ -route: /docs/reference/math/roots/ -title: Roots -description: Documentation for roots group of functions. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: root - name: Root - children: - - id: root-example - name: Example - children: [] - - id: root-parameters - name: Parameters - children: - - id: root-parameters-index - name: index - children: [] - - id: root-parameters-radicand - name: radicand - children: [] -- id: sqrt - name: Square Root - children: - - id: sqrt-example - name: Example - children: [] - - id: sqrt-parameters - name: Parameters - children: - - id: sqrt-parameters-radicand - name: radicand - children: [] -body: - kind: funcs - content: - name: roots - display: Roots - details:

Square and non-square roots.

- functions: - - path: - - root - display: Root - keywords: null - oneliner: A general root. - element: true - details: |- -

A general root.

-

Example

-
$ root(3, x) $
-        
Preview
- params: - - name: index - details:

Which root of the radicand to take.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - - name: radicand - details:

The expression to take the root of.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - sqrt - display: Square Root - keywords: null - oneliner: A square root. - element: false - details: |- -

A square root.

-

Example

-
$ sqrt(x^2) = x = sqrt(x)^2 $
-        
Preview
- params: - - name: radicand - details:

The expression to take the square root of.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/roots/ +title: Roots +description: Documentation for roots group of functions. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: root + name: Root + children: + - id: root-example + name: Example + children: [] + - id: root-parameters + name: Parameters + children: + - id: root-parameters-index + name: index + children: [] + - id: root-parameters-radicand + name: radicand + children: [] +- id: sqrt + name: Square Root + children: + - id: sqrt-example + name: Example + children: [] + - id: sqrt-parameters + name: Parameters + children: + - id: sqrt-parameters-radicand + name: radicand + children: [] +body: + kind: funcs + content: + name: roots + display: Roots + details:

Square and non-square roots.

+ functions: + - path: + - root + display: Root + keywords: null + oneliner: A general root. + element: true + details: |- +

A general root.

+

Example

+
$ root(3, x) $
+        
Preview
+ params: + - name: index + details:

Which root of the radicand to take.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + - name: radicand + details:

The expression to take the root of.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - sqrt + display: Square Root + keywords: null + oneliner: A square root. + element: false + details: |- +

A square root.

+

Example

+
$ sqrt(x^2) = x = sqrt(x)^2 $
+        
Preview
+ params: + - name: radicand + details:

The expression to take the square root of.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/sizes-en.yaml b/docs/i18n/math/sizes-en.yaml index e0781ec83a96..d4eabad82e26 100644 --- a/docs/i18n/math/sizes-en.yaml +++ b/docs/i18n/math/sizes-en.yaml @@ -1,254 +1,254 @@ -route: /docs/reference/math/sizes/ -title: Sizes -description: Documentation for sizes group of functions. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: display - name: Display Size - children: - - id: display-example - name: Example - children: [] - - id: display-parameters - name: Parameters - children: - - id: display-parameters-body - name: body - children: [] - - id: display-parameters-cramped - name: cramped - children: [] -- id: inline - name: Inline Size - children: - - id: inline-example - name: Example - children: [] - - id: inline-parameters - name: Parameters - children: - - id: inline-parameters-body - name: body - children: [] - - id: inline-parameters-cramped - name: cramped - children: [] -- id: script - name: Script Size - children: - - id: script-example - name: Example - children: [] - - id: script-parameters - name: Parameters - children: - - id: script-parameters-body - name: body - children: [] - - id: script-parameters-cramped - name: cramped - children: [] -- id: sscript - name: Script-Script Size - children: - - id: sscript-example - name: Example - children: [] - - id: sscript-parameters - name: Parameters - children: - - id: sscript-parameters-body - name: body - children: [] - - id: sscript-parameters-cramped - name: cramped - children: [] -body: - kind: funcs - content: - name: sizes - display: Sizes - details: |- -

Forced size styles for expressions within formulas.

-

These functions allow manual configuration of the size of equation elements - to make them look as in a display/inline equation or as if used in a root or - sub/superscripts.

- functions: - - path: - - display - display: Display Size - keywords: null - oneliner: Forced display style in math. - element: false - details: |- -

Forced display style in math.

-

This is the normal size for block equations.

-

Example

-
$sum_i x_i/2 = display(sum_i x_i/2)$
-        
Preview
- params: - - name: body - details:

The content to size.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: cramped - details: |- -

Whether to impose a height restriction for exponents, like regular sub- - and superscripts do.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - inline - display: Inline Size - keywords: null - oneliner: Forced inline (text) style in math. - element: false - details: |- -

Forced inline (text) style in math.

-

This is the normal size for inline equations.

-

Example

-
$ sum_i x_i/2
-            = inline(sum_i x_i/2) $
-        
Preview
- params: - - name: body - details:

The content to size.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: cramped - details: |- -

Whether to impose a height restriction for exponents, like regular sub- - and superscripts do.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - script - display: Script Size - keywords: null - oneliner: Forced script style in math. - element: false - details: |- -

Forced script style in math.

-

This is the smaller size used in powers or sub- or superscripts.

-

Example

-
$sum_i x_i/2 = script(sum_i x_i/2)$
-        
Preview
- params: - - name: body - details:

The content to size.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: cramped - details: |- -

Whether to impose a height restriction for exponents, like regular sub- - and superscripts do.

- example: null - types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - sscript - display: Script-Script Size - keywords: null - oneliner: Forced second script style in math. - element: false - details: |- -

Forced second script style in math.

-

This is the smallest size, used in second-level sub- and superscripts - (script of the script).

-

Example

-
$sum_i x_i/2 = sscript(sum_i x_i/2)$
-        
Preview
- params: - - name: body - details:

The content to size.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: cramped - details: |- -

Whether to impose a height restriction for exponents, like regular sub- - and superscripts do.

- example: null - types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/sizes/ +title: Sizes +description: Documentation for sizes group of functions. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: display + name: Display Size + children: + - id: display-example + name: Example + children: [] + - id: display-parameters + name: Parameters + children: + - id: display-parameters-body + name: body + children: [] + - id: display-parameters-cramped + name: cramped + children: [] +- id: inline + name: Inline Size + children: + - id: inline-example + name: Example + children: [] + - id: inline-parameters + name: Parameters + children: + - id: inline-parameters-body + name: body + children: [] + - id: inline-parameters-cramped + name: cramped + children: [] +- id: script + name: Script Size + children: + - id: script-example + name: Example + children: [] + - id: script-parameters + name: Parameters + children: + - id: script-parameters-body + name: body + children: [] + - id: script-parameters-cramped + name: cramped + children: [] +- id: sscript + name: Script-Script Size + children: + - id: sscript-example + name: Example + children: [] + - id: sscript-parameters + name: Parameters + children: + - id: sscript-parameters-body + name: body + children: [] + - id: sscript-parameters-cramped + name: cramped + children: [] +body: + kind: funcs + content: + name: sizes + display: Sizes + details: |- +

Forced size styles for expressions within formulas.

+

These functions allow manual configuration of the size of equation elements + to make them look as in a display/inline equation or as if used in a root or + sub/superscripts.

+ functions: + - path: + - display + display: Display Size + keywords: null + oneliner: Forced display style in math. + element: false + details: |- +

Forced display style in math.

+

This is the normal size for block equations.

+

Example

+
$sum_i x_i/2 = display(sum_i x_i/2)$
+        
Preview
+ params: + - name: body + details:

The content to size.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: cramped + details: |- +

Whether to impose a height restriction for exponents, like regular sub- + and superscripts do.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - inline + display: Inline Size + keywords: null + oneliner: Forced inline (text) style in math. + element: false + details: |- +

Forced inline (text) style in math.

+

This is the normal size for inline equations.

+

Example

+
$ sum_i x_i/2
+            = inline(sum_i x_i/2) $
+        
Preview
+ params: + - name: body + details:

The content to size.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: cramped + details: |- +

Whether to impose a height restriction for exponents, like regular sub- + and superscripts do.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - script + display: Script Size + keywords: null + oneliner: Forced script style in math. + element: false + details: |- +

Forced script style in math.

+

This is the smaller size used in powers or sub- or superscripts.

+

Example

+
$sum_i x_i/2 = script(sum_i x_i/2)$
+        
Preview
+ params: + - name: body + details:

The content to size.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: cramped + details: |- +

Whether to impose a height restriction for exponents, like regular sub- + and superscripts do.

+ example: null + types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - sscript + display: Script-Script Size + keywords: null + oneliner: Forced second script style in math. + element: false + details: |- +

Forced second script style in math.

+

This is the smallest size, used in second-level sub- and superscripts + (script of the script).

+

Example

+
$sum_i x_i/2 = sscript(sum_i x_i/2)$
+        
Preview
+ params: + - name: body + details:

The content to size.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: cramped + details: |- +

Whether to impose a height restriction for exponents, like regular sub- + and superscripts do.

+ example: null + types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/styles-en.yaml b/docs/i18n/math/styles-en.yaml index 0862df8bd4fa..039bae1f538b 100644 --- a/docs/i18n/math/styles-en.yaml +++ b/docs/i18n/math/styles-en.yaml @@ -1,134 +1,134 @@ -route: /docs/reference/math/styles/ -title: Styles -description: Documentation for styles group of functions. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: upright - name: Upright - children: - - id: upright-example - name: Example - children: [] - - id: upright-parameters - name: Parameters - children: - - id: upright-parameters-body - name: body - children: [] -- id: italic - name: Italic - children: - - id: italic-parameters - name: Parameters - children: - - id: italic-parameters-body - name: body - children: [] -- id: bold - name: Bold - children: - - id: bold-example - name: Example - children: [] - - id: bold-parameters - name: Parameters - children: - - id: bold-parameters-body - name: body - children: [] -body: - kind: funcs - content: - name: styles - display: Styles - details: |- -

Alternate letterforms within formulas.

-

These functions are distinct from the text function because - math fonts contain multiple variants of each letter.

- functions: - - path: - - upright - display: Upright - keywords: null - oneliner: Upright (non-italic) font style in math. - element: false - details: |- -

Upright (non-italic) font style in math.

-

Example

-
$ upright(A) != A $
-        
Preview
- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - italic - display: Italic - keywords: null - oneliner: Italic font style in math. - element: false - details: |- -

Italic font style in math.

-

For roman letters and greek lowercase letters, this is already the default.

- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - bold - display: Bold - keywords: null - oneliner: Bold font style in math. - element: false - details: |- -

Bold font style in math.

-

Example

-
$ bold(A) := B^+ $
-        
Preview
- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/styles/ +title: Styles +description: Documentation for styles group of functions. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: upright + name: Upright + children: + - id: upright-example + name: Example + children: [] + - id: upright-parameters + name: Parameters + children: + - id: upright-parameters-body + name: body + children: [] +- id: italic + name: Italic + children: + - id: italic-parameters + name: Parameters + children: + - id: italic-parameters-body + name: body + children: [] +- id: bold + name: Bold + children: + - id: bold-example + name: Example + children: [] + - id: bold-parameters + name: Parameters + children: + - id: bold-parameters-body + name: body + children: [] +body: + kind: funcs + content: + name: styles + display: Styles + details: |- +

Alternate letterforms within formulas.

+

These functions are distinct from the text function because + math fonts contain multiple variants of each letter.

+ functions: + - path: + - upright + display: Upright + keywords: null + oneliner: Upright (non-italic) font style in math. + element: false + details: |- +

Upright (non-italic) font style in math.

+

Example

+
$ upright(A) != A $
+        
Preview
+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - italic + display: Italic + keywords: null + oneliner: Italic font style in math. + element: false + details: |- +

Italic font style in math.

+

For roman letters and greek lowercase letters, this is already the default.

+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - bold + display: Bold + keywords: null + oneliner: Bold font style in math. + element: false + details: |- +

Bold font style in math.

+

Example

+
$ bold(A) := B^+ $
+        
Preview
+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/underover-en.yaml b/docs/i18n/math/underover-en.yaml index 5e04c6070d9e..52704d71dd09 100644 --- a/docs/i18n/math/underover-en.yaml +++ b/docs/i18n/math/underover-en.yaml @@ -1,323 +1,323 @@ -route: /docs/reference/math/underover/ -title: Under/Over -description: Documentation for underover group of functions. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: underline - name: Underline - children: - - id: underline-example - name: Example - children: [] - - id: underline-parameters - name: Parameters - children: - - id: underline-parameters-body - name: body - children: [] -- id: overline - name: Overline - children: - - id: overline-example - name: Example - children: [] - - id: overline-parameters - name: Parameters - children: - - id: overline-parameters-body - name: body - children: [] -- id: underbrace - name: Underbrace - children: - - id: underbrace-example - name: Example - children: [] - - id: underbrace-parameters - name: Parameters - children: - - id: underbrace-parameters-body - name: body - children: [] - - id: underbrace-parameters-annotation - name: annotation - children: [] -- id: overbrace - name: Overbrace - children: - - id: overbrace-example - name: Example - children: [] - - id: overbrace-parameters - name: Parameters - children: - - id: overbrace-parameters-body - name: body - children: [] - - id: overbrace-parameters-annotation - name: annotation - children: [] -- id: underbracket - name: Underbracket - children: - - id: underbracket-example - name: Example - children: [] - - id: underbracket-parameters - name: Parameters - children: - - id: underbracket-parameters-body - name: body - children: [] - - id: underbracket-parameters-annotation - name: annotation - children: [] -- id: overbracket - name: Overbracket - children: - - id: overbracket-example - name: Example - children: [] - - id: overbracket-parameters - name: Parameters - children: - - id: overbracket-parameters-body - name: body - children: [] - - id: overbracket-parameters-annotation - name: annotation - children: [] -body: - kind: funcs - content: - name: underover - display: Under/Over - details: |- -

Delimiters above or below parts of an equation.

-

The braces and brackets further allow you to add an optional annotation - below or above themselves.

- functions: - - path: - - underline - display: Underline - keywords: null - oneliner: A horizontal line under content. - element: true - details: |- -

A horizontal line under content.

-

Example

-
$ underline(1 + 2 + ... + 5) $
-        
Preview
- params: - - name: body - details:

The content above the line.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - overline - display: Overline - keywords: null - oneliner: A horizontal line over content. - element: true - details: |- -

A horizontal line over content.

-

Example

-
$ overline(1 + 2 + ... + 5) $
-        
Preview
- params: - - name: body - details:

The content below the line.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - underbrace - display: Underbrace - keywords: null - oneliner: A horizontal brace under content, with an optional annotation below. - element: true - details: |- -

A horizontal brace under content, with an optional annotation below.

-

Example

-
$ underbrace(1 + 2 + ... + 5, "numbers") $
-        
Preview
- params: - - name: body - details:

The content above the brace.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: annotation - details:

The optional content below the brace.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] - - path: - - overbrace - display: Overbrace - keywords: null - oneliner: A horizontal brace over content, with an optional annotation above. - element: true - details: |- -

A horizontal brace over content, with an optional annotation above.

-

Example

-
$ overbrace(1 + 2 + ... + 5, "numbers") $
-        
Preview
- params: - - name: body - details:

The content below the brace.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: annotation - details:

The optional content above the brace.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] - - path: - - underbracket - display: Underbracket - keywords: null - oneliner: A horizontal bracket under content, with an optional annotation below. - element: true - details: |- -

A horizontal bracket under content, with an optional annotation below.

-

Example

-
$ underbracket(1 + 2 + ... + 5, "numbers") $
-        
Preview
- params: - - name: body - details:

The content above the bracket.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: annotation - details:

The optional content below the bracket.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] - - path: - - overbracket - display: Overbracket - keywords: null - oneliner: A horizontal bracket over content, with an optional annotation above. - element: true - details: |- -

A horizontal bracket over content, with an optional annotation above.

-

Example

-
$ overbracket(1 + 2 + ... + 5, "numbers") $
-        
Preview
- params: - - name: body - details:

The content below the bracket.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: annotation - details:

The optional content above the bracket.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/underover/ +title: Under/Over +description: Documentation for underover group of functions. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: underline + name: Underline + children: + - id: underline-example + name: Example + children: [] + - id: underline-parameters + name: Parameters + children: + - id: underline-parameters-body + name: body + children: [] +- id: overline + name: Overline + children: + - id: overline-example + name: Example + children: [] + - id: overline-parameters + name: Parameters + children: + - id: overline-parameters-body + name: body + children: [] +- id: underbrace + name: Underbrace + children: + - id: underbrace-example + name: Example + children: [] + - id: underbrace-parameters + name: Parameters + children: + - id: underbrace-parameters-body + name: body + children: [] + - id: underbrace-parameters-annotation + name: annotation + children: [] +- id: overbrace + name: Overbrace + children: + - id: overbrace-example + name: Example + children: [] + - id: overbrace-parameters + name: Parameters + children: + - id: overbrace-parameters-body + name: body + children: [] + - id: overbrace-parameters-annotation + name: annotation + children: [] +- id: underbracket + name: Underbracket + children: + - id: underbracket-example + name: Example + children: [] + - id: underbracket-parameters + name: Parameters + children: + - id: underbracket-parameters-body + name: body + children: [] + - id: underbracket-parameters-annotation + name: annotation + children: [] +- id: overbracket + name: Overbracket + children: + - id: overbracket-example + name: Example + children: [] + - id: overbracket-parameters + name: Parameters + children: + - id: overbracket-parameters-body + name: body + children: [] + - id: overbracket-parameters-annotation + name: annotation + children: [] +body: + kind: funcs + content: + name: underover + display: Under/Over + details: |- +

Delimiters above or below parts of an equation.

+

The braces and brackets further allow you to add an optional annotation + below or above themselves.

+ functions: + - path: + - underline + display: Underline + keywords: null + oneliner: A horizontal line under content. + element: true + details: |- +

A horizontal line under content.

+

Example

+
$ underline(1 + 2 + ... + 5) $
+        
Preview
+ params: + - name: body + details:

The content above the line.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - overline + display: Overline + keywords: null + oneliner: A horizontal line over content. + element: true + details: |- +

A horizontal line over content.

+

Example

+
$ overline(1 + 2 + ... + 5) $
+        
Preview
+ params: + - name: body + details:

The content below the line.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - underbrace + display: Underbrace + keywords: null + oneliner: A horizontal brace under content, with an optional annotation below. + element: true + details: |- +

A horizontal brace under content, with an optional annotation below.

+

Example

+
$ underbrace(1 + 2 + ... + 5, "numbers") $
+        
Preview
+ params: + - name: body + details:

The content above the brace.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: annotation + details:

The optional content below the brace.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] + - path: + - overbrace + display: Overbrace + keywords: null + oneliner: A horizontal brace over content, with an optional annotation above. + element: true + details: |- +

A horizontal brace over content, with an optional annotation above.

+

Example

+
$ overbrace(1 + 2 + ... + 5, "numbers") $
+        
Preview
+ params: + - name: body + details:

The content below the brace.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: annotation + details:

The optional content above the brace.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] + - path: + - underbracket + display: Underbracket + keywords: null + oneliner: A horizontal bracket under content, with an optional annotation below. + element: true + details: |- +

A horizontal bracket under content, with an optional annotation below.

+

Example

+
$ underbracket(1 + 2 + ... + 5, "numbers") $
+        
Preview
+ params: + - name: body + details:

The content above the bracket.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: annotation + details:

The optional content below the bracket.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] + - path: + - overbracket + display: Overbracket + keywords: null + oneliner: A horizontal bracket over content, with an optional annotation above. + element: true + details: |- +

A horizontal bracket over content, with an optional annotation above.

+

Example

+
$ overbracket(1 + 2 + ... + 5, "numbers") $
+        
Preview
+ params: + - name: body + details:

The content below the bracket.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: annotation + details:

The optional content above the bracket.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/variants-en.yaml b/docs/i18n/math/variants-en.yaml index 84cb6d7f751c..68dedb93df9b 100644 --- a/docs/i18n/math/variants-en.yaml +++ b/docs/i18n/math/variants-en.yaml @@ -1,258 +1,258 @@ -route: /docs/reference/math/variants/ -title: Variants -description: Documentation for variants group of functions. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: serif - name: Serif - children: - - id: serif-parameters - name: Parameters - children: - - id: serif-parameters-body - name: body - children: [] -- id: sans - name: Sans-serif - children: - - id: sans-example - name: Example - children: [] - - id: sans-parameters - name: Parameters - children: - - id: sans-parameters-body - name: body - children: [] -- id: frak - name: Fraktur - children: - - id: frak-example - name: Example - children: [] - - id: frak-parameters - name: Parameters - children: - - id: frak-parameters-body - name: body - children: [] -- id: mono - name: Monospace - children: - - id: mono-example - name: Example - children: [] - - id: mono-parameters - name: Parameters - children: - - id: mono-parameters-body - name: body - children: [] -- id: bb - name: Blackboard Bold - children: - - id: bb-example - name: Example - children: [] - - id: bb-parameters - name: Parameters - children: - - id: bb-parameters-body - name: body - children: [] -- id: cal - name: Calligraphic - children: - - id: cal-example - name: Example - children: [] - - id: cal-parameters - name: Parameters - children: - - id: cal-parameters-body - name: body - children: [] -body: - kind: funcs - content: - name: variants - display: Variants - details: |- -

Alternate typefaces within formulas.

-

These functions are distinct from the text function because - math fonts contain multiple variants of each letter.

- functions: - - path: - - serif - display: Serif - keywords: null - oneliner: Serif (roman) font style in math. - element: false - details: |- -

Serif (roman) font style in math.

-

This is already the default.

- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - sans - display: Sans-serif - keywords: null - oneliner: Sans-serif font style in math. - element: false - details: |- -

Sans-serif font style in math.

-

Example

-
$ sans(A B C) $
-        
Preview
- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - frak - display: Fraktur - keywords: null - oneliner: Fraktur font style in math. - element: false - details: |- -

Fraktur font style in math.

-

Example

-
$ frak(P) $
-        
Preview
- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - mono - display: Monospace - keywords: null - oneliner: Monospace font style in math. - element: false - details: |- -

Monospace font style in math.

-

Example

-
$ mono(x + y = z) $
-        
Preview
- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - bb - display: Blackboard Bold - keywords: null - oneliner: Blackboard bold (double-struck) font style in math. - element: false - details: |- -

Blackboard bold (double-struck) font style in math.

-

For uppercase latin letters, blackboard bold is additionally available - through symbols of the form NN and RR.

-

Example

-
$ bb(b) $
-        $ bb(N) = NN $
-        $ f: NN -> RR $
-        
Preview
- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] - - path: - - cal - display: Calligraphic - keywords: null - oneliner: Calligraphic font style in math. - element: false - details: |- -

Calligraphic font style in math.

-

Example

-
Let $cal(P)$ be the set of ...
-        
Preview
- params: - - name: body - details:

The content to style.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/variants/ +title: Variants +description: Documentation for variants group of functions. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: serif + name: Serif + children: + - id: serif-parameters + name: Parameters + children: + - id: serif-parameters-body + name: body + children: [] +- id: sans + name: Sans-serif + children: + - id: sans-example + name: Example + children: [] + - id: sans-parameters + name: Parameters + children: + - id: sans-parameters-body + name: body + children: [] +- id: frak + name: Fraktur + children: + - id: frak-example + name: Example + children: [] + - id: frak-parameters + name: Parameters + children: + - id: frak-parameters-body + name: body + children: [] +- id: mono + name: Monospace + children: + - id: mono-example + name: Example + children: [] + - id: mono-parameters + name: Parameters + children: + - id: mono-parameters-body + name: body + children: [] +- id: bb + name: Blackboard Bold + children: + - id: bb-example + name: Example + children: [] + - id: bb-parameters + name: Parameters + children: + - id: bb-parameters-body + name: body + children: [] +- id: cal + name: Calligraphic + children: + - id: cal-example + name: Example + children: [] + - id: cal-parameters + name: Parameters + children: + - id: cal-parameters-body + name: body + children: [] +body: + kind: funcs + content: + name: variants + display: Variants + details: |- +

Alternate typefaces within formulas.

+

These functions are distinct from the text function because + math fonts contain multiple variants of each letter.

+ functions: + - path: + - serif + display: Serif + keywords: null + oneliner: Serif (roman) font style in math. + element: false + details: |- +

Serif (roman) font style in math.

+

This is already the default.

+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - sans + display: Sans-serif + keywords: null + oneliner: Sans-serif font style in math. + element: false + details: |- +

Sans-serif font style in math.

+

Example

+
$ sans(A B C) $
+        
Preview
+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - frak + display: Fraktur + keywords: null + oneliner: Fraktur font style in math. + element: false + details: |- +

Fraktur font style in math.

+

Example

+
$ frak(P) $
+        
Preview
+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - mono + display: Monospace + keywords: null + oneliner: Monospace font style in math. + element: false + details: |- +

Monospace font style in math.

+

Example

+
$ mono(x + y = z) $
+        
Preview
+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - bb + display: Blackboard Bold + keywords: null + oneliner: Blackboard bold (double-struck) font style in math. + element: false + details: |- +

Blackboard bold (double-struck) font style in math.

+

For uppercase latin letters, blackboard bold is additionally available + through symbols of the form NN and RR.

+

Example

+
$ bb(b) $
+        $ bb(N) = NN $
+        $ f: NN -> RR $
+        
Preview
+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] + - path: + - cal + display: Calligraphic + keywords: null + oneliner: Calligraphic font style in math. + element: false + details: |- +

Calligraphic font style in math.

+

Example

+
Let $cal(P)$ be the set of ...
+        
Preview
+ params: + - name: body + details:

The content to style.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/math/vec-en.yaml b/docs/i18n/math/vec-en.yaml index 726066ed9d17..bf923aae29bb 100644 --- a/docs/i18n/math/vec-en.yaml +++ b/docs/i18n/math/vec-en.yaml @@ -1,80 +1,80 @@ -route: /docs/reference/math/vec/ -title: Vector -description: Documentation for the `vec` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-delim - name: delim - children: [] - - id: parameters-children - name: children - children: [] -body: - kind: func - content: - path: - - vec - display: Vector - keywords: null - oneliner: A column vector. - element: true - details: |- -

A column vector.

-

Content in the vector's elements can be aligned with the & symbol.

-

Example

-
$ vec(a, b, c) dot vec(1, 2, 3)
-          = a + 2b + 3c $
-      
Preview
- params: - - name: delim - details:

The delimiter to use.

- example: |- -
#set math.vec(delim: "[")
-        $ vec(1, 2) $
-        
Preview
- types: - - none - - string - strings: - - string: ( - details:

Delimit with parentheses.

- - string: '[' - details:

Delimit with brackets.

- - string: '{' - details:

Delimit with curly braces.

- - string: '|' - details:

Delimit with vertical bars.

- - string: '||' - details:

Delimit with double vertical bars.

- default: "(" - positional: false - named: true - required: false - variadic: false - settable: true - - name: children - details:

The elements of the vector.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/math/vec/ +title: Vector +description: Documentation for the `vec` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-delim + name: delim + children: [] + - id: parameters-children + name: children + children: [] +body: + kind: func + content: + path: + - vec + display: Vector + keywords: null + oneliner: A column vector. + element: true + details: |- +

A column vector.

+

Content in the vector's elements can be aligned with the & symbol.

+

Example

+
$ vec(a, b, c) dot vec(1, 2, 3)
+          = a + 2b + 3c $
+      
Preview
+ params: + - name: delim + details:

The delimiter to use.

+ example: |- +
#set math.vec(delim: "[")
+        $ vec(1, 2) $
+        
Preview
+ types: + - none + - string + strings: + - string: ( + details:

Delimit with parentheses.

+ - string: '[' + details:

Delimit with brackets.

+ - string: '{' + details:

Delimit with curly braces.

+ - string: '|' + details:

Delimit with vertical bars.

+ - string: '||' + details:

Delimit with double vertical bars.

+ default: "(" + positional: false + named: true + required: false + variadic: false + settable: true + - name: children + details:

The elements of the vector.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/bibliography-en.yaml b/docs/i18n/meta/bibliography-en.yaml index 2794510c20bd..025f1e203ec9 100644 --- a/docs/i18n/meta/bibliography-en.yaml +++ b/docs/i18n/meta/bibliography-en.yaml @@ -1,130 +1,130 @@ -route: /docs/reference/meta/bibliography/ -title: Bibliography -description: Documentation for the `bibliography` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] - - id: parameters-title - name: title - children: [] - - id: parameters-style - name: style - children: [] -body: - kind: func - content: - path: - - bibliography - display: Bibliography - keywords: null - oneliner: A bibliography / reference listing. - element: true - details: |- -

A bibliography / reference listing.

-

You can create a new bibliography by calling this function with a path - to a bibliography file in either one of two formats:

-
    -
  • A Hayagriva .yml file. Hayagriva is a new bibliography file format - designed for use with Typst. Visit its - documentation - for more details.
  • -
  • A BibLaTeX .bib file.
  • -
-

As soon as you add a bibliography somewhere in your document, you can start - citing things with reference syntax (@key) or explicit calls to the - citation function (#cite("key")). The bibliography will - only show entries for works that were referenced in the document.

-

Example

-
This was already noted by
-      pirates long ago. @arrgh
-
-      Multiple sources say ...
-      #cite("arrgh", "netwok").
-
-      #bibliography("works.bib")
-      
Preview
- params: - - name: path - details:

Path to a Hayagriva .yml or BibLaTeX .bib - file.

- example: null - types: - - string - - array - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: title - details: |- -

The title of the bibliography.

-
    -
  • When set to auto, an appropriate title for the text - language will be used. This is the default.
  • -
  • When set to none, the bibliography will not have a title.
  • -
  • A custom title can be set by passing content.
  • -
-

The bibliography's heading will not be numbered by default, but you can - force it to be with a show-set rule: - show bibliography: set heading(numbering: "1.")

-

-      example: null
-      types:
-      - none
-      - auto
-      - content
-      strings: []
-      default: auto
-      positional: false
-      named: true
-      required: false
-      variadic: false
-      settable: true
-    - name: style
-      details: 

The bibliography style.

- example: null - types: - - string - strings: - - string: apa - details: |- -

Follows guidance of the American Psychological Association. Based on the - 7th edition of the APA Publication Manual.

- - string: chicago-author-date - details: |- -

The Chicago Author Date style. Based on the 17th edition of the Chicago - Manual of Style, Chapter 15.

- - string: chicago-notes - details: |- -

The Chicago Notes style. Based on the 17th edition of the Chicago - Manual of Style, Chapter 14.

- - string: ieee - details: |- -

The style of the Institute of Electrical and Electronics Engineers. - Based on the 2018 IEEE Reference Guide.

- - string: mla - details: |- -

Follows guidance of the Modern Language Association. Based on the 8th - edition of the MLA Handbook.

- default: "ieee" - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/bibliography/ +title: Bibliography +description: Documentation for the `bibliography` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] + - id: parameters-title + name: title + children: [] + - id: parameters-style + name: style + children: [] +body: + kind: func + content: + path: + - bibliography + display: Bibliography + keywords: null + oneliner: A bibliography / reference listing. + element: true + details: |- +

A bibliography / reference listing.

+

You can create a new bibliography by calling this function with a path + to a bibliography file in either one of two formats:

+
    +
  • A Hayagriva .yml file. Hayagriva is a new bibliography file format + designed for use with Typst. Visit its + documentation + for more details.
  • +
  • A BibLaTeX .bib file.
  • +
+

As soon as you add a bibliography somewhere in your document, you can start + citing things with reference syntax (@key) or explicit calls to the + citation function (#cite("key")). The bibliography will + only show entries for works that were referenced in the document.

+

Example

+
This was already noted by
+      pirates long ago. @arrgh
+
+      Multiple sources say ...
+      #cite("arrgh", "netwok").
+
+      #bibliography("works.bib")
+      
Preview
+ params: + - name: path + details:

Path to a Hayagriva .yml or BibLaTeX .bib + file.

+ example: null + types: + - string + - array + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: title + details: |- +

The title of the bibliography.

+
    +
  • When set to auto, an appropriate title for the text + language will be used. This is the default.
  • +
  • When set to none, the bibliography will not have a title.
  • +
  • A custom title can be set by passing content.
  • +
+

The bibliography's heading will not be numbered by default, but you can + force it to be with a show-set rule: + show bibliography: set heading(numbering: "1.")

+

+      example: null
+      types:
+      - none
+      - auto
+      - content
+      strings: []
+      default: auto
+      positional: false
+      named: true
+      required: false
+      variadic: false
+      settable: true
+    - name: style
+      details: 

The bibliography style.

+ example: null + types: + - string + strings: + - string: apa + details: |- +

Follows guidance of the American Psychological Association. Based on the + 7th edition of the APA Publication Manual.

+ - string: chicago-author-date + details: |- +

The Chicago Author Date style. Based on the 17th edition of the Chicago + Manual of Style, Chapter 15.

+ - string: chicago-notes + details: |- +

The Chicago Notes style. Based on the 17th edition of the Chicago + Manual of Style, Chapter 14.

+ - string: ieee + details: |- +

The style of the Institute of Electrical and Electronics Engineers. + Based on the 2018 IEEE Reference Guide.

+ - string: mla + details: |- +

Follows guidance of the Modern Language Association. Based on the 8th + edition of the MLA Handbook.

+ default: "ieee" + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/cite-en.yaml b/docs/i18n/meta/cite-en.yaml index c1790d0e4c47..de0b9e97e7ca 100644 --- a/docs/i18n/meta/cite-en.yaml +++ b/docs/i18n/meta/cite-en.yaml @@ -1,154 +1,154 @@ -route: /docs/reference/meta/cite/ -title: Citation -description: Documentation for the `cite` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-keys - name: keys - children: [] - - id: parameters-supplement - name: supplement - children: [] - - id: parameters-brackets - name: brackets - children: [] - - id: parameters-style - name: style - children: [] -body: - kind: func - content: - path: - - cite - display: Citation - keywords: null - oneliner: Cite a work from the bibliography. - element: true - details: |- -

Cite a work from the bibliography.

-

Before you starting citing, you need to add a - bibliography somewhere in your document.

-

Example

-
This was already noted by
-      pirates long ago. @arrgh
-
-      Multiple sources say ...
-      #cite("arrgh", "netwok").
-
-      #bibliography("works.bib")
-      
Preview
-

Syntax

-

This function indirectly has dedicated syntax. References - can be used to cite works from the bibliography. The label then - corresponds to the citation key.

- params: - - name: keys - details: |- -

The citation keys that identify the elements that shall be cited in - the bibliography.

-

Reference syntax supports only a single key.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - - name: supplement - details: |- -

A supplement for the citation such as page or chapter number.

-

In reference syntax, the supplement can be added in square brackets:

- example: |- -
This has been proven over and
-        over again. @distress[p.~7]
-
-        #bibliography("works.bib")
-        
Preview
- types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - - name: brackets - details:

Whether the citation should include brackets.

- example: |- -
#set cite(brackets: false)
-
-        @netwok follow these methods
-        in their work ...
-
-        #bibliography(
-          "works.bib",
-          style: "chicago-author-date",
-        )
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: style - details: |- -

The citation style.

-

When set to auto, automatically picks the preferred citation style - for the bibliography's style.

- example: |- -
#set cite(style: "alphanumerical")
-        Alphanumerical references.
-        @netwok
-
-        #bibliography("works.bib")
-        
Preview
- types: - - auto - - string - strings: - - string: numerical - details:

IEEE-style numerical reference markers.

- - string: alphanumerical - details: |- -

A simple alphanumerical style. For example, the output could be Rass97 - or MKG+21.

- - string: keys - details:

Citations that just consist of the entry keys.

- - string: chicago-author-date - details: |- -

The Chicago Author Date style. Based on the 17th edition of the Chicago - Manual of Style, Chapter 15.

- - string: chicago-notes - details: |- -

The Chicago Notes style. Based on the 17th edition of the Chicago - Manual of Style, Chapter 14.

- - string: chicago-author-title - details: |- -

A Chicago-like author-title format. Results could look like this: - Prokopov, “It Is Fast or It Is Wrong”.

- default: auto - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/cite/ +title: Citation +description: Documentation for the `cite` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-keys + name: keys + children: [] + - id: parameters-supplement + name: supplement + children: [] + - id: parameters-brackets + name: brackets + children: [] + - id: parameters-style + name: style + children: [] +body: + kind: func + content: + path: + - cite + display: Citation + keywords: null + oneliner: Cite a work from the bibliography. + element: true + details: |- +

Cite a work from the bibliography.

+

Before you starting citing, you need to add a + bibliography somewhere in your document.

+

Example

+
This was already noted by
+      pirates long ago. @arrgh
+
+      Multiple sources say ...
+      #cite("arrgh", "netwok").
+
+      #bibliography("works.bib")
+      
Preview
+

Syntax

+

This function indirectly has dedicated syntax. References + can be used to cite works from the bibliography. The label then + corresponds to the citation key.

+ params: + - name: keys + details: |- +

The citation keys that identify the elements that shall be cited in + the bibliography.

+

Reference syntax supports only a single key.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + - name: supplement + details: |- +

A supplement for the citation such as page or chapter number.

+

In reference syntax, the supplement can be added in square brackets:

+ example: |- +
This has been proven over and
+        over again. @distress[p.~7]
+
+        #bibliography("works.bib")
+        
Preview
+ types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + - name: brackets + details:

Whether the citation should include brackets.

+ example: |- +
#set cite(brackets: false)
+
+        @netwok follow these methods
+        in their work ...
+
+        #bibliography(
+          "works.bib",
+          style: "chicago-author-date",
+        )
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: style + details: |- +

The citation style.

+

When set to auto, automatically picks the preferred citation style + for the bibliography's style.

+ example: |- +
#set cite(style: "alphanumerical")
+        Alphanumerical references.
+        @netwok
+
+        #bibliography("works.bib")
+        
Preview
+ types: + - auto + - string + strings: + - string: numerical + details:

IEEE-style numerical reference markers.

+ - string: alphanumerical + details: |- +

A simple alphanumerical style. For example, the output could be Rass97 + or MKG+21.

+ - string: keys + details:

Citations that just consist of the entry keys.

+ - string: chicago-author-date + details: |- +

The Chicago Author Date style. Based on the 17th edition of the Chicago + Manual of Style, Chapter 15.

+ - string: chicago-notes + details: |- +

The Chicago Notes style. Based on the 17th edition of the Chicago + Manual of Style, Chapter 14.

+ - string: chicago-author-title + details: |- +

A Chicago-like author-title format. Results could look like this: + Prokopov, “It Is Fast or It Is Wrong”.

+ default: auto + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/counter-en.yaml b/docs/i18n/meta/counter-en.yaml index 22a8f4c08329..7fe507ad974e 100644 --- a/docs/i18n/meta/counter-en.yaml +++ b/docs/i18n/meta/counter-en.yaml @@ -1,417 +1,417 @@ -route: /docs/reference/meta/counter/ -title: Counter -description: Documentation for the `counter` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: displaying - name: Displaying - children: [] -- id: modifying - name: Modifying - children: [] -- id: custom-counters - name: Custom Counters - children: [] -- id: how-to-step - name: How To Step - children: [] -- id: page-counter - name: Page Counter - children: [] -- id: time-travel - name: Time Travel - children: [] -- id: other-state - name: Other State - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-key - name: key - children: [] -- id: methods - name: Methods - children: - - id: methods-display - name: display - children: - - id: methods-display-parameters-numbering - name: numbering - children: [] - - id: methods-display-parameters-both - name: both - children: [] - - id: methods-step - name: step - children: - - id: methods-step-parameters-level - name: level - children: [] - - id: methods-update - name: update - children: - - id: methods-update-parameters-value - name: value - children: [] - - id: methods-at - name: at - children: - - id: methods-at-parameters-location - name: location - children: [] - - id: methods-final - name: final - children: - - id: methods-final-parameters-location - name: location - children: [] -body: - kind: func - content: - path: - - counter - display: Counter - keywords: null - oneliner: Counts through pages, elements, and more. - element: false - details: |- -

Counts through pages, elements, and more.

-

With the counter function, you can access and modify counters for pages, - headings, figures, and more. Moreover, you can define custom counters for - other things you want to count.

-

Displaying a counter

-

To display the current value of the heading counter, you call the counter - function with the key set to heading and then call the display method - on the counter. To see any output, you also have to enable heading - numbering.

-

The display method optionally takes an argument telling it how to format - the counter. This can be a numbering pattern or a - function.

-
#set heading(numbering: "1.")
-
-      = Introduction
-      Some text here.
-
-      = Background
-      The current value is:
-      #counter(heading).display()
-
-      Or in roman numerals:
-      #counter(heading).display("I")
-      
Preview
-

Modifying a counter

-

To modify a counter, you can use the step and update methods:

-
    -
  • -

    The step method increases the value of the counter by one. Because - counters can have multiple levels (in the case of headings for sections, - subsections, and so on), the step method optionally takes a level - argument. If given, the counter steps at the given depth.

    -
  • -
  • -

    The update method allows you to arbitrarily modify the counter. In its - basic form, you give it an integer (or multiple for multiple levels). For - more flexibility, you can instead also give it a function that gets the - current value and returns a new value.

    -
  • -
-

The heading counter is stepped before the heading is displayed, so - Analysis gets the number seven even though the counter is at six after the - second update.

-
#set heading(numbering: "1.")
-
-      = Introduction
-      #counter(heading).step()
-
-      = Background
-      #counter(heading).update(3)
-      #counter(heading).update(n => n * 2)
-
-      = Analysis
-      Let's skip 7.1.
-      #counter(heading).step(level: 2)
-
-      == Analysis
-      Still at #counter(heading).display().
-      
Preview
-

Custom counters

-

To define your own counter, call the counter function with a string as a - key. This key identifies the counter globally.

-
#let mine = counter("mycounter")
-      #mine.display() \
-      #mine.step()
-      #mine.display() \
-      #mine.update(c => c * 3)
-      #mine.display() \
-      
Preview
-

How to step

-

When you define and use a custom counter, in general, you should first step - the counter and then display it. This way, the stepping behaviour of a - counter can depend on the element it is stepped for. If you were writing a - counter for, let's say, theorems, your theorem's definition would thus first - include the counter step and only then display the counter and the theorem's - contents.

-
#let c = counter("theorem")
-      #let theorem(it) = block[
-        #c.step()
-        *Theorem #c.display():* #it
-      ]
-
-      #theorem[$1 = 1$]
-      #theorem[$2 < 3$]
-      
Preview
-

The rationale behind this is best explained on the example of the heading - counter: An update to the heading counter depends on the heading's level. - By stepping directly before the heading, we can correctly step from 1 to - 1.1 when encountering a level 2 heading. If we were to step after the - heading, we wouldn't know what to step to.

-

Because counters should always be stepped before the elements they count, - they always start at zero. This way, they are at one for the first display - (which happens after the first step).

-

Page counter

-

The page counter is special. It is automatically stepped at each pagebreak. - But like other counters, you can also step it manually. For example, you - could have Roman page numbers for your preface, then switch to Arabic page - numbers for your main content and reset the page counter to one.

-
#set page(numbering: "(i)")
-
-      = Preface
-      The preface is numbered with
-      roman numerals.
-
-      #set page(numbering: "1 / 1")
-      #counter(page).update(1)
-
-      = Main text
-      Here, the counter is reset to one.
-      We also display both the current
-      page and total number of pages in
-      Arabic numbers.
-      
Preview
-

Time travel

-

Counters can travel through time! You can find out the final value of the - counter before it is reached and even determine what the value was at any - particular location in the document.

-
#let mine = counter("mycounter")
-
-      = Values
-      #locate(loc => {
-        let start-val = mine.at(loc)
-        let elements = query(<intro>, loc)
-        let intro-val = mine.at(
-          elements.first().location()
-        )
-        let final-val = mine.final(loc)
-        [Starts as: #start-val \
-         Value at intro is: #intro-val \
-         Final value is: #final-val \ ]
-      })
-
-      #mine.update(n => n + 3)
-
-      = Introduction <intro>
-      #lorem(10)
-
-      #mine.step()
-      #mine.step()
-      
Preview
-

Let's dissect what happens in the example above:

-
    -
  • -

    We call locate to get access to the current location in - the document. We then pass this location to our counter's at method to - get its value at the current location. The at method always returns an - array because counters can have multiple levels. As the counter starts at - one, the first value is thus (1,).

    -
  • -
  • -

    We now query the document for all elements with the - <intro> label. The result is an array from which we extract the first - (and only) element's location. We then look up - the value of the counter at that location. The first update to the counter - sets it to 1 + 3 = 4. At the introduction heading, the value is thus - (4,).

    -
  • -
  • -

    Last but not least, we call the final method on the counter. It tells us - what the counter's value will be at the end of the document. We also need - to give it a location to prove that we are inside of a locate call, but - which one doesn't matter. After the heading follow two calls to step(), - so the final value is (6,).

    -
  • -
-

Other kinds of state

-

The counter function is closely related to state function. - Read its documentation for more details on state management in Typst and - why it doesn't just use normal variables for counters.

- params: - - name: key - details: |- -

The key that identifies this counter.

-
    -
  • If it is a string, creates a custom counter that is only affected by - manual updates,
  • -
  • If this is a <label>, counts through all elements with that label,
  • -
  • If this is an element function or selector, counts through its elements,
  • -
  • If this is the page function, counts through pages.
  • -
- example: null - types: - - string - - label - - function - - selector - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - counter - methods: - - name: display - details:

Displays the value of the counter.

- params: - - name: numbering - details: |- -

A numbering pattern or a function, which specifies how - to display the counter. If given a function, that function receives each - number of the counter as a separate argument. If the amount of numbers - varies, e.g. for the heading argument, you can use an - argument sink.

-

If this is omitted, displays the counter with the numbering style for the - counted element or with the pattern "1.1" if no such style exists.

- example: null - types: - - string - - function - strings: [] - default: null - positional: true - named: false - required: false - variadic: false - settable: false - - name: both - details: |- -

If enabled, displays the current and final top-level count together. Both - can be styled through a single numbering pattern. This is used by the page - numbering property to display the current and total number of pages when a - pattern like "1 / 1" is given.

- example: null - types: - - boolean - strings: [] - default: null - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - content - - name: step - details: |- -

Increases the value of the counter by one.

-

The update will be in effect at the position where the returned content is - inserted into the document. If you don't put the output into the document, - nothing happens! This would be the case, for example, if you write - let _ = counter(page).step(). Counter updates are always applied in - layout order and in that case, Typst wouldn't know when to step the counter.

- params: - - name: level - details:

The depth at which to step the counter. Defaults to 1.

- example: null - types: - - integer - strings: [] - default: null - positional: false - named: true - required: false - variadic: false - settable: false - returns: - - content - - name: update - details: |- -

Updates the value of the counter.

-

Just like with step, the update only occurs if you put the resulting - content into the document.

- params: - - name: value - details: |- -

If given an integer or array of integers, sets the counter to that value. - If given a function, that function receives the previous counter value - (with each number as a separate argument) and has to return the new - value (integer or array).

- example: null - types: - - integer - - array - - function - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - - name: at - details: |- -

Gets the value of the counter at the given location. Always returns an - array of integers, even if the counter has just one number.

- params: - - name: location - details: |- -

The location at which the counter value should be retrieved. A suitable - location can be retrieved from locate or - query.

- example: null - types: - - location - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - array - - name: final - details: |- -

Gets the value of the counter at the end of the document. Always returns an - array of integers, even if the counter has just one number.

- params: - - name: location - details: |- -

Can be any location. Why is it required then? Typst has to evaluate parts - of your code multiple times to determine all counter values. By only - allowing this method within locate calls, the amount of - code that can depend on the method's result is reduced. If you could call - final directly at the top level of a module, the evaluation of the whole - module and its exports could depend on the counter's value.

- example: null - types: - - location - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - array - scope: [] -children: [] +route: /docs/reference/meta/counter/ +title: Counter +description: Documentation for the `counter` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: displaying + name: Displaying + children: [] +- id: modifying + name: Modifying + children: [] +- id: custom-counters + name: Custom Counters + children: [] +- id: how-to-step + name: How To Step + children: [] +- id: page-counter + name: Page Counter + children: [] +- id: time-travel + name: Time Travel + children: [] +- id: other-state + name: Other State + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-key + name: key + children: [] +- id: methods + name: Methods + children: + - id: methods-display + name: display + children: + - id: methods-display-parameters-numbering + name: numbering + children: [] + - id: methods-display-parameters-both + name: both + children: [] + - id: methods-step + name: step + children: + - id: methods-step-parameters-level + name: level + children: [] + - id: methods-update + name: update + children: + - id: methods-update-parameters-value + name: value + children: [] + - id: methods-at + name: at + children: + - id: methods-at-parameters-location + name: location + children: [] + - id: methods-final + name: final + children: + - id: methods-final-parameters-location + name: location + children: [] +body: + kind: func + content: + path: + - counter + display: Counter + keywords: null + oneliner: Counts through pages, elements, and more. + element: false + details: |- +

Counts through pages, elements, and more.

+

With the counter function, you can access and modify counters for pages, + headings, figures, and more. Moreover, you can define custom counters for + other things you want to count.

+

Displaying a counter

+

To display the current value of the heading counter, you call the counter + function with the key set to heading and then call the display method + on the counter. To see any output, you also have to enable heading + numbering.

+

The display method optionally takes an argument telling it how to format + the counter. This can be a numbering pattern or a + function.

+
#set heading(numbering: "1.")
+
+      = Introduction
+      Some text here.
+
+      = Background
+      The current value is:
+      #counter(heading).display()
+
+      Or in roman numerals:
+      #counter(heading).display("I")
+      
Preview
+

Modifying a counter

+

To modify a counter, you can use the step and update methods:

+
    +
  • +

    The step method increases the value of the counter by one. Because + counters can have multiple levels (in the case of headings for sections, + subsections, and so on), the step method optionally takes a level + argument. If given, the counter steps at the given depth.

    +
  • +
  • +

    The update method allows you to arbitrarily modify the counter. In its + basic form, you give it an integer (or multiple for multiple levels). For + more flexibility, you can instead also give it a function that gets the + current value and returns a new value.

    +
  • +
+

The heading counter is stepped before the heading is displayed, so + Analysis gets the number seven even though the counter is at six after the + second update.

+
#set heading(numbering: "1.")
+
+      = Introduction
+      #counter(heading).step()
+
+      = Background
+      #counter(heading).update(3)
+      #counter(heading).update(n => n * 2)
+
+      = Analysis
+      Let's skip 7.1.
+      #counter(heading).step(level: 2)
+
+      == Analysis
+      Still at #counter(heading).display().
+      
Preview
+

Custom counters

+

To define your own counter, call the counter function with a string as a + key. This key identifies the counter globally.

+
#let mine = counter("mycounter")
+      #mine.display() \
+      #mine.step()
+      #mine.display() \
+      #mine.update(c => c * 3)
+      #mine.display() \
+      
Preview
+

How to step

+

When you define and use a custom counter, in general, you should first step + the counter and then display it. This way, the stepping behaviour of a + counter can depend on the element it is stepped for. If you were writing a + counter for, let's say, theorems, your theorem's definition would thus first + include the counter step and only then display the counter and the theorem's + contents.

+
#let c = counter("theorem")
+      #let theorem(it) = block[
+        #c.step()
+        *Theorem #c.display():* #it
+      ]
+
+      #theorem[$1 = 1$]
+      #theorem[$2 < 3$]
+      
Preview
+

The rationale behind this is best explained on the example of the heading + counter: An update to the heading counter depends on the heading's level. + By stepping directly before the heading, we can correctly step from 1 to + 1.1 when encountering a level 2 heading. If we were to step after the + heading, we wouldn't know what to step to.

+

Because counters should always be stepped before the elements they count, + they always start at zero. This way, they are at one for the first display + (which happens after the first step).

+

Page counter

+

The page counter is special. It is automatically stepped at each pagebreak. + But like other counters, you can also step it manually. For example, you + could have Roman page numbers for your preface, then switch to Arabic page + numbers for your main content and reset the page counter to one.

+
#set page(numbering: "(i)")
+
+      = Preface
+      The preface is numbered with
+      roman numerals.
+
+      #set page(numbering: "1 / 1")
+      #counter(page).update(1)
+
+      = Main text
+      Here, the counter is reset to one.
+      We also display both the current
+      page and total number of pages in
+      Arabic numbers.
+      
Preview
+

Time travel

+

Counters can travel through time! You can find out the final value of the + counter before it is reached and even determine what the value was at any + particular location in the document.

+
#let mine = counter("mycounter")
+
+      = Values
+      #locate(loc => {
+        let start-val = mine.at(loc)
+        let elements = query(<intro>, loc)
+        let intro-val = mine.at(
+          elements.first().location()
+        )
+        let final-val = mine.final(loc)
+        [Starts as: #start-val \
+         Value at intro is: #intro-val \
+         Final value is: #final-val \ ]
+      })
+
+      #mine.update(n => n + 3)
+
+      = Introduction <intro>
+      #lorem(10)
+
+      #mine.step()
+      #mine.step()
+      
Preview
+

Let's dissect what happens in the example above:

+
    +
  • +

    We call locate to get access to the current location in + the document. We then pass this location to our counter's at method to + get its value at the current location. The at method always returns an + array because counters can have multiple levels. As the counter starts at + one, the first value is thus (1,).

    +
  • +
  • +

    We now query the document for all elements with the + <intro> label. The result is an array from which we extract the first + (and only) element's location. We then look up + the value of the counter at that location. The first update to the counter + sets it to 1 + 3 = 4. At the introduction heading, the value is thus + (4,).

    +
  • +
  • +

    Last but not least, we call the final method on the counter. It tells us + what the counter's value will be at the end of the document. We also need + to give it a location to prove that we are inside of a locate call, but + which one doesn't matter. After the heading follow two calls to step(), + so the final value is (6,).

    +
  • +
+

Other kinds of state

+

The counter function is closely related to state function. + Read its documentation for more details on state management in Typst and + why it doesn't just use normal variables for counters.

+ params: + - name: key + details: |- +

The key that identifies this counter.

+
    +
  • If it is a string, creates a custom counter that is only affected by + manual updates,
  • +
  • If this is a <label>, counts through all elements with that label,
  • +
  • If this is an element function or selector, counts through its elements,
  • +
  • If this is the page function, counts through pages.
  • +
+ example: null + types: + - string + - label + - function + - selector + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - counter + methods: + - name: display + details:

Displays the value of the counter.

+ params: + - name: numbering + details: |- +

A numbering pattern or a function, which specifies how + to display the counter. If given a function, that function receives each + number of the counter as a separate argument. If the amount of numbers + varies, e.g. for the heading argument, you can use an + argument sink.

+

If this is omitted, displays the counter with the numbering style for the + counted element or with the pattern "1.1" if no such style exists.

+ example: null + types: + - string + - function + strings: [] + default: null + positional: true + named: false + required: false + variadic: false + settable: false + - name: both + details: |- +

If enabled, displays the current and final top-level count together. Both + can be styled through a single numbering pattern. This is used by the page + numbering property to display the current and total number of pages when a + pattern like "1 / 1" is given.

+ example: null + types: + - boolean + strings: [] + default: null + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - content + - name: step + details: |- +

Increases the value of the counter by one.

+

The update will be in effect at the position where the returned content is + inserted into the document. If you don't put the output into the document, + nothing happens! This would be the case, for example, if you write + let _ = counter(page).step(). Counter updates are always applied in + layout order and in that case, Typst wouldn't know when to step the counter.

+ params: + - name: level + details:

The depth at which to step the counter. Defaults to 1.

+ example: null + types: + - integer + strings: [] + default: null + positional: false + named: true + required: false + variadic: false + settable: false + returns: + - content + - name: update + details: |- +

Updates the value of the counter.

+

Just like with step, the update only occurs if you put the resulting + content into the document.

+ params: + - name: value + details: |- +

If given an integer or array of integers, sets the counter to that value. + If given a function, that function receives the previous counter value + (with each number as a separate argument) and has to return the new + value (integer or array).

+ example: null + types: + - integer + - array + - function + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + - name: at + details: |- +

Gets the value of the counter at the given location. Always returns an + array of integers, even if the counter has just one number.

+ params: + - name: location + details: |- +

The location at which the counter value should be retrieved. A suitable + location can be retrieved from locate or + query.

+ example: null + types: + - location + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - array + - name: final + details: |- +

Gets the value of the counter at the end of the document. Always returns an + array of integers, even if the counter has just one number.

+ params: + - name: location + details: |- +

Can be any location. Why is it required then? Typst has to evaluate parts + of your code multiple times to determine all counter values. By only + allowing this method within locate calls, the amount of + code that can depend on the method's result is reduced. If you could call + final directly at the top level of a module, the evaluation of the whole + module and its exports could depend on the counter's value.

+ example: null + types: + - location + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - array + scope: [] +children: [] diff --git a/docs/i18n/meta/document-en.yaml b/docs/i18n/meta/document-en.yaml index 69f6776ee3bc..8e551ac1fe10 100644 --- a/docs/i18n/meta/document-en.yaml +++ b/docs/i18n/meta/document-en.yaml @@ -1,73 +1,73 @@ -route: /docs/reference/meta/document/ -title: Document -description: Documentation for the `document` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-title - name: title - children: [] - - id: parameters-author - name: author - children: [] -body: - kind: func - content: - path: - - document - display: Document - keywords: null - oneliner: The root element of a document and its metadata. - element: true - details: |- -

The root element of a document and its metadata.

-

All documents are automatically wrapped in a document element. You cannot - create a document element yourself. This function is only used with - set rules to specify document metadata. Such a set - rule must appear before any of the document's contents.

-
#set document(title: "Hello")
-
-      This has no visible output, but
-      embeds metadata into the PDF!
-      
Preview
-

Note that metadata set with this function is not rendered within the - document. Instead, it is embedded in the compiled PDF file.

- params: - - name: title - details: |- -

The document's title. This is often rendered as the title of the - PDF viewer window.

- example: null - types: - - none - - string - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: author - details:

The document's authors.

- example: null - types: - - string - - array - strings: [] - default: () - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/document/ +title: Document +description: Documentation for the `document` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-title + name: title + children: [] + - id: parameters-author + name: author + children: [] +body: + kind: func + content: + path: + - document + display: Document + keywords: null + oneliner: The root element of a document and its metadata. + element: true + details: |- +

The root element of a document and its metadata.

+

All documents are automatically wrapped in a document element. You cannot + create a document element yourself. This function is only used with + set rules to specify document metadata. Such a set + rule must appear before any of the document's contents.

+
#set document(title: "Hello")
+
+      This has no visible output, but
+      embeds metadata into the PDF!
+      
Preview
+

Note that metadata set with this function is not rendered within the + document. Instead, it is embedded in the compiled PDF file.

+ params: + - name: title + details: |- +

The document's title. This is often rendered as the title of the + PDF viewer window.

+ example: null + types: + - none + - string + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: author + details:

The document's authors.

+ example: null + types: + - string + - array + strings: [] + default: () + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/figure-en.yaml b/docs/i18n/meta/figure-en.yaml index c85cb97bda68..57435ce3efad 100644 --- a/docs/i18n/meta/figure-en.yaml +++ b/docs/i18n/meta/figure-en.yaml @@ -1,240 +1,240 @@ -route: /docs/reference/meta/figure/ -title: Figure -description: Documentation for the `figure` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: examples - name: Examples - children: [] -- id: modifying-appearance - name: Modifying Appearance - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-body - name: body - children: [] - - id: parameters-caption - name: caption - children: [] - - id: parameters-kind - name: kind - children: [] - - id: parameters-supplement - name: supplement - children: [] - - id: parameters-numbering - name: numbering - children: [] - - id: parameters-gap - name: gap - children: [] - - id: parameters-outlined - name: outlined - children: [] -body: - kind: func - content: - path: - - figure - display: Figure - keywords: null - oneliner: A figure with an optional caption. - element: true - details: |- -

A figure with an optional caption.

-

Automatically detects its contents to select the correct counting track. - For example, figures containing images will be numbered separately from - figures containing tables.

-

Examples

-

The example below shows a basic figure with an image:

-
@glacier shows a glacier. Glaciers
-      are complex systems.
-
-      #figure(
-        image("glacier.jpg", width: 80%),
-        caption: [A curious figure.],
-      ) <glacier>
-      
Preview
-

You can also insert tables into figures to give them a - caption. The figure will detect this and automatically use a separate - counter.

-
#figure(
-        table(
-          columns: 4,
-          [t], [1], [2], [3],
-          [y], [0.3s], [0.4s], [0.8s],
-        ),
-        caption: [Timing results],
-      )
-      
Preview
-

This behaviour can be overridden by explicitly specifying the figure's - kind. All figures of the same kind share a common counter.

-

Modifying the appearance

-

You can completely customize the look of your figures with a show - rule. In the example below, we show the figure's - caption above its body and display its supplement and counter after the - caption.

-
#show figure: it => align(center)[
-        #it.caption |
-        #emph[
-          #it.supplement
-          #it.counter.display(it.numbering)
-        ]
-        #v(10pt, weak: true)
-        #it.body
-      ]
-
-      #figure(
-        image("molecular.jpg", width: 80%),
-        caption: [
-          The molecular testing pipeline.
-        ],
-      )
-      
Preview
-

If your figure is too large and its contents are breakable across pages - (e.g. if it contains a large table), then you can make the figure breakable - across pages as well by using #show figure: set block(breakable: true) - (see the block documentation for more information).

- params: - - name: body - details:

The content of the figure. Often, an image.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: caption - details:

The figure's caption.

- example: null - types: - - none - - content - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: kind - details: |- -

The kind of the figure this is.

-

If set to auto, the figure will try to automatically determine its - kind. All figures of the same kind share a common counter.

-

Setting this to something other than auto will override the - automatic detection. This can be useful if

-
    -
  • you wish to create a custom figure type that is not an - image, a table or code,
  • -
  • you want to force the figure to use a specific counter regardless of - its content.
  • -
-

You can set the kind to be an element function or a string. If you set - it to an element function that is not supported by the figure, you will - need to manually specify the figure's supplement.

- example: |- -
#figure(
-          circle(radius: 10pt),
-          caption: [A curious atom.],
-          kind: "atom",
-          supplement: [Atom],
-        )
-        
Preview
- types: - - auto - - string - - function - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: supplement - details: |- -

The figure's supplement.

-

If set to auto, the figure will try to automatically determine the - correct supplement based on the kind and the active text - language. If you are using a custom figure type, you - will need to manually specify the supplement.

-

If a function is specified, it is passed the first descendant of the - specified kind (typically, the figure's body) and should return - content.

- example: |- -
#figure(
-          [The contents of my figure!],
-          caption: [My custom figure],
-          supplement: [Bar],
-          kind: "foo",
-        )
-        
Preview
- types: - - none - - auto - - content - - function - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: numbering - details: |- -

How to number the figure. Accepts a - numbering pattern or function.

- example: null - types: - - none - - string - - function - strings: [] - default: "1" - positional: false - named: true - required: false - variadic: false - settable: true - - name: gap - details:

The vertical gap between the body and caption.

- example: null - types: - - length - strings: [] - default: 0.65em - positional: false - named: true - required: false - variadic: false - settable: true - - name: outlined - details: |- -

Whether the figure should appear in an outline - of figures.

- example: null - types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/figure/ +title: Figure +description: Documentation for the `figure` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: examples + name: Examples + children: [] +- id: modifying-appearance + name: Modifying Appearance + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-body + name: body + children: [] + - id: parameters-caption + name: caption + children: [] + - id: parameters-kind + name: kind + children: [] + - id: parameters-supplement + name: supplement + children: [] + - id: parameters-numbering + name: numbering + children: [] + - id: parameters-gap + name: gap + children: [] + - id: parameters-outlined + name: outlined + children: [] +body: + kind: func + content: + path: + - figure + display: Figure + keywords: null + oneliner: A figure with an optional caption. + element: true + details: |- +

A figure with an optional caption.

+

Automatically detects its contents to select the correct counting track. + For example, figures containing images will be numbered separately from + figures containing tables.

+

Examples

+

The example below shows a basic figure with an image:

+
@glacier shows a glacier. Glaciers
+      are complex systems.
+
+      #figure(
+        image("glacier.jpg", width: 80%),
+        caption: [A curious figure.],
+      ) <glacier>
+      
Preview
+

You can also insert tables into figures to give them a + caption. The figure will detect this and automatically use a separate + counter.

+
#figure(
+        table(
+          columns: 4,
+          [t], [1], [2], [3],
+          [y], [0.3s], [0.4s], [0.8s],
+        ),
+        caption: [Timing results],
+      )
+      
Preview
+

This behaviour can be overridden by explicitly specifying the figure's + kind. All figures of the same kind share a common counter.

+

Modifying the appearance

+

You can completely customize the look of your figures with a show + rule. In the example below, we show the figure's + caption above its body and display its supplement and counter after the + caption.

+
#show figure: it => align(center)[
+        #it.caption |
+        #emph[
+          #it.supplement
+          #it.counter.display(it.numbering)
+        ]
+        #v(10pt, weak: true)
+        #it.body
+      ]
+
+      #figure(
+        image("molecular.jpg", width: 80%),
+        caption: [
+          The molecular testing pipeline.
+        ],
+      )
+      
Preview
+

If your figure is too large and its contents are breakable across pages + (e.g. if it contains a large table), then you can make the figure breakable + across pages as well by using #show figure: set block(breakable: true) + (see the block documentation for more information).

+ params: + - name: body + details:

The content of the figure. Often, an image.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: caption + details:

The figure's caption.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: kind + details: |- +

The kind of the figure this is.

+

If set to auto, the figure will try to automatically determine its + kind. All figures of the same kind share a common counter.

+

Setting this to something other than auto will override the + automatic detection. This can be useful if

+
    +
  • you wish to create a custom figure type that is not an + image, a table or code,
  • +
  • you want to force the figure to use a specific counter regardless of + its content.
  • +
+

You can set the kind to be an element function or a string. If you set + it to an element function that is not supported by the figure, you will + need to manually specify the figure's supplement.

+ example: |- +
#figure(
+          circle(radius: 10pt),
+          caption: [A curious atom.],
+          kind: "atom",
+          supplement: [Atom],
+        )
+        
Preview
+ types: + - auto + - string + - function + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: supplement + details: |- +

The figure's supplement.

+

If set to auto, the figure will try to automatically determine the + correct supplement based on the kind and the active text + language. If you are using a custom figure type, you + will need to manually specify the supplement.

+

If a function is specified, it is passed the first descendant of the + specified kind (typically, the figure's body) and should return + content.

+ example: |- +
#figure(
+          [The contents of my figure!],
+          caption: [My custom figure],
+          supplement: [Bar],
+          kind: "foo",
+        )
+        
Preview
+ types: + - none + - auto + - content + - function + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: numbering + details: |- +

How to number the figure. Accepts a + numbering pattern or function.

+ example: null + types: + - none + - string + - function + strings: [] + default: "1" + positional: false + named: true + required: false + variadic: false + settable: true + - name: gap + details:

The vertical gap between the body and caption.

+ example: null + types: + - length + strings: [] + default: 0.65em + positional: false + named: true + required: false + variadic: false + settable: true + - name: outlined + details: |- +

Whether the figure should appear in an outline + of figures.

+ example: null + types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/footnote-en.yaml b/docs/i18n/meta/footnote-en.yaml index ba2067e558c5..7b85351125c5 100644 --- a/docs/i18n/meta/footnote-en.yaml +++ b/docs/i18n/meta/footnote-en.yaml @@ -1,252 +1,252 @@ -route: /docs/reference/meta/footnote/ -title: Footnote -description: Documentation for the `footnote` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-numbering - name: numbering - children: [] - - id: parameters-body - name: body - children: [] -- id: footnote-entry - name: Footnote Entry - children: - - id: example - name: Example - children: [] - - id: footnote-entry-parameters - name: Parameters - children: - - id: footnote-entry-parameters-note - name: note - children: [] - - id: footnote-entry-parameters-separator - name: separator - children: [] - - id: footnote-entry-parameters-clearance - name: clearance - children: [] - - id: footnote-entry-parameters-gap - name: gap - children: [] - - id: footnote-entry-parameters-indent - name: indent - children: [] -body: - kind: func - content: - path: - - footnote - display: Footnote - keywords: null - oneliner: A footnote. - element: true - details: |- -

A footnote.

-

Includes additional remarks and references on the same page with footnotes. - A footnote will insert a superscript number that links to the note at the - bottom of the page. Notes are numbered sequentially throughout your document - and can break across multiple pages.

-

To customize the appearance of the entry in the footnote listing, see - footnote.entry. The footnote itself is realized as - a normal superscript, so you can use a set rule on the - super function to customize it.

-

Example

-
Check the docs for more details.
-      #footnote[https://typst.app/docs]
-      
Preview
-

The footnote automatically attaches itself to the preceding word, even if - there is a space before it in the markup. To force space, you can use the - string #" " or explicit horizontal spacing.

-

By giving a label to a footnote, you can have multiple references to it.

-
You can edit Typst documents online.
-      #footnote[https://typst.app/app] <fn>
-      Checkout Typst's website. @fn
-      And the online app. #footnote(<fn>)
-      
Preview
-

Note: Set and show rules in the scope where footnote is called may not - apply to the footnote's content. See here more information.

- params: - - name: numbering - details: |- -

How to number footnotes.

-

By default, the footnote numbering continues throughout your document. - If you prefer per-page footnote numbering, you can reset the footnote - counter in the page header. In the - future, there might be a simpler way to achieve this.

- example: |- -
#set footnote(numbering: "*")
-
-        Footnotes:
-        #footnote[Star],
-        #footnote[Dagger]
-        
Preview
- types: - - string - - function - strings: [] - default: "1" - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details: |- -

The content to put into the footnote. Can also be the label of another - footnote this one should point to.

- example: null - types: - - label - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: - - path: - - footnote - - entry - display: Footnote Entry - keywords: null - oneliner: An entry in a footnote list. - element: true - details: |- -

An entry in a footnote list.

-

This function is not intended to be called directly. Instead, it is used - in set and show rules to customize footnote listings.

-

Example

-
#show footnote.entry: set text(red)
-
-        My footnote listing
-        #footnote[It's down here]
-        has red text!
-        
Preview
- params: - - name: note - details: |- -

The footnote for this entry. It's location can be used to determine - the footnote counter state.

- example: |- -
#show footnote.entry: it => {
-            let loc = it.note.location()
-            numbering(
-              "1: ",
-              ..counter(footnote).at(loc),
-            )
-            it.note.body
-          }
-
-          Customized #footnote[Hello]
-          listing #footnote[World! 🌏]
-          
Preview
- types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: separator - details:

The separator between the document body and the footnote listing.

- example: |- -
#set footnote.entry(
-            separator: repeat[.]
-          )
-
-          Testing a different separator.
-          #footnote[
-            Unconventional, but maybe
-            not that bad?
-          ]
-          
Preview
- types: - - content - strings: [] - default: line(length: 30%, - stroke: 0.5pt) - positional: false - named: true - required: false - variadic: false - settable: true - - name: clearance - details:

The amount of clearance between the document body and the separator.

- example: |- -
#set footnote.entry(clearance: 3em)
-
-          Footnotes also need ...
-          #footnote[
-            ... some space to breathe.
-          ]
-          
Preview
- types: - - length - strings: [] - default: 1em - positional: false - named: true - required: false - variadic: false - settable: true - - name: gap - details:

The gap between footnote entries.

- example: |- -
#set footnote.entry(gap: 0.8em)
-
-          Footnotes:
-          #footnote[Spaced],
-          #footnote[Apart]
-          
Preview
- types: - - length - strings: [] - default: 0.5em - positional: false - named: true - required: false - variadic: false - settable: true - - name: indent - details:

The indent of each footnote entry.

- example: |- -
#set footnote.entry(indent: 0em)
-
-          Footnotes:
-          #footnote[No],
-          #footnote[Indent]
-          
Preview
- types: - - length - strings: [] - default: 1em - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/footnote/ +title: Footnote +description: Documentation for the `footnote` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-numbering + name: numbering + children: [] + - id: parameters-body + name: body + children: [] +- id: footnote-entry + name: Footnote Entry + children: + - id: example + name: Example + children: [] + - id: footnote-entry-parameters + name: Parameters + children: + - id: footnote-entry-parameters-note + name: note + children: [] + - id: footnote-entry-parameters-separator + name: separator + children: [] + - id: footnote-entry-parameters-clearance + name: clearance + children: [] + - id: footnote-entry-parameters-gap + name: gap + children: [] + - id: footnote-entry-parameters-indent + name: indent + children: [] +body: + kind: func + content: + path: + - footnote + display: Footnote + keywords: null + oneliner: A footnote. + element: true + details: |- +

A footnote.

+

Includes additional remarks and references on the same page with footnotes. + A footnote will insert a superscript number that links to the note at the + bottom of the page. Notes are numbered sequentially throughout your document + and can break across multiple pages.

+

To customize the appearance of the entry in the footnote listing, see + footnote.entry. The footnote itself is realized as + a normal superscript, so you can use a set rule on the + super function to customize it.

+

Example

+
Check the docs for more details.
+      #footnote[https://typst.app/docs]
+      
Preview
+

The footnote automatically attaches itself to the preceding word, even if + there is a space before it in the markup. To force space, you can use the + string #" " or explicit horizontal spacing.

+

By giving a label to a footnote, you can have multiple references to it.

+
You can edit Typst documents online.
+      #footnote[https://typst.app/app] <fn>
+      Checkout Typst's website. @fn
+      And the online app. #footnote(<fn>)
+      
Preview
+

Note: Set and show rules in the scope where footnote is called may not + apply to the footnote's content. See here more information.

+ params: + - name: numbering + details: |- +

How to number footnotes.

+

By default, the footnote numbering continues throughout your document. + If you prefer per-page footnote numbering, you can reset the footnote + counter in the page header. In the + future, there might be a simpler way to achieve this.

+ example: |- +
#set footnote(numbering: "*")
+
+        Footnotes:
+        #footnote[Star],
+        #footnote[Dagger]
+        
Preview
+ types: + - string + - function + strings: [] + default: "1" + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details: |- +

The content to put into the footnote. Can also be the label of another + footnote this one should point to.

+ example: null + types: + - label + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: + - path: + - footnote + - entry + display: Footnote Entry + keywords: null + oneliner: An entry in a footnote list. + element: true + details: |- +

An entry in a footnote list.

+

This function is not intended to be called directly. Instead, it is used + in set and show rules to customize footnote listings.

+

Example

+
#show footnote.entry: set text(red)
+
+        My footnote listing
+        #footnote[It's down here]
+        has red text!
+        
Preview
+ params: + - name: note + details: |- +

The footnote for this entry. It's location can be used to determine + the footnote counter state.

+ example: |- +
#show footnote.entry: it => {
+            let loc = it.note.location()
+            numbering(
+              "1: ",
+              ..counter(footnote).at(loc),
+            )
+            it.note.body
+          }
+
+          Customized #footnote[Hello]
+          listing #footnote[World! 🌏]
+          
Preview
+ types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: separator + details:

The separator between the document body and the footnote listing.

+ example: |- +
#set footnote.entry(
+            separator: repeat[.]
+          )
+
+          Testing a different separator.
+          #footnote[
+            Unconventional, but maybe
+            not that bad?
+          ]
+          
Preview
+ types: + - content + strings: [] + default: line(length: 30%, + stroke: 0.5pt) + positional: false + named: true + required: false + variadic: false + settable: true + - name: clearance + details:

The amount of clearance between the document body and the separator.

+ example: |- +
#set footnote.entry(clearance: 3em)
+
+          Footnotes also need ...
+          #footnote[
+            ... some space to breathe.
+          ]
+          
Preview
+ types: + - length + strings: [] + default: 1em + positional: false + named: true + required: false + variadic: false + settable: true + - name: gap + details:

The gap between footnote entries.

+ example: |- +
#set footnote.entry(gap: 0.8em)
+
+          Footnotes:
+          #footnote[Spaced],
+          #footnote[Apart]
+          
Preview
+ types: + - length + strings: [] + default: 0.5em + positional: false + named: true + required: false + variadic: false + settable: true + - name: indent + details:

The indent of each footnote entry.

+ example: |- +
#set footnote.entry(indent: 0em)
+
+          Footnotes:
+          #footnote[No],
+          #footnote[Indent]
+          
Preview
+ types: + - length + strings: [] + default: 1em + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/heading-en.yaml b/docs/i18n/meta/heading-en.yaml index b294db014a0c..a724caacfadc 100644 --- a/docs/i18n/meta/heading-en.yaml +++ b/docs/i18n/meta/heading-en.yaml @@ -1,168 +1,168 @@ -route: /docs/reference/meta/heading/ -title: Heading -description: Documentation for the `heading` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-level - name: level - children: [] - - id: parameters-numbering - name: numbering - children: [] - - id: parameters-supplement - name: supplement - children: [] - - id: parameters-outlined - name: outlined - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - heading - display: Heading - keywords: null - oneliner: A section heading. - element: true - details: |- -

A section heading.

-

With headings, you can structure your document into sections. Each heading - has a level, which starts at one and is unbounded upwards. This level - indicates the logical role of the following content (section, subsection, - etc.) A top-level heading indicates a top-level section of the document - (not the document's title).

-

Typst can automatically number your headings for you. To enable numbering, - specify how you want your headings to be numbered with a - numbering pattern or function.

-

Independently from the numbering, Typst can also automatically generate an - outline of all headings for you. To exclude one or more - headings from this outline, you can set the outlined parameter to - false.

-

Example

-
#set heading(numbering: "1.a)")
-
-      = Introduction
-      In recent years, ...
-
-      == Preliminaries
-      To start, ...
-      
Preview
-

Syntax

-

Headings have dedicated syntax: They can be created by starting a line with - one or multiple equals signs, followed by a space. The number of equals - signs determines the heading's logical nesting depth.

- params: - - name: level - details:

The logical nesting depth of the heading, starting from one.

- example: null - types: - - integer - strings: [] - default: 1 - positional: false - named: true - required: false - variadic: false - settable: true - - name: numbering - details: |- -

How to number the heading. Accepts a - numbering pattern or function.

- example: |- -
#set heading(numbering: "1.a.")
-
-        = A section
-        == A subsection
-        === A sub-subsection
-        
Preview
- types: - - none - - string - - function - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: supplement - details: |- -

A supplement for the heading.

-

For references to headings, this is added before the referenced number.

-

If a function is specified, it is passed the referenced heading and - should return content.

- example: |- -
#set heading(numbering: "1.", supplement: [Chapter])
-
-        = Introduction <intro>
-        In @intro, we see how to turn
-        Sections into Chapters. And
-        in @intro[Part], it is done
-        manually.
-        
Preview
- types: - - none - - auto - - content - - function - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: outlined - details:

Whether the heading should appear in the outline.

- example: |- -
#outline()
-
-        #heading[Normal]
-        This is a normal heading.
-
-        #heading(outlined: false)[Hidden]
-        This heading does not appear
-        in the outline.
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The heading's title.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/heading/ +title: Heading +description: Documentation for the `heading` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-level + name: level + children: [] + - id: parameters-numbering + name: numbering + children: [] + - id: parameters-supplement + name: supplement + children: [] + - id: parameters-outlined + name: outlined + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - heading + display: Heading + keywords: null + oneliner: A section heading. + element: true + details: |- +

A section heading.

+

With headings, you can structure your document into sections. Each heading + has a level, which starts at one and is unbounded upwards. This level + indicates the logical role of the following content (section, subsection, + etc.) A top-level heading indicates a top-level section of the document + (not the document's title).

+

Typst can automatically number your headings for you. To enable numbering, + specify how you want your headings to be numbered with a + numbering pattern or function.

+

Independently from the numbering, Typst can also automatically generate an + outline of all headings for you. To exclude one or more + headings from this outline, you can set the outlined parameter to + false.

+

Example

+
#set heading(numbering: "1.a)")
+
+      = Introduction
+      In recent years, ...
+
+      == Preliminaries
+      To start, ...
+      
Preview
+

Syntax

+

Headings have dedicated syntax: They can be created by starting a line with + one or multiple equals signs, followed by a space. The number of equals + signs determines the heading's logical nesting depth.

+ params: + - name: level + details:

The logical nesting depth of the heading, starting from one.

+ example: null + types: + - integer + strings: [] + default: 1 + positional: false + named: true + required: false + variadic: false + settable: true + - name: numbering + details: |- +

How to number the heading. Accepts a + numbering pattern or function.

+ example: |- +
#set heading(numbering: "1.a.")
+
+        = A section
+        == A subsection
+        === A sub-subsection
+        
Preview
+ types: + - none + - string + - function + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: supplement + details: |- +

A supplement for the heading.

+

For references to headings, this is added before the referenced number.

+

If a function is specified, it is passed the referenced heading and + should return content.

+ example: |- +
#set heading(numbering: "1.", supplement: [Chapter])
+
+        = Introduction <intro>
+        In @intro, we see how to turn
+        Sections into Chapters. And
+        in @intro[Part], it is done
+        manually.
+        
Preview
+ types: + - none + - auto + - content + - function + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: outlined + details:

Whether the heading should appear in the outline.

+ example: |- +
#outline()
+
+        #heading[Normal]
+        This is a normal heading.
+
+        #heading(outlined: false)[Hidden]
+        This heading does not appear
+        in the outline.
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The heading's title.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/layout-en.yaml b/docs/i18n/meta/layout-en.yaml index b97f79a0e2a1..e6fbaa545851 100644 --- a/docs/i18n/meta/layout-en.yaml +++ b/docs/i18n/meta/layout-en.yaml @@ -1,81 +1,81 @@ -route: /docs/reference/meta/layout/ -title: Layout -description: Documentation for the `layout` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-func - name: func - children: [] -body: - kind: func - content: - path: - - layout - display: Layout - keywords: null - oneliner: Provides access to the current outer container's (or page's, if none) - size - element: false - details: |- -

Provides access to the current outer container's (or page's, if none) size - (width and height).

-

The given function must accept a single parameter, size, which is a - dictionary with keys width and height, both of type - length.

-
#let text = lorem(30)
-      #layout(size => style(styles => [
-        #let (height,) = measure(
-          block(width: size.width, text),
-          styles,
-        )
-        This text is #height high with
-        the current page width: \
-        #text
-      ]))
-      
Preview
-

If the layout call is placed inside of a box width a width of 800pt - and a height of 400pt, then the specified function will be given the - parameter (width: 800pt, height: 400pt). If it placed directly into the - page it receives the page's dimensions minus its margins. This is mostly - useful in combination with measurement.

-

You can also use this function to resolve ratio to fixed - lengths. This might come in handy if you're building your own layout - abstractions.

-
#layout(size => {
-        let half = 50% * size.width
-        [Half a page is #half wide.]
-      })
-      
Preview
-

Note that this function will provide an infinite width or height if one of - the page width or height is auto, respectively.

- params: - - name: func - details: |- -

A function to call with the outer container's size. Its return value is - displayed in the document.

-

The container's size is given as a dictionary with - the keys width and height.

-

This function is called once for each time the content returned by - layout appears in the document. That makes it possible to generate - content that depends on the size of the container it is inside of.

- example: null - types: - - function - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/layout/ +title: Layout +description: Documentation for the `layout` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-func + name: func + children: [] +body: + kind: func + content: + path: + - layout + display: Layout + keywords: null + oneliner: Provides access to the current outer container's (or page's, if none) + size + element: false + details: |- +

Provides access to the current outer container's (or page's, if none) size + (width and height).

+

The given function must accept a single parameter, size, which is a + dictionary with keys width and height, both of type + length.

+
#let text = lorem(30)
+      #layout(size => style(styles => [
+        #let (height,) = measure(
+          block(width: size.width, text),
+          styles,
+        )
+        This text is #height high with
+        the current page width: \
+        #text
+      ]))
+      
Preview
+

If the layout call is placed inside of a box width a width of 800pt + and a height of 400pt, then the specified function will be given the + parameter (width: 800pt, height: 400pt). If it placed directly into the + page it receives the page's dimensions minus its margins. This is mostly + useful in combination with measurement.

+

You can also use this function to resolve ratio to fixed + lengths. This might come in handy if you're building your own layout + abstractions.

+
#layout(size => {
+        let half = 50% * size.width
+        [Half a page is #half wide.]
+      })
+      
Preview
+

Note that this function will provide an infinite width or height if one of + the page width or height is auto, respectively.

+ params: + - name: func + details: |- +

A function to call with the outer container's size. Its return value is + displayed in the document.

+

The container's size is given as a dictionary with + the keys width and height.

+

This function is called once for each time the content returned by + layout appears in the document. That makes it possible to generate + content that depends on the size of the container it is inside of.

+ example: null + types: + - function + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/link-en.yaml b/docs/i18n/meta/link-en.yaml index 81a74c2c10b1..c0426ef74ae4 100644 --- a/docs/i18n/meta/link-en.yaml +++ b/docs/i18n/meta/link-en.yaml @@ -1,122 +1,122 @@ -route: /docs/reference/meta/link/ -title: Link -description: Documentation for the `link` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-dest - name: dest - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - link - display: Link - keywords: null - oneliner: Links to a URL or a location in the document. - element: true - details: |- -

Links to a URL or a location in the document.

-

By default, links are not styled any different from normal text. However, - you can easily apply a style of your choice with a show rule.

-

Example

-
#show link: underline
-
-      https://example.com \
-
-      #link("https://example.com") \
-      #link("https://example.com")[
-        See example.com
-      ]
-      
Preview
-

Syntax

-

This function also has dedicated syntax: Text that starts with http:// or - https:// is automatically turned into a link.

- params: - - name: dest - details: |- -

The destination the link points to.

-
    -
  • -

    To link to web pages, dest should be a valid URL string. If the URL - is in the mailto: or tel: scheme and the body parameter is - omitted, the email address or phone number will be the link's body, - without the scheme.

    -
  • -
  • -

    To link to another part of the document, dest can take one of three - forms:

    -
      -
    • -

      A label attached to an element. If you also want - automatic text for the link based on the element, consider using - a reference instead.

      -
    • -
    • -

      A location resulting from a locate - call or query.

      -
    • -
    • -

      A dictionary with a page key of type integer and - x and y coordinates of type length. Pages are - counted from one, and the coordinates are relative to the page's top - left corner.

      -
    • -
    -
  • -
- example: |- -
= Introduction <intro>
-        #link("mailto:hello@typst.app") \
-        #link(<intro>)[Go to intro] \
-        #link((page: 1, x: 0pt, y: 0pt))[
-          Go to top
-        ]
-        
Preview
- types: - - string - - label - - dictionary - - location - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: body - details: |- -

The content that should become a link.

-

If dest is an URL string, the parameter can be omitted. In this case, - the URL will be shown as the link.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/link/ +title: Link +description: Documentation for the `link` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-dest + name: dest + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - link + display: Link + keywords: null + oneliner: Links to a URL or a location in the document. + element: true + details: |- +

Links to a URL or a location in the document.

+

By default, links are not styled any different from normal text. However, + you can easily apply a style of your choice with a show rule.

+

Example

+
#show link: underline
+
+      https://example.com \
+
+      #link("https://example.com") \
+      #link("https://example.com")[
+        See example.com
+      ]
+      
Preview
+

Syntax

+

This function also has dedicated syntax: Text that starts with http:// or + https:// is automatically turned into a link.

+ params: + - name: dest + details: |- +

The destination the link points to.

+
    +
  • +

    To link to web pages, dest should be a valid URL string. If the URL + is in the mailto: or tel: scheme and the body parameter is + omitted, the email address or phone number will be the link's body, + without the scheme.

    +
  • +
  • +

    To link to another part of the document, dest can take one of three + forms:

    +
      +
    • +

      A label attached to an element. If you also want + automatic text for the link based on the element, consider using + a reference instead.

      +
    • +
    • +

      A location resulting from a locate + call or query.

      +
    • +
    • +

      A dictionary with a page key of type integer and + x and y coordinates of type length. Pages are + counted from one, and the coordinates are relative to the page's top + left corner.

      +
    • +
    +
  • +
+ example: |- +
= Introduction <intro>
+        #link("mailto:hello@typst.app") \
+        #link(<intro>)[Go to intro] \
+        #link((page: 1, x: 0pt, y: 0pt))[
+          Go to top
+        ]
+        
Preview
+ types: + - string + - label + - dictionary + - location + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: body + details: |- +

The content that should become a link.

+

If dest is an URL string, the parameter can be omitted. In this case, + the URL will be shown as the link.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/locate-en.yaml b/docs/i18n/meta/locate-en.yaml index 7580df0e9df6..71f5204558a6 100644 --- a/docs/i18n/meta/locate-en.yaml +++ b/docs/i18n/meta/locate-en.yaml @@ -1,99 +1,99 @@ -route: /docs/reference/meta/locate/ -title: Locate -description: Documentation for the `locate` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-func - name: func - children: [] -- id: methods - name: Methods - children: - - id: methods-page - name: page - children: [] - - id: methods-position - name: position - children: [] - - id: methods-page-numbering - name: page-numbering - children: [] -body: - kind: func - content: - path: - - locate - display: Locate - keywords: null - oneliner: Provides access to the location of content. - element: false - details: |- -

Provides access to the location of content.

-

This is useful in combination with queries, - counters, state, and links. - See their documentation for more details.

-
#locate(loc => [
-        My location: \
-        #loc.position()!
-      ])
-      
Preview
- params: - - name: func - details: |- -

A function that receives a location. Its return value is displayed - in the document.

-

This function is called once for each time the content returned by - locate appears in the document. That makes it possible to generate - content that depends on its own location in the document.

- example: null - types: - - function - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: - - name: page - details: |- -

Returns the page number for this location.

-

Note that this does not return the value of the page counter - at this location, but the true page number (starting from one).

-

If you want to know the value of the page counter, use - counter(page).at(loc) instead.

- params: [] - returns: - - integer - - name: position - details: |- -

Returns a dictionary with the page number and the x, y position for this - location. The page number starts at one and the coordinates are measured - from the top-left of the page.

-

If you only need the page number, use page() instead as it allows Typst - to skip unnecessary work.

- params: [] - returns: - - dictionary - - name: page-numbering - details: |- -

Returns the page numbering pattern of the page at this location. This can be - used when displaying the page counter in order to obtain the local numbering. - This is useful if you are building custom indices or outlines.

-

If the page numbering is set to none at that location, this function returns none.

- params: [] - returns: - - string - - function - - none - scope: [] -children: [] +route: /docs/reference/meta/locate/ +title: Locate +description: Documentation for the `locate` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-func + name: func + children: [] +- id: methods + name: Methods + children: + - id: methods-page + name: page + children: [] + - id: methods-position + name: position + children: [] + - id: methods-page-numbering + name: page-numbering + children: [] +body: + kind: func + content: + path: + - locate + display: Locate + keywords: null + oneliner: Provides access to the location of content. + element: false + details: |- +

Provides access to the location of content.

+

This is useful in combination with queries, + counters, state, and links. + See their documentation for more details.

+
#locate(loc => [
+        My location: \
+        #loc.position()!
+      ])
+      
Preview
+ params: + - name: func + details: |- +

A function that receives a location. Its return value is displayed + in the document.

+

This function is called once for each time the content returned by + locate appears in the document. That makes it possible to generate + content that depends on its own location in the document.

+ example: null + types: + - function + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: + - name: page + details: |- +

Returns the page number for this location.

+

Note that this does not return the value of the page counter + at this location, but the true page number (starting from one).

+

If you want to know the value of the page counter, use + counter(page).at(loc) instead.

+ params: [] + returns: + - integer + - name: position + details: |- +

Returns a dictionary with the page number and the x, y position for this + location. The page number starts at one and the coordinates are measured + from the top-left of the page.

+

If you only need the page number, use page() instead as it allows Typst + to skip unnecessary work.

+ params: [] + returns: + - dictionary + - name: page-numbering + details: |- +

Returns the page numbering pattern of the page at this location. This can be + used when displaying the page counter in order to obtain the local numbering. + This is useful if you are building custom indices or outlines.

+

If the page numbering is set to none at that location, this function returns none.

+ params: [] + returns: + - string + - function + - none + scope: [] +children: [] diff --git a/docs/i18n/meta/numbering-en.yaml b/docs/i18n/meta/numbering-en.yaml index 8cc4c77c656c..19ec2d5156c0 100644 --- a/docs/i18n/meta/numbering-en.yaml +++ b/docs/i18n/meta/numbering-en.yaml @@ -1,101 +1,101 @@ -route: /docs/reference/meta/numbering/ -title: Numbering -description: Documentation for the `numbering` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-numbering - name: numbering - children: [] - - id: parameters-numbers - name: numbers - children: [] -body: - kind: func - content: - path: - - numbering - display: Numbering - keywords: null - oneliner: Applies a numbering to a sequence of numbers. - element: false - details: |- -

Applies a numbering to a sequence of numbers.

-

A numbering defines how a sequence of numbers should be displayed as - content. It is defined either through a pattern string or an arbitrary - function.

-

A numbering pattern consists of counting symbols, for which the actual - number is substituted, their prefixes, and one suffix. The prefixes and the - suffix are repeated as-is.

-

Example

-
#numbering("1.1)", 1, 2, 3) \
-      #numbering("1.a.i", 1, 2) \
-      #numbering("I – 1", 12, 2) \
-      #numbering(
-        (..nums) => nums
-          .pos()
-          .map(str)
-          .join(".") + ")",
-        1, 2, 3,
-      )
-      
Preview
- params: - - name: numbering - details: |- -

Defines how the numbering works.

-

Counting symbols are 1, a, A, i, I, , , א, , - , and *. They are replaced by the number in the sequence, in the - given case.

-

The * character means that symbols should be used to count, in the - order of *, , , §, , and . If there are more than six - items, the number is represented using multiple symbols.

-

Suffixes are all characters after the last counting symbol. They are - repeated as-is at the end of any rendered number.

-

Prefixes are all characters that are neither counting symbols nor - suffixes. They are repeated as-is at in front of their rendered - equivalent of their counting symbol.

-

This parameter can also be an arbitrary function that gets each number - as an individual argument. When given a function, the numbering - function just forwards the arguments to that function. While this is not - particularly useful in itself, it means that you can just give arbitrary - numberings to the numbering function without caring whether they are - defined as a pattern or function.

- example: null - types: - - string - - function - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: numbers - details: |- -

The numbers to apply the numbering to. Must be positive.

-

If numbering is a pattern and more numbers than counting symbols are - given, the last counting symbol with its prefix is repeated.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - any - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/numbering/ +title: Numbering +description: Documentation for the `numbering` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-numbering + name: numbering + children: [] + - id: parameters-numbers + name: numbers + children: [] +body: + kind: func + content: + path: + - numbering + display: Numbering + keywords: null + oneliner: Applies a numbering to a sequence of numbers. + element: false + details: |- +

Applies a numbering to a sequence of numbers.

+

A numbering defines how a sequence of numbers should be displayed as + content. It is defined either through a pattern string or an arbitrary + function.

+

A numbering pattern consists of counting symbols, for which the actual + number is substituted, their prefixes, and one suffix. The prefixes and the + suffix are repeated as-is.

+

Example

+
#numbering("1.1)", 1, 2, 3) \
+      #numbering("1.a.i", 1, 2) \
+      #numbering("I – 1", 12, 2) \
+      #numbering(
+        (..nums) => nums
+          .pos()
+          .map(str)
+          .join(".") + ")",
+        1, 2, 3,
+      )
+      
Preview
+ params: + - name: numbering + details: |- +

Defines how the numbering works.

+

Counting symbols are 1, a, A, i, I, , , א, , + , and *. They are replaced by the number in the sequence, in the + given case.

+

The * character means that symbols should be used to count, in the + order of *, , , §, , and . If there are more than six + items, the number is represented using multiple symbols.

+

Suffixes are all characters after the last counting symbol. They are + repeated as-is at the end of any rendered number.

+

Prefixes are all characters that are neither counting symbols nor + suffixes. They are repeated as-is at in front of their rendered + equivalent of their counting symbol.

+

This parameter can also be an arbitrary function that gets each number + as an individual argument. When given a function, the numbering + function just forwards the arguments to that function. While this is not + particularly useful in itself, it means that you can just give arbitrary + numberings to the numbering function without caring whether they are + defined as a pattern or function.

+ example: null + types: + - string + - function + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: numbers + details: |- +

The numbers to apply the numbering to. Must be positive.

+

If numbering is a pattern and more numbers than counting symbols are + given, the last counting symbol with its prefix is repeated.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - any + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/outline-en.yaml b/docs/i18n/meta/outline-en.yaml index fb7164db9182..89aaf496d66c 100644 --- a/docs/i18n/meta/outline-en.yaml +++ b/docs/i18n/meta/outline-en.yaml @@ -1,398 +1,398 @@ -route: /docs/reference/meta/outline/ -title: Outline -description: Documentation for the `outline` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: alternative-outlines - name: Alternative Outlines - children: [] -- id: styling-the-outline - name: Styling The Outline - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-title - name: title - children: [] - - id: parameters-target - name: target - children: [] - - id: parameters-depth - name: depth - children: [] - - id: parameters-indent - name: indent - children: [] - - id: parameters-fill - name: fill - children: [] -- id: outline-entry - name: Outline Entry - children: - - id: example - name: Example - children: [] - - id: outline-entry-parameters - name: Parameters - children: - - id: outline-entry-parameters-level - name: level - children: [] - - id: outline-entry-parameters-element - name: element - children: [] - - id: outline-entry-parameters-body - name: body - children: [] - - id: outline-entry-parameters-fill - name: fill - children: [] - - id: outline-entry-parameters-page - name: page - children: [] -body: - kind: func - content: - path: - - outline - display: Outline - keywords: Table of Contents - oneliner: A table of contents, figures, or other elements. - element: true - details: |- -

A table of contents, figures, or other elements.

-

This function generates a list of all occurrences of an element in the - document, up to a given depth. The element's numbering and page number will - be displayed in the outline alongside its title or caption. By default this - generates a table of contents.

-

Example

-
#outline()
-
-      = Introduction
-      #lorem(5)
-
-      = Prior work
-      #lorem(10)
-      
Preview
-

Alternative outlines

-

By setting the target parameter, the outline can be used to generate a - list of other kinds of elements than headings. In the example below, we list - all figures containing images by setting target to figure.where(kind: image). We could have also set it to just figure, but then the list - would also include figures containing tables or other material. For more - details on the where selector, see here.

-
#outline(
-        title: [List of Figures],
-        target: figure.where(kind: image),
-      )
-
-      #figure(
-        image("tiger.jpg"),
-        caption: [A nice figure!],
-      )
-      
Preview
-

Styling the outline

-

The outline element has several options for customization, such as its - title and indent parameters. If desired, however, it is possible to - have more control over the outline's look and style through the - outline.entry element.

- params: - - name: title - details: |- -

The title of the outline.

-
    -
  • When set to auto, an appropriate title for the - text language will be used. This is the default.
  • -
  • When set to none, the outline will not have a title.
  • -
  • A custom title can be set by passing content.
  • -
-

The outline's heading will not be numbered by default, but you can - force it to be with a show-set rule: - show outline: set heading(numbering: "1.")

-

-      example: null
-      types:
-      - none
-      - auto
-      - content
-      strings: []
-      default: auto
-      positional: false
-      named: true
-      required: false
-      variadic: false
-      settable: true
-    - name: target
-      details: |-
-        

The type of element to include in the outline.

-

To list figures containing a specific kind of element, like a table, you - can write figure.where(kind: table).

- example: |- -
#outline(
-          title: [List of Tables],
-          target: figure.where(kind: table),
-        )
-
-        #figure(
-          table(
-            columns: 4,
-            [t], [1], [2], [3],
-            [y], [0.3], [0.7], [0.5],
-          ),
-          caption: [Experiment results],
-        )
-        
Preview
- types: - - label - - function - - selector - strings: [] - default: heading.where(outlined: true) - positional: false - named: true - required: false - variadic: false - settable: true - - name: depth - details: |- -

The maximum level up to which elements are included in the outline. When - this argument is none, all elements are included.

- example: |- -
#set heading(numbering: "1.")
-        #outline(depth: 2)
-
-        = Yes
-        Top-level section.
-
-        == Still
-        Subsection.
-
-        === Nope
-        Not included.
-        
Preview
- types: - - none - - integer - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: indent - details: |- -

How to indent the outline's entries.

-
    -
  • none: No indent
  • -
  • auto: Indents the numbering of the nested entry with the title of - its parent entry. This only has an effect if the entries are numbered - (e.g., via heading numbering).
  • -
  • Relative length: Indents the item by this length - multiplied by its nesting level. Specifying 2em, for instance, - would indent top-level headings (not nested) by 0em, second level - headings by 2em (nested once), third-level headings by 4em - (nested twice) and so on.
  • -
  • Function: You can completely customize this setting - with a function. That function receives the nesting level as a - parameter (starting at 0 for top-level headings/elements) and can - return a relative length or content making up the indent. For example, - n => n * 2em would be equivalent to just specifying 2em, - while n => [] * n would indent with one arrow per nesting - level.
  • -
-

Migration hints: Specifying true (equivalent to auto) or - false (equivalent to none) for this option is deprecated and - will be removed in a future release.

- example: |- -
#set heading(numbering: "1.a.")
-
-        #outline(
-          title: [Contents (Automatic)],
-          indent: auto,
-        )
-
-        #outline(
-          title: [Contents (Length)],
-          indent: 2em,
-        )
-
-        #outline(
-          title: [Contents (Function)],
-          indent: n => [] * n,
-        )
-
-        = About ACME Corp.
-        == History
-        === Origins
-        #lorem(10)
-
-        == Products
-        #lorem(10)
-        
Preview
- types: - - none - - auto - - boolean - - relative length - - function - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

Content to fill the space between the title and the page number. Can be - set to none to disable filling.

- example: |- -
#outline(fill: line(length: 100%))
-
-        = A New Beginning
-        
Preview
- types: - - none - - content - strings: [] - default: repeat(body: [.]) - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: - - path: - - outline - - entry - display: Outline Entry - keywords: null - oneliner: Represents each entry line in an outline, including the reference - to the - element: true - details: |- -

Represents each entry line in an outline, including the reference to the - outlined element, its page number, and the filler content between both.

-

This element is intended for use with show rules to control the appearance - of outlines.

-

Example

-

The example below shows how to style entries for top-level sections to make - them stand out.

-
#set heading(numbering: "1.")
-
-        #show outline.entry.where(
-          level: 1
-        ): it => {
-          v(12pt, weak: true)
-          strong(it)
-        }
-
-        #outline(indent: auto)
-
-        = Introduction
-        = Background
-        == History
-        == State of the Art
-        = Analysis
-        == Setup
-        
Preview
-

To completely customize an entry's line, you can also build it from scratch - by accessing the level, element, body, fill and page fields on the entry.

- params: - - name: level - details: |- -

The nesting level of this outline entry. Starts at 1 for top-level - entries.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: element - details: |- -

The element this entry refers to. Its location will be available - through the location method on content - and can be linked to.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: body - details: |- -

The content which is displayed in place of the referred element at its - entry in the outline. For a heading, this would be its number followed - by the heading's title, for example.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: fill - details: |- -

The content used to fill the space between the element's outline and - its page number, as defined by the outline element this entry is - located in. When none, empty space is inserted in that gap instead.

-

Note that, when using show rules to override outline entries, it is - recommended to wrap the filling content in a box with - fractional width. For example, box(width: 1fr, repeat[-]) would show - precisely as many - characters as necessary to fill a particular gap.

- example: null - types: - - none - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: page - details: |- -

The page number of the element this entry links to, formatted with the - numbering set for the referenced page.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/outline/ +title: Outline +description: Documentation for the `outline` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: alternative-outlines + name: Alternative Outlines + children: [] +- id: styling-the-outline + name: Styling The Outline + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-title + name: title + children: [] + - id: parameters-target + name: target + children: [] + - id: parameters-depth + name: depth + children: [] + - id: parameters-indent + name: indent + children: [] + - id: parameters-fill + name: fill + children: [] +- id: outline-entry + name: Outline Entry + children: + - id: example + name: Example + children: [] + - id: outline-entry-parameters + name: Parameters + children: + - id: outline-entry-parameters-level + name: level + children: [] + - id: outline-entry-parameters-element + name: element + children: [] + - id: outline-entry-parameters-body + name: body + children: [] + - id: outline-entry-parameters-fill + name: fill + children: [] + - id: outline-entry-parameters-page + name: page + children: [] +body: + kind: func + content: + path: + - outline + display: Outline + keywords: Table of Contents + oneliner: A table of contents, figures, or other elements. + element: true + details: |- +

A table of contents, figures, or other elements.

+

This function generates a list of all occurrences of an element in the + document, up to a given depth. The element's numbering and page number will + be displayed in the outline alongside its title or caption. By default this + generates a table of contents.

+

Example

+
#outline()
+
+      = Introduction
+      #lorem(5)
+
+      = Prior work
+      #lorem(10)
+      
Preview
+

Alternative outlines

+

By setting the target parameter, the outline can be used to generate a + list of other kinds of elements than headings. In the example below, we list + all figures containing images by setting target to figure.where(kind: image). We could have also set it to just figure, but then the list + would also include figures containing tables or other material. For more + details on the where selector, see here.

+
#outline(
+        title: [List of Figures],
+        target: figure.where(kind: image),
+      )
+
+      #figure(
+        image("tiger.jpg"),
+        caption: [A nice figure!],
+      )
+      
Preview
+

Styling the outline

+

The outline element has several options for customization, such as its + title and indent parameters. If desired, however, it is possible to + have more control over the outline's look and style through the + outline.entry element.

+ params: + - name: title + details: |- +

The title of the outline.

+
    +
  • When set to auto, an appropriate title for the + text language will be used. This is the default.
  • +
  • When set to none, the outline will not have a title.
  • +
  • A custom title can be set by passing content.
  • +
+

The outline's heading will not be numbered by default, but you can + force it to be with a show-set rule: + show outline: set heading(numbering: "1.")

+

+      example: null
+      types:
+      - none
+      - auto
+      - content
+      strings: []
+      default: auto
+      positional: false
+      named: true
+      required: false
+      variadic: false
+      settable: true
+    - name: target
+      details: |-
+        

The type of element to include in the outline.

+

To list figures containing a specific kind of element, like a table, you + can write figure.where(kind: table).

+ example: |- +
#outline(
+          title: [List of Tables],
+          target: figure.where(kind: table),
+        )
+
+        #figure(
+          table(
+            columns: 4,
+            [t], [1], [2], [3],
+            [y], [0.3], [0.7], [0.5],
+          ),
+          caption: [Experiment results],
+        )
+        
Preview
+ types: + - label + - function + - selector + strings: [] + default: heading.where(outlined: true) + positional: false + named: true + required: false + variadic: false + settable: true + - name: depth + details: |- +

The maximum level up to which elements are included in the outline. When + this argument is none, all elements are included.

+ example: |- +
#set heading(numbering: "1.")
+        #outline(depth: 2)
+
+        = Yes
+        Top-level section.
+
+        == Still
+        Subsection.
+
+        === Nope
+        Not included.
+        
Preview
+ types: + - none + - integer + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: indent + details: |- +

How to indent the outline's entries.

+
    +
  • none: No indent
  • +
  • auto: Indents the numbering of the nested entry with the title of + its parent entry. This only has an effect if the entries are numbered + (e.g., via heading numbering).
  • +
  • Relative length: Indents the item by this length + multiplied by its nesting level. Specifying 2em, for instance, + would indent top-level headings (not nested) by 0em, second level + headings by 2em (nested once), third-level headings by 4em + (nested twice) and so on.
  • +
  • Function: You can completely customize this setting + with a function. That function receives the nesting level as a + parameter (starting at 0 for top-level headings/elements) and can + return a relative length or content making up the indent. For example, + n => n * 2em would be equivalent to just specifying 2em, + while n => [] * n would indent with one arrow per nesting + level.
  • +
+

Migration hints: Specifying true (equivalent to auto) or + false (equivalent to none) for this option is deprecated and + will be removed in a future release.

+ example: |- +
#set heading(numbering: "1.a.")
+
+        #outline(
+          title: [Contents (Automatic)],
+          indent: auto,
+        )
+
+        #outline(
+          title: [Contents (Length)],
+          indent: 2em,
+        )
+
+        #outline(
+          title: [Contents (Function)],
+          indent: n => [] * n,
+        )
+
+        = About ACME Corp.
+        == History
+        === Origins
+        #lorem(10)
+
+        == Products
+        #lorem(10)
+        
Preview
+ types: + - none + - auto + - boolean + - relative length + - function + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

Content to fill the space between the title and the page number. Can be + set to none to disable filling.

+ example: |- +
#outline(fill: line(length: 100%))
+
+        = A New Beginning
+        
Preview
+ types: + - none + - content + strings: [] + default: repeat(body: [.]) + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: + - path: + - outline + - entry + display: Outline Entry + keywords: null + oneliner: Represents each entry line in an outline, including the reference + to the + element: true + details: |- +

Represents each entry line in an outline, including the reference to the + outlined element, its page number, and the filler content between both.

+

This element is intended for use with show rules to control the appearance + of outlines.

+

Example

+

The example below shows how to style entries for top-level sections to make + them stand out.

+
#set heading(numbering: "1.")
+
+        #show outline.entry.where(
+          level: 1
+        ): it => {
+          v(12pt, weak: true)
+          strong(it)
+        }
+
+        #outline(indent: auto)
+
+        = Introduction
+        = Background
+        == History
+        == State of the Art
+        = Analysis
+        == Setup
+        
Preview
+

To completely customize an entry's line, you can also build it from scratch + by accessing the level, element, body, fill and page fields on the entry.

+ params: + - name: level + details: |- +

The nesting level of this outline entry. Starts at 1 for top-level + entries.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: element + details: |- +

The element this entry refers to. Its location will be available + through the location method on content + and can be linked to.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: body + details: |- +

The content which is displayed in place of the referred element at its + entry in the outline. For a heading, this would be its number followed + by the heading's title, for example.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: fill + details: |- +

The content used to fill the space between the element's outline and + its page number, as defined by the outline element this entry is + located in. When none, empty space is inserted in that gap instead.

+

Note that, when using show rules to override outline entries, it is + recommended to wrap the filling content in a box with + fractional width. For example, box(width: 1fr, repeat[-]) would show + precisely as many - characters as necessary to fill a particular gap.

+ example: null + types: + - none + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: page + details: |- +

The page number of the element this entry links to, formatted with the + numbering set for the referenced page.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/query-en.yaml b/docs/i18n/meta/query-en.yaml index d2da81ba8818..86faf7ba4fdf 100644 --- a/docs/i18n/meta/query-en.yaml +++ b/docs/i18n/meta/query-en.yaml @@ -1,164 +1,164 @@ -route: /docs/reference/meta/query/ -title: Query -description: Documentation for the `query` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: finding-elements - name: Finding Elements - children: [] -- id: caution - name: Caution - children: [] -- id: migration-hints - name: Migration Hints - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-target - name: target - children: [] - - id: parameters-location - name: location - children: [] -body: - kind: func - content: - path: - - query - display: Query - keywords: null - oneliner: Finds elements in the document. - element: false - details: |- -

Finds elements in the document.

-

The query functions lets you search your document for elements of a - particular type or with a particular label.

-

To use it, you first need to retrieve the current document location with the - locate function. You can then decide whether you want to - find all elements, just the ones before that location, or just the ones - after it.

-

Finding elements

-

In the example below, we create a custom page header that displays the text - "Typst Academy" in small capitals and the current section title. On the - first page, the section title is omitted because the header is before the - first section heading.

-

To realize this layout, we call locate and then query for all headings - after the current location. The function we pass to locate is called twice - in this case: Once per page.

-
    -
  • -

    On the first page the query for all headings before the current location - yields an empty array: There are no previous headings. We check for this - case and and just display "Typst Academy".

    -
  • -
  • -

    For the second page, we retrieve the last element from the query's result. - This is the latest heading before the current position and as such, it is - the heading of the section we are currently in. We access its content - through the body field and display it alongside "Typst Academy".

    -
  • -
-
#set page(header: locate(loc => {
-        let elems = query(
-          selector(heading).before(loc),
-          loc,
-        )
-        let academy = smallcaps[
-          Typst Academy
-        ]
-        if elems == () {
-          align(right, academy)
-        } else {
-          let body = elems.last().body
-          academy + h(1fr) + emph(body)
-        }
-      }))
-
-      = Introduction
-      #lorem(23)
-
-      = Background
-      #lorem(30)
-
-      = Analysis
-      #lorem(15)
-      
Preview
-

A word of caution

-

To resolve all your queries, Typst evaluates and layouts parts of the - document multiple times. However, there is no guarantee that your queries - can actually be completely resolved. If you aren't careful a query can - affect itself—leading to a result that never stabilizes.

-

In the example below, we query for all headings in the document. We then - generate as many headings. In the beginning, there's just one heading, - titled Real. Thus, count is 1 and one Fake heading is generated. - Typst sees that the query's result has changed and processes it again. This - time, count is 2 and two Fake headings are generated. This goes on and - on. As we can see, the output has five headings. This is because Typst - simply gives up after five attempts.

-

In general, you should try not to write queries that affect themselves. - The same words of caution also apply to other introspection features like - counters and state.

-
= Real
-      #locate(loc => {
-        let elems = query(heading, loc)
-        let count = elems.len()
-        count * [= Fake]
-      })
-      
Preview
-

Migration Hints

-

The before and after arguments have been removed in version 0.3.0. You - can now use flexible selector combinator methods instead. For example, - query(heading, before: loc) becomes query(heading.before(loc), loc). - Please refer to the selector documentation for more - details.

- params: - - name: target - details: |- -

Can be an element function like a heading or figure, a <label> - or a more complex selector like heading.where(level: 1).

-

Currently, only a subset of element functions is supported. Aside from - headings and figures, this includes equations, references and all - elements with an explicit label. As a result, you can query for e.g. - strong elements, but you will find only those that - have an explicit label attached to them. This limitation will be - resolved in the future.

- example: null - types: - - label - - function - - selector - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: location - details: |- -

Can be any location. Why is it required then? As noted before, Typst has - to evaluate parts of your code multiple times to determine the values of - all state. By only allowing this function within - locate calls, the amount of code that can depend on - the query's result is reduced. If you could call it directly at the top - level of a module, the evaluation of the whole module and its exports - could depend on the query's result.

- example: null - types: - - location - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - array - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/query/ +title: Query +description: Documentation for the `query` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: finding-elements + name: Finding Elements + children: [] +- id: caution + name: Caution + children: [] +- id: migration-hints + name: Migration Hints + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-target + name: target + children: [] + - id: parameters-location + name: location + children: [] +body: + kind: func + content: + path: + - query + display: Query + keywords: null + oneliner: Finds elements in the document. + element: false + details: |- +

Finds elements in the document.

+

The query functions lets you search your document for elements of a + particular type or with a particular label.

+

To use it, you first need to retrieve the current document location with the + locate function. You can then decide whether you want to + find all elements, just the ones before that location, or just the ones + after it.

+

Finding elements

+

In the example below, we create a custom page header that displays the text + "Typst Academy" in small capitals and the current section title. On the + first page, the section title is omitted because the header is before the + first section heading.

+

To realize this layout, we call locate and then query for all headings + after the current location. The function we pass to locate is called twice + in this case: Once per page.

+
    +
  • +

    On the first page the query for all headings before the current location + yields an empty array: There are no previous headings. We check for this + case and and just display "Typst Academy".

    +
  • +
  • +

    For the second page, we retrieve the last element from the query's result. + This is the latest heading before the current position and as such, it is + the heading of the section we are currently in. We access its content + through the body field and display it alongside "Typst Academy".

    +
  • +
+
#set page(header: locate(loc => {
+        let elems = query(
+          selector(heading).before(loc),
+          loc,
+        )
+        let academy = smallcaps[
+          Typst Academy
+        ]
+        if elems == () {
+          align(right, academy)
+        } else {
+          let body = elems.last().body
+          academy + h(1fr) + emph(body)
+        }
+      }))
+
+      = Introduction
+      #lorem(23)
+
+      = Background
+      #lorem(30)
+
+      = Analysis
+      #lorem(15)
+      
Preview
+

A word of caution

+

To resolve all your queries, Typst evaluates and layouts parts of the + document multiple times. However, there is no guarantee that your queries + can actually be completely resolved. If you aren't careful a query can + affect itself—leading to a result that never stabilizes.

+

In the example below, we query for all headings in the document. We then + generate as many headings. In the beginning, there's just one heading, + titled Real. Thus, count is 1 and one Fake heading is generated. + Typst sees that the query's result has changed and processes it again. This + time, count is 2 and two Fake headings are generated. This goes on and + on. As we can see, the output has five headings. This is because Typst + simply gives up after five attempts.

+

In general, you should try not to write queries that affect themselves. + The same words of caution also apply to other introspection features like + counters and state.

+
= Real
+      #locate(loc => {
+        let elems = query(heading, loc)
+        let count = elems.len()
+        count * [= Fake]
+      })
+      
Preview
+

Migration Hints

+

The before and after arguments have been removed in version 0.3.0. You + can now use flexible selector combinator methods instead. For example, + query(heading, before: loc) becomes query(heading.before(loc), loc). + Please refer to the selector documentation for more + details.

+ params: + - name: target + details: |- +

Can be an element function like a heading or figure, a <label> + or a more complex selector like heading.where(level: 1).

+

Currently, only a subset of element functions is supported. Aside from + headings and figures, this includes equations, references and all + elements with an explicit label. As a result, you can query for e.g. + strong elements, but you will find only those that + have an explicit label attached to them. This limitation will be + resolved in the future.

+ example: null + types: + - label + - function + - selector + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: location + details: |- +

Can be any location. Why is it required then? As noted before, Typst has + to evaluate parts of your code multiple times to determine the values of + all state. By only allowing this function within + locate calls, the amount of code that can depend on + the query's result is reduced. If you could call it directly at the top + level of a module, the evaluation of the whole module and its exports + could depend on the query's result.

+ example: null + types: + - location + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - array + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/ref-en.yaml b/docs/i18n/meta/ref-en.yaml index b231d0466010..1e22aff3890e 100644 --- a/docs/i18n/meta/ref-en.yaml +++ b/docs/i18n/meta/ref-en.yaml @@ -1,158 +1,158 @@ -route: /docs/reference/meta/ref/ -title: Reference -description: Documentation for the `ref` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: customization - name: Customization - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-target - name: target - children: [] - - id: parameters-supplement - name: supplement - children: [] -body: - kind: func - content: - path: - - ref - display: Reference - keywords: null - oneliner: A reference to a label or bibliography. - element: true - details: |- -

A reference to a label or bibliography.

-

Produces a textual reference to a label. For example, a reference to a - heading will yield an appropriate string such as "Section 1" for a reference - to the first heading. The references are also links to the respective - element. Reference syntax can also be used to cite from a - bibliography.

-

Referenceable elements include headings, - figures, equations, and - footnotes. To create a custom referenceable element like a - theorem, you can create a figure of a custom kind and - write a show rule for it. In the future, there might be a more direct way to - define a custom referenceable element.

-

If you just want to link to a labelled element and not get an automatic - textual reference, consider using the link function instead.

-

Example

-
#set heading(numbering: "1.")
-      #set math.equation(numbering: "(1)")
-
-      = Introduction <intro>
-      Recent developments in
-      typesetting software have
-      rekindled hope in previously
-      frustrated researchers. @distress
-      As shown in @results, we ...
-
-      = Results <results>
-      We discuss our approach in
-      comparison with others.
-
-      == Performance <perf>
-      @slow demonstrates what slow
-      software looks like.
-      $ O(n) = 2^n $ <slow>
-
-      #bibliography("works.bib")
-      
Preview
-

Syntax

-

This function also has dedicated syntax: A reference to a label can be - created by typing an @ followed by the name of the label (e.g. - = Introduction <intro> can be referenced by typing @intro).

-

To customize the supplement, add content in square brackets after the - reference: @intro[Chapter].

-

Customization

-

If you write a show rule for references, you can access the referenced - element through the element field of the reference. The element may - be none even if it exists if Typst hasn't discovered it yet, so you - always need to handle that case in your code.

-
#set heading(numbering: "1.")
-      #set math.equation(numbering: "(1)")
-
-      #show ref: it => {
-        let eq = math.equation
-        let el = it.element
-        if el != none and el.func() == eq {
-          // Override equation references.
-          numbering(
-            el.numbering,
-            ..counter(eq).at(el.location())
-          )
-        } else {
-          // Other references as usual.
-          it
-        }
-      }
-
-      = Beginnings <beginning>
-      In @beginning we prove @pythagoras.
-      $ a^2 + b^2 = c^2 $ <pythagoras>
-      
Preview
- params: - - name: target - details:

The target label that should be referenced.

- example: null - types: - - label - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: supplement - details: |- -

A supplement for the reference.

-

For references to headings or figures, this is added before the - referenced number. For citations, this can be used to add a page number.

-

If a function is specified, it is passed the referenced element and - should return content.

- example: |- -
#set heading(numbering: "1.")
-        #set ref(supplement: it => {
-          if it.func() == heading {
-            "Chapter"
-          } else {
-            "Thing"
-          }
-        })
-
-        = Introduction <intro>
-        In @intro, we see how to turn
-        Sections into Chapters. And
-        in @intro[Part], it is done
-        manually.
-        
Preview
- types: - - none - - auto - - content - - function - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/ref/ +title: Reference +description: Documentation for the `ref` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: customization + name: Customization + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-target + name: target + children: [] + - id: parameters-supplement + name: supplement + children: [] +body: + kind: func + content: + path: + - ref + display: Reference + keywords: null + oneliner: A reference to a label or bibliography. + element: true + details: |- +

A reference to a label or bibliography.

+

Produces a textual reference to a label. For example, a reference to a + heading will yield an appropriate string such as "Section 1" for a reference + to the first heading. The references are also links to the respective + element. Reference syntax can also be used to cite from a + bibliography.

+

Referenceable elements include headings, + figures, equations, and + footnotes. To create a custom referenceable element like a + theorem, you can create a figure of a custom kind and + write a show rule for it. In the future, there might be a more direct way to + define a custom referenceable element.

+

If you just want to link to a labelled element and not get an automatic + textual reference, consider using the link function instead.

+

Example

+
#set heading(numbering: "1.")
+      #set math.equation(numbering: "(1)")
+
+      = Introduction <intro>
+      Recent developments in
+      typesetting software have
+      rekindled hope in previously
+      frustrated researchers. @distress
+      As shown in @results, we ...
+
+      = Results <results>
+      We discuss our approach in
+      comparison with others.
+
+      == Performance <perf>
+      @slow demonstrates what slow
+      software looks like.
+      $ O(n) = 2^n $ <slow>
+
+      #bibliography("works.bib")
+      
Preview
+

Syntax

+

This function also has dedicated syntax: A reference to a label can be + created by typing an @ followed by the name of the label (e.g. + = Introduction <intro> can be referenced by typing @intro).

+

To customize the supplement, add content in square brackets after the + reference: @intro[Chapter].

+

Customization

+

If you write a show rule for references, you can access the referenced + element through the element field of the reference. The element may + be none even if it exists if Typst hasn't discovered it yet, so you + always need to handle that case in your code.

+
#set heading(numbering: "1.")
+      #set math.equation(numbering: "(1)")
+
+      #show ref: it => {
+        let eq = math.equation
+        let el = it.element
+        if el != none and el.func() == eq {
+          // Override equation references.
+          numbering(
+            el.numbering,
+            ..counter(eq).at(el.location())
+          )
+        } else {
+          // Other references as usual.
+          it
+        }
+      }
+
+      = Beginnings <beginning>
+      In @beginning we prove @pythagoras.
+      $ a^2 + b^2 = c^2 $ <pythagoras>
+      
Preview
+ params: + - name: target + details:

The target label that should be referenced.

+ example: null + types: + - label + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: supplement + details: |- +

A supplement for the reference.

+

For references to headings or figures, this is added before the + referenced number. For citations, this can be used to add a page number.

+

If a function is specified, it is passed the referenced element and + should return content.

+ example: |- +
#set heading(numbering: "1.")
+        #set ref(supplement: it => {
+          if it.func() == heading {
+            "Chapter"
+          } else {
+            "Thing"
+          }
+        })
+
+        = Introduction <intro>
+        In @intro, we see how to turn
+        Sections into Chapters. And
+        in @intro[Part], it is done
+        manually.
+        
Preview
+ types: + - none + - auto + - content + - function + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/selector-en.yaml b/docs/i18n/meta/selector-en.yaml index c157414d2538..ebf9c1c4d619 100644 --- a/docs/i18n/meta/selector-en.yaml +++ b/docs/i18n/meta/selector-en.yaml @@ -1,60 +1,60 @@ -route: /docs/reference/meta/selector/ -title: Selector -description: Documentation for the `selector` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-target - name: target - children: [] -body: - kind: func - content: - path: - - selector - display: Selector - keywords: null - oneliner: 'Turns a value into a selector. The following values are accepted:' - element: false - details: |- -

Turns a value into a selector. The following values are accepted:

-
    -
  • An element function like a heading or figure.
  • -
  • A <label>.
  • -
  • A more complex selector like heading.where(level: 1).
  • -
- params: - - name: target - details: |- -

Can be an element function like a heading or figure, a <label> - or a more complex selector like heading.where(level: 1).

- example: null - types: - - string - - label - - function - - location - - selector - - regular expression - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - - label - - function - - location - - selector - - regular expression - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/selector/ +title: Selector +description: Documentation for the `selector` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-target + name: target + children: [] +body: + kind: func + content: + path: + - selector + display: Selector + keywords: null + oneliner: 'Turns a value into a selector. The following values are accepted:' + element: false + details: |- +

Turns a value into a selector. The following values are accepted:

+
    +
  • An element function like a heading or figure.
  • +
  • A <label>.
  • +
  • A more complex selector like heading.where(level: 1).
  • +
+ params: + - name: target + details: |- +

Can be an element function like a heading or figure, a <label> + or a more complex selector like heading.where(level: 1).

+ example: null + types: + - string + - label + - function + - location + - selector + - regular expression + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + - label + - function + - location + - selector + - regular expression + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/meta/state-en.yaml b/docs/i18n/meta/state-en.yaml index 001b13318f94..e12aae55090b 100644 --- a/docs/i18n/meta/state-en.yaml +++ b/docs/i18n/meta/state-en.yaml @@ -1,326 +1,326 @@ -route: /docs/reference/meta/state/ -title: State -description: Documentation for the `state` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: state-and-markup - name: State And Markup - children: [] -- id: state-in-typst - name: State In Typst - children: [] -- id: time-travel - name: Time Travel - children: [] -- id: caution - name: Caution - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-key - name: key - children: [] - - id: parameters-init - name: init - children: [] -- id: methods - name: Methods - children: - - id: methods-display - name: display - children: - - id: methods-display-parameters-format - name: format - children: [] - - id: methods-update - name: update - children: - - id: methods-update-parameters-value - name: value - children: [] - - id: methods-at - name: at - children: - - id: methods-at-parameters-location - name: location - children: [] - - id: methods-final - name: final - children: - - id: methods-final-parameters-location - name: location - children: [] -body: - kind: func - content: - path: - - state - display: State - keywords: null - oneliner: Manages stateful parts of your document. - element: false - details: |- -

Manages stateful parts of your document.

-

Let's say you have some computations in your document and want to remember - the result of your last computation to use it in the next one. You might try - something similar to the code below and expect it to output 10, 13, 26, and - 21. However this does not work in Typst. If you test this code, you will - see that Typst complains with the following error message: Variables from - outside the function are read-only and cannot be modified.

-
#let x = 0
-      #let compute(expr) = {
-        x = eval(
-          expr.replace("x", str(x))
-        )
-        [New value is #x. ]
-      }
-
-      #compute("10") \
-      #compute("x + 3") \
-      #compute("x * 2") \
-      #compute("x - 5")
-      
-

State and document markup

-

Why does it do that? Because, in general, this kind of computation with side - effects is problematic in document markup and Typst is upfront about that. - For the results to make sense, the computation must proceed in the same - order in which the results will be laid out in the document. In our simple - example, that's the case, but in general it might not be.

-

Let's look at a slightly different, but similar kind of state: The heading - numbering. We want to increase the heading counter at each heading. Easy - enough, right? Just add one. Well, it's not that simple. Consider the - following example:

-
#set heading(numbering: "1.")
-      #let template(body) = [
-        = Outline
-        ...
-        #body
-      ]
-
-      #show: template
-
-      = Introduction
-      ...
-      
Preview
-

Here, Typst first processes the body of the document after the show rule, - sees the Introduction heading, then passes the resulting content to the - template function and only then sees the Outline. Just counting up would - number the Introduction with 1 and the Outline with 2.

-

Managing state in Typst

-

So what do we do instead? We use Typst's state management system. Calling - the state function with an identifying string key and an optional initial - value gives you a state value which exposes a few methods. The two most - important ones are display and update:

-
    -
  • -

    The display method shows the current value of the state. You can - optionally give it a function that receives the value and formats it in - some way.

    -
  • -
  • -

    The update method modifies the state. You can give it any value. If - given a non-function value, it sets the state to that value. If given a - function, that function receives the previous state and has to return the - new state.

    -
  • -
-

Our initial example would now look like this:

-
#let s = state("x", 0)
-      #let compute(expr) = [
-        #s.update(x =>
-          eval(expr.replace("x", str(x)))
-        )
-        New value is #s.display().
-      ]
-
-      #compute("10") \
-      #compute("x + 3") \
-      #compute("x * 2") \
-      #compute("x - 5")
-      
Preview
-

State managed by Typst is always updated in layout order, not in evaluation - order. The update method returns content and its effect occurs at the - position where the returned content is inserted into the document.

-

As a result, we can now also store some of the computations in - variables, but they still show the correct results:

-
...
-
-      #let more = [
-        #compute("x * 2") \
-        #compute("x - 5")
-      ]
-
-      #compute("10") \
-      #compute("x + 3") \
-      #more
-      
Preview
-

This example is of course a bit silly, but in practice this is often exactly - what you want! A good example are heading counters, which is why Typst's - counting system is very similar to its state system.

-

Time Travel

-

By using Typst's state management system you also get time travel - capabilities! By combining the state system with locate - and query, we can find out what the value of the state will - be at any position in the document from anywhere else. In particular, the - at method gives us the value of the state at any location and the final - methods gives us the value of the state at the end of the document.

-
...
-
-      Value at `<here>` is
-      #locate(loc => s.at(
-        query(<here>, loc)
-          .first()
-          .location()
-      ))
-
-      #compute("10") \
-      #compute("x + 3") \
-      *Here.* <here> \
-      #compute("x * 2") \
-      #compute("x - 5")
-      
Preview
-

A word of caution

-

To resolve the values of all states, Typst evaluates parts of your code - multiple times. However, there is no guarantee that your state manipulation - can actually be completely resolved.

-

For instance, if you generate state updates depending on the final value of - a state, the results might never converge. The example below illustrates - this. We initialize our state with 1 and then update it to its own final - value plus 1. So it should be 2, but then its final value is 2, so it - should be 3, and so on. This example display 4 because Typst simply - gives up after a few attempts.

-
#let s = state("x", 1)
-      #locate(loc => {
-        s.update(s.final(loc) + 1)
-      })
-      #s.display()
-      
Preview
-

In general, you should typically not generate state updates from within - locate calls or display calls of state or counters. Instead, pass a - function to update that determines the value of the state based on its - previous value.

- params: - - name: key - details:

The key that identifies this state.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: init - details:

The initial value of the state.

- example: null - types: - - any - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: false - returns: - - state - methods: - - name: display - details:

Displays the value of the state.

- params: - - name: format - details: |- -

A function which receives the value of the state and can return arbitrary - content which is then displayed. If this is omitted, the value is directly - displayed.

- example: null - types: - - function - strings: [] - default: null - positional: true - named: false - required: false - variadic: false - settable: false - returns: - - content - - name: update - details: |- -

Updates the value of the state.

-

The update will be in effect at the position where the returned content is - inserted into the document. If you don't put the output into the document, - nothing happens! This would be the case, for example, if you write - let _ = state("key").update(7). State updates are always applied in - layout order and in that case, Typst wouldn't know when to update the state.

- params: - - name: value - details: |- -

If given a non function-value, sets the state to that value. If given a - function, that function receives the previous state and has to return the - new state.

- example: null - types: - - any - - function - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - - name: at - details:

Gets the value of the state at the given location.

- params: - - name: location - details: |- -

The location at which the state's value should be retrieved. A suitable - location can be retrieved from locate or - query.

- example: null - types: - - location - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - - name: final - details:

Gets the value of the state at the end of the document.

- params: - - name: location - details: |- -

Can be any location. Why is it required then? As noted before, Typst has - to evaluate parts of your code multiple times to determine the values of - all state. By only allowing this method within locate - calls, the amount of code that can depend on the method's result is - reduced. If you could call final directly at the top level of a module, - the evaluation of the whole module and its exports could depend on the - state's value.

- example: null - types: - - location - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - any - scope: [] -children: [] +route: /docs/reference/meta/state/ +title: State +description: Documentation for the `state` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: state-and-markup + name: State And Markup + children: [] +- id: state-in-typst + name: State In Typst + children: [] +- id: time-travel + name: Time Travel + children: [] +- id: caution + name: Caution + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-key + name: key + children: [] + - id: parameters-init + name: init + children: [] +- id: methods + name: Methods + children: + - id: methods-display + name: display + children: + - id: methods-display-parameters-format + name: format + children: [] + - id: methods-update + name: update + children: + - id: methods-update-parameters-value + name: value + children: [] + - id: methods-at + name: at + children: + - id: methods-at-parameters-location + name: location + children: [] + - id: methods-final + name: final + children: + - id: methods-final-parameters-location + name: location + children: [] +body: + kind: func + content: + path: + - state + display: State + keywords: null + oneliner: Manages stateful parts of your document. + element: false + details: |- +

Manages stateful parts of your document.

+

Let's say you have some computations in your document and want to remember + the result of your last computation to use it in the next one. You might try + something similar to the code below and expect it to output 10, 13, 26, and + 21. However this does not work in Typst. If you test this code, you will + see that Typst complains with the following error message: Variables from + outside the function are read-only and cannot be modified.

+
#let x = 0
+      #let compute(expr) = {
+        x = eval(
+          expr.replace("x", str(x))
+        )
+        [New value is #x. ]
+      }
+
+      #compute("10") \
+      #compute("x + 3") \
+      #compute("x * 2") \
+      #compute("x - 5")
+      
+

State and document markup

+

Why does it do that? Because, in general, this kind of computation with side + effects is problematic in document markup and Typst is upfront about that. + For the results to make sense, the computation must proceed in the same + order in which the results will be laid out in the document. In our simple + example, that's the case, but in general it might not be.

+

Let's look at a slightly different, but similar kind of state: The heading + numbering. We want to increase the heading counter at each heading. Easy + enough, right? Just add one. Well, it's not that simple. Consider the + following example:

+
#set heading(numbering: "1.")
+      #let template(body) = [
+        = Outline
+        ...
+        #body
+      ]
+
+      #show: template
+
+      = Introduction
+      ...
+      
Preview
+

Here, Typst first processes the body of the document after the show rule, + sees the Introduction heading, then passes the resulting content to the + template function and only then sees the Outline. Just counting up would + number the Introduction with 1 and the Outline with 2.

+

Managing state in Typst

+

So what do we do instead? We use Typst's state management system. Calling + the state function with an identifying string key and an optional initial + value gives you a state value which exposes a few methods. The two most + important ones are display and update:

+
    +
  • +

    The display method shows the current value of the state. You can + optionally give it a function that receives the value and formats it in + some way.

    +
  • +
  • +

    The update method modifies the state. You can give it any value. If + given a non-function value, it sets the state to that value. If given a + function, that function receives the previous state and has to return the + new state.

    +
  • +
+

Our initial example would now look like this:

+
#let s = state("x", 0)
+      #let compute(expr) = [
+        #s.update(x =>
+          eval(expr.replace("x", str(x)))
+        )
+        New value is #s.display().
+      ]
+
+      #compute("10") \
+      #compute("x + 3") \
+      #compute("x * 2") \
+      #compute("x - 5")
+      
Preview
+

State managed by Typst is always updated in layout order, not in evaluation + order. The update method returns content and its effect occurs at the + position where the returned content is inserted into the document.

+

As a result, we can now also store some of the computations in + variables, but they still show the correct results:

+
...
+
+      #let more = [
+        #compute("x * 2") \
+        #compute("x - 5")
+      ]
+
+      #compute("10") \
+      #compute("x + 3") \
+      #more
+      
Preview
+

This example is of course a bit silly, but in practice this is often exactly + what you want! A good example are heading counters, which is why Typst's + counting system is very similar to its state system.

+

Time Travel

+

By using Typst's state management system you also get time travel + capabilities! By combining the state system with locate + and query, we can find out what the value of the state will + be at any position in the document from anywhere else. In particular, the + at method gives us the value of the state at any location and the final + methods gives us the value of the state at the end of the document.

+
...
+
+      Value at `<here>` is
+      #locate(loc => s.at(
+        query(<here>, loc)
+          .first()
+          .location()
+      ))
+
+      #compute("10") \
+      #compute("x + 3") \
+      *Here.* <here> \
+      #compute("x * 2") \
+      #compute("x - 5")
+      
Preview
+

A word of caution

+

To resolve the values of all states, Typst evaluates parts of your code + multiple times. However, there is no guarantee that your state manipulation + can actually be completely resolved.

+

For instance, if you generate state updates depending on the final value of + a state, the results might never converge. The example below illustrates + this. We initialize our state with 1 and then update it to its own final + value plus 1. So it should be 2, but then its final value is 2, so it + should be 3, and so on. This example display 4 because Typst simply + gives up after a few attempts.

+
#let s = state("x", 1)
+      #locate(loc => {
+        s.update(s.final(loc) + 1)
+      })
+      #s.display()
+      
Preview
+

In general, you should typically not generate state updates from within + locate calls or display calls of state or counters. Instead, pass a + function to update that determines the value of the state based on its + previous value.

+ params: + - name: key + details:

The key that identifies this state.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: init + details:

The initial value of the state.

+ example: null + types: + - any + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: false + returns: + - state + methods: + - name: display + details:

Displays the value of the state.

+ params: + - name: format + details: |- +

A function which receives the value of the state and can return arbitrary + content which is then displayed. If this is omitted, the value is directly + displayed.

+ example: null + types: + - function + strings: [] + default: null + positional: true + named: false + required: false + variadic: false + settable: false + returns: + - content + - name: update + details: |- +

Updates the value of the state.

+

The update will be in effect at the position where the returned content is + inserted into the document. If you don't put the output into the document, + nothing happens! This would be the case, for example, if you write + let _ = state("key").update(7). State updates are always applied in + layout order and in that case, Typst wouldn't know when to update the state.

+ params: + - name: value + details: |- +

If given a non function-value, sets the state to that value. If given a + function, that function receives the previous state and has to return the + new state.

+ example: null + types: + - any + - function + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + - name: at + details:

Gets the value of the state at the given location.

+ params: + - name: location + details: |- +

The location at which the state's value should be retrieved. A suitable + location can be retrieved from locate or + query.

+ example: null + types: + - location + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + - name: final + details:

Gets the value of the state at the end of the document.

+ params: + - name: location + details: |- +

Can be any location. Why is it required then? As noted before, Typst has + to evaluate parts of your code multiple times to determine the values of + all state. By only allowing this method within locate + calls, the amount of code that can depend on the method's result is + reduced. If you could call final directly at the top level of a module, + the evaluation of the whole module and its exports could depend on the + state's value.

+ example: null + types: + - location + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - any + scope: [] +children: [] diff --git a/docs/i18n/meta/style-en.yaml b/docs/i18n/meta/style-en.yaml index 97ec00d28bfc..3ad3568076c1 100644 --- a/docs/i18n/meta/style-en.yaml +++ b/docs/i18n/meta/style-en.yaml @@ -1,60 +1,60 @@ -route: /docs/reference/meta/style/ -title: Style -description: Documentation for the `style` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-func - name: func - children: [] -body: - kind: func - content: - path: - - style - display: Style - keywords: null - oneliner: Provides access to active styles. - element: false - details: |- -

Provides access to active styles.

-

The styles are currently opaque and only useful in combination with the - measure function. See its documentation for more details. - In the future, the provided styles might also be directly accessed to look - up styles defined by set rules.

-
#let thing(body) = style(styles => {
-        let size = measure(body, styles)
-        [Width of "#body" is #size.width]
-      })
-
-      #thing[Hey] \
-      #thing[Welcome]
-      
Preview
- params: - - name: func - details: |- -

A function to call with the styles. Its return value is displayed - in the document.

-

This function is called once for each time the content returned by - style appears in the document. That makes it possible to generate - content that depends on the style context it appears in.

- example: null - types: - - function - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/meta/style/ +title: Style +description: Documentation for the `style` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-func + name: func + children: [] +body: + kind: func + content: + path: + - style + display: Style + keywords: null + oneliner: Provides access to active styles. + element: false + details: |- +

Provides access to active styles.

+

The styles are currently opaque and only useful in combination with the + measure function. See its documentation for more details. + In the future, the provided styles might also be directly accessed to look + up styles defined by set rules.

+
#let thing(body) = style(styles => {
+        let size = measure(body, styles)
+        [Width of "#body" is #size.width]
+      })
+
+      #thing[Hey] \
+      #thing[Welcome]
+      
Preview
+ params: + - name: func + details: |- +

A function to call with the styles. Its return value is displayed + in the document.

+

This function is called once for each time the content returned by + style appears in the document. That makes it possible to generate + content that depends on the style context it appears in.

+ example: null + types: + - function + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/emph-en.yaml b/docs/i18n/text/emph-en.yaml index b1d5d9a5ea07..82ec32c6542b 100644 --- a/docs/i18n/text/emph-en.yaml +++ b/docs/i18n/text/emph-en.yaml @@ -1,69 +1,69 @@ -route: /docs/reference/text/emph/ -title: Emphasis -description: Documentation for the `emph` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - emph - display: Emphasis - keywords: null - oneliner: Emphasizes content by setting it in italics. - element: true - details: |- -

Emphasizes content by setting it in italics.

-
    -
  • If the current text style is "normal", - this turns it into "italic".
  • -
  • If it is already "italic" or "oblique", - it turns it back to "normal".
  • -
-

Example

-
This is _emphasized._ \
-      This is #emph[too.]
-
-      #show emph: it => {
-        text(blue, it.body)
-      }
-
-      This is _emphasized_ differently.
-      
Preview
-

Syntax

-

This function also has dedicated syntax: To emphasize content, simply - enclose it in underscores (_). Note that this only works at word - boundaries. To emphasize part of a word, you have to use the function.

- params: - - name: body - details:

The content to emphasize.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/emph/ +title: Emphasis +description: Documentation for the `emph` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - emph + display: Emphasis + keywords: null + oneliner: Emphasizes content by setting it in italics. + element: true + details: |- +

Emphasizes content by setting it in italics.

+
    +
  • If the current text style is "normal", + this turns it into "italic".
  • +
  • If it is already "italic" or "oblique", + it turns it back to "normal".
  • +
+

Example

+
This is _emphasized._ \
+      This is #emph[too.]
+
+      #show emph: it => {
+        text(blue, it.body)
+      }
+
+      This is _emphasized_ differently.
+      
Preview
+

Syntax

+

This function also has dedicated syntax: To emphasize content, simply + enclose it in underscores (_). Note that this only works at word + boundaries. To emphasize part of a word, you have to use the function.

+ params: + - name: body + details:

The content to emphasize.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/linebreak-en.yaml b/docs/i18n/text/linebreak-en.yaml index cb7fa13fef65..308cd4a8c544 100644 --- a/docs/i18n/text/linebreak-en.yaml +++ b/docs/i18n/text/linebreak-en.yaml @@ -1,71 +1,71 @@ -route: /docs/reference/text/linebreak/ -title: Line Break -description: Documentation for the `linebreak` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-justify - name: justify - children: [] -body: - kind: func - content: - path: - - linebreak - display: Line Break - keywords: null - oneliner: Inserts a line break. - element: true - details: |- -

Inserts a line break.

-

Advances the paragraph to the next line. A single trailing line break at the - end of a paragraph is ignored, but more than one creates additional empty - lines.

-

Example

-
*Date:* 26.12.2022 \
-      *Topic:* Infrastructure Test \
-      *Severity:* High \
-      
Preview
-

Syntax

-

This function also has dedicated syntax: To insert a line break, simply write - a backslash followed by whitespace. This always creates an unjustified - break.

- params: - - name: justify - details: |- -

Whether to justify the line before the break.

-

This is useful if you found a better line break opportunity in your - justified text than Typst did.

- example: |- -
#set par(justify: true)
-        #let jb = linebreak(justify: true)
-
-        I have manually tuned the #jb
-        line breaks in this paragraph #jb
-        for an _interesting_ result. #jb
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/linebreak/ +title: Line Break +description: Documentation for the `linebreak` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-justify + name: justify + children: [] +body: + kind: func + content: + path: + - linebreak + display: Line Break + keywords: null + oneliner: Inserts a line break. + element: true + details: |- +

Inserts a line break.

+

Advances the paragraph to the next line. A single trailing line break at the + end of a paragraph is ignored, but more than one creates additional empty + lines.

+

Example

+
*Date:* 26.12.2022 \
+      *Topic:* Infrastructure Test \
+      *Severity:* High \
+      
Preview
+

Syntax

+

This function also has dedicated syntax: To insert a line break, simply write + a backslash followed by whitespace. This always creates an unjustified + break.

+ params: + - name: justify + details: |- +

Whether to justify the line before the break.

+

This is useful if you found a better line break opportunity in your + justified text than Typst did.

+ example: |- +
#set par(justify: true)
+        #let jb = linebreak(justify: true)
+
+        I have manually tuned the #jb
+        line breaks in this paragraph #jb
+        for an _interesting_ result. #jb
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/lorem-en.yaml b/docs/i18n/text/lorem-en.yaml index fb7205a634c2..1388d45ff3ac 100644 --- a/docs/i18n/text/lorem-en.yaml +++ b/docs/i18n/text/lorem-en.yaml @@ -1,57 +1,57 @@ -route: /docs/reference/text/lorem/ -title: Blind Text -description: Documentation for the `lorem` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-words - name: words - children: [] -body: - kind: func - content: - path: - - lorem - display: Blind Text - keywords: null - oneliner: Creates blind text. - element: false - details: |- -

Creates blind text.

-

This function yields a Latin-like Lorem Ipsum blind text with the given - number of words. The sequence of words generated by the function is always - the same but randomly chosen. As usual for blind texts, it does not make any - sense. Use it as a placeholder to try layouts.

-

Example

-
= Blind Text
-      #lorem(30)
-
-      = More Blind Text
-      #lorem(15)
-      
Preview
- params: - - name: words - details:

The length of the blind text in words.

- example: null - types: - - integer - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - methods: [] - scope: [] -children: [] +route: /docs/reference/text/lorem/ +title: Blind Text +description: Documentation for the `lorem` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-words + name: words + children: [] +body: + kind: func + content: + path: + - lorem + display: Blind Text + keywords: null + oneliner: Creates blind text. + element: false + details: |- +

Creates blind text.

+

This function yields a Latin-like Lorem Ipsum blind text with the given + number of words. The sequence of words generated by the function is always + the same but randomly chosen. As usual for blind texts, it does not make any + sense. Use it as a placeholder to try layouts.

+

Example

+
= Blind Text
+      #lorem(30)
+
+      = More Blind Text
+      #lorem(15)
+      
Preview
+ params: + - name: words + details:

The length of the blind text in words.

+ example: null + types: + - integer + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/lower-en.yaml b/docs/i18n/text/lower-en.yaml index ff802829c688..e72bd87a5313 100644 --- a/docs/i18n/text/lower-en.yaml +++ b/docs/i18n/text/lower-en.yaml @@ -1,53 +1,53 @@ -route: /docs/reference/text/lower/ -title: Lowercase -description: Documentation for the `lower` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-text - name: text - children: [] -body: - kind: func - content: - path: - - lower - display: Lowercase - keywords: null - oneliner: Converts text or content to lowercase. - element: false - details: |- -

Converts text or content to lowercase.

-

Example

-
#lower("ABC") \
-      #lower[*My Text*] \
-      #lower[already low]
-      
Preview
- params: - - name: text - details:

The text to convert to lowercase.

- example: null - types: - - string - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/lower/ +title: Lowercase +description: Documentation for the `lower` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-text + name: text + children: [] +body: + kind: func + content: + path: + - lower + display: Lowercase + keywords: null + oneliner: Converts text or content to lowercase. + element: false + details: |- +

Converts text or content to lowercase.

+

Example

+
#lower("ABC") \
+      #lower[*My Text*] \
+      #lower[already low]
+      
Preview
+ params: + - name: text + details:

The text to convert to lowercase.

+ example: null + types: + - string + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/overline-en.yaml b/docs/i18n/text/overline-en.yaml index 79dfcca8b8bb..f2283c95d930 100644 --- a/docs/i18n/text/overline-en.yaml +++ b/docs/i18n/text/overline-en.yaml @@ -1,147 +1,147 @@ -route: /docs/reference/text/overline/ -title: Overline -description: Documentation for the `overline` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-offset - name: offset - children: [] - - id: parameters-extent - name: extent - children: [] - - id: parameters-evade - name: evade - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - overline - display: Overline - keywords: null - oneliner: Adds a line over text. - element: true - details: |- -

Adds a line over text.

-

Example

-
#overline[A line over text.]
-      
Preview
- params: - - name: stroke - details: |- -

How to stroke the line.

-

See the line's documentation for more details. If - set to auto, takes on the text's color and a thickness defined in - the current font.

- example: |- -
#set text(fill: olive)
-        #overline(
-          stroke: green.darken(20%),
-          offset: -12pt,
-          [The Forest Theme],
-        )
-        
Preview
- types: - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: offset - details: |- -

The position of the line relative to the baseline. Read from the font - tables if auto.

- example: |- -
#overline(offset: -1.2em)[
-          The Tale Of A Faraway Line II
-        ]
-        
Preview
- types: - - auto - - length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: extent - details: |- -

The amount by which to extend the line beyond (or within if negative) - the content.

- example: |- -
#set overline(extent: 4pt)
-        #set underline(extent: 4pt)
-        #overline(underline[Typography Today])
-        
Preview
- types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: evade - details: |- -

Whether the line skips sections in which it would collide with the - glyphs.

- example: |- -
#overline(
-          evade: false,
-          offset: -7.5pt,
-          stroke: 1pt,
-          extent: 3pt,
-          [Temple],
-        )
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to add a line over.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/overline/ +title: Overline +description: Documentation for the `overline` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-offset + name: offset + children: [] + - id: parameters-extent + name: extent + children: [] + - id: parameters-evade + name: evade + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - overline + display: Overline + keywords: null + oneliner: Adds a line over text. + element: true + details: |- +

Adds a line over text.

+

Example

+
#overline[A line over text.]
+      
Preview
+ params: + - name: stroke + details: |- +

How to stroke the line.

+

See the line's documentation for more details. If + set to auto, takes on the text's color and a thickness defined in + the current font.

+ example: |- +
#set text(fill: olive)
+        #overline(
+          stroke: green.darken(20%),
+          offset: -12pt,
+          [The Forest Theme],
+        )
+        
Preview
+ types: + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: offset + details: |- +

The position of the line relative to the baseline. Read from the font + tables if auto.

+ example: |- +
#overline(offset: -1.2em)[
+          The Tale Of A Faraway Line II
+        ]
+        
Preview
+ types: + - auto + - length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: extent + details: |- +

The amount by which to extend the line beyond (or within if negative) + the content.

+ example: |- +
#set overline(extent: 4pt)
+        #set underline(extent: 4pt)
+        #overline(underline[Typography Today])
+        
Preview
+ types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: evade + details: |- +

Whether the line skips sections in which it would collide with the + glyphs.

+ example: |- +
#overline(
+          evade: false,
+          offset: -7.5pt,
+          stroke: 1pt,
+          extent: 3pt,
+          [Temple],
+        )
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to add a line over.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/raw-en.yaml b/docs/i18n/text/raw-en.yaml index c5639c149c0f..d974b1aecbe6 100644 --- a/docs/i18n/text/raw-en.yaml +++ b/docs/i18n/text/raw-en.yaml @@ -1,180 +1,180 @@ -route: /docs/reference/text/raw/ -title: Raw Text / Code -description: Documentation for the `raw` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-text - name: text - children: [] - - id: parameters-block - name: block - children: [] - - id: parameters-lang - name: lang - children: [] - - id: parameters-align - name: align - children: [] -body: - kind: func - content: - path: - - raw - display: Raw Text / Code - keywords: null - oneliner: Raw text with optional syntax highlighting. - element: true - details: |- -

Raw text with optional syntax highlighting.

-

Displays the text verbatim and in a monospace font. This is typically used - to embed computer code into your document.

-

Example

-
Adding `rbx` to `rcx` gives
-      the desired result.
-
-      ```rust
-      fn main() {
-          println!("Hello World!");
-      }
-      ```
-      
Preview
-

Syntax

-

This function also has dedicated syntax. You can enclose text in 1 or 3+ - backticks (`) to make it raw. Two backticks produce empty raw text. - When you use three or more backticks, you can additionally specify a - language tag for syntax highlighting directly after the opening backticks. - Within raw blocks, everything is rendered as is, in particular, there are no - escape sequences.

- params: - - name: text - details: |- -

The raw text.

-

You can also use raw blocks creatively to create custom syntaxes for - your automations.

- example: |- -
// Parse numbers in raw blocks with the
-        // `mydsl` tag and sum them up.
-        #show raw.where(lang: "mydsl"): it => {
-          let sum = 0
-          for part in it.text.split("+") {
-            sum += int(part.trim())
-          }
-          sum
-        }
-
-        ```mydsl
-        1 + 2 + 3 + 4 + 5
-        ```
-        
Preview
- types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: block - details: |- -

Whether the raw text is displayed as a separate block.

-

In markup mode, using one-backtick notation makes this false, - whereas using three-backtick notation makes it true.

- example: |- -
// Display inline code in a small box
-        // that retains the correct baseline.
-        #show raw.where(block: false): box.with(
-          fill: luma(240),
-          inset: (x: 3pt, y: 0pt),
-          outset: (y: 3pt),
-          radius: 2pt,
-        )
-
-        // Display block code in a larger block
-        // with more padding.
-        #show raw.where(block: true): block.with(
-          fill: luma(240),
-          inset: 10pt,
-          radius: 4pt,
-        )
-
-        With `rg`, you can search through your files quickly.
-
-        ```bash
-        rg "Hello World"
-        ```
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: lang - details: |- -

The language to syntax-highlight in.

-

Apart from typical language tags known from Markdown, this supports the - "typ" and "typc" tags for Typst markup and Typst code, - respectively.

- example: |- -
```typ
-        This is *Typst!*
-        ```
-        
Preview
- types: - - none - - string - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: align - details: |- -

The horizontal alignment that each line in a raw block should have. - This option is ignored if this is not a raw block (if specified - block: false or single backticks were used in markup mode).

-

By default, this is set to start, meaning that raw text is - aligned towards the start of the text direction inside the block - by default, regardless of the current context's alignment (allowing - you to center the raw block itself without centering the text inside - it, for example).

- example: |- -
#set raw(align: center)
-
-        ```typc
-        let f(x) = x
-        code = "centered"
-        ```
-        
Preview
- types: - - alignment - strings: [] - default: start - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/raw/ +title: Raw Text / Code +description: Documentation for the `raw` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-text + name: text + children: [] + - id: parameters-block + name: block + children: [] + - id: parameters-lang + name: lang + children: [] + - id: parameters-align + name: align + children: [] +body: + kind: func + content: + path: + - raw + display: Raw Text / Code + keywords: null + oneliner: Raw text with optional syntax highlighting. + element: true + details: |- +

Raw text with optional syntax highlighting.

+

Displays the text verbatim and in a monospace font. This is typically used + to embed computer code into your document.

+

Example

+
Adding `rbx` to `rcx` gives
+      the desired result.
+
+      ```rust
+      fn main() {
+          println!("Hello World!");
+      }
+      ```
+      
Preview
+

Syntax

+

This function also has dedicated syntax. You can enclose text in 1 or 3+ + backticks (`) to make it raw. Two backticks produce empty raw text. + When you use three or more backticks, you can additionally specify a + language tag for syntax highlighting directly after the opening backticks. + Within raw blocks, everything is rendered as is, in particular, there are no + escape sequences.

+ params: + - name: text + details: |- +

The raw text.

+

You can also use raw blocks creatively to create custom syntaxes for + your automations.

+ example: |- +
// Parse numbers in raw blocks with the
+        // `mydsl` tag and sum them up.
+        #show raw.where(lang: "mydsl"): it => {
+          let sum = 0
+          for part in it.text.split("+") {
+            sum += int(part.trim())
+          }
+          sum
+        }
+
+        ```mydsl
+        1 + 2 + 3 + 4 + 5
+        ```
+        
Preview
+ types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: block + details: |- +

Whether the raw text is displayed as a separate block.

+

In markup mode, using one-backtick notation makes this false, + whereas using three-backtick notation makes it true.

+ example: |- +
// Display inline code in a small box
+        // that retains the correct baseline.
+        #show raw.where(block: false): box.with(
+          fill: luma(240),
+          inset: (x: 3pt, y: 0pt),
+          outset: (y: 3pt),
+          radius: 2pt,
+        )
+
+        // Display block code in a larger block
+        // with more padding.
+        #show raw.where(block: true): block.with(
+          fill: luma(240),
+          inset: 10pt,
+          radius: 4pt,
+        )
+
+        With `rg`, you can search through your files quickly.
+
+        ```bash
+        rg "Hello World"
+        ```
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: lang + details: |- +

The language to syntax-highlight in.

+

Apart from typical language tags known from Markdown, this supports the + "typ" and "typc" tags for Typst markup and Typst code, + respectively.

+ example: |- +
```typ
+        This is *Typst!*
+        ```
+        
Preview
+ types: + - none + - string + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: align + details: |- +

The horizontal alignment that each line in a raw block should have. + This option is ignored if this is not a raw block (if specified + block: false or single backticks were used in markup mode).

+

By default, this is set to start, meaning that raw text is + aligned towards the start of the text direction inside the block + by default, regardless of the current context's alignment (allowing + you to center the raw block itself without centering the text inside + it, for example).

+ example: |- +
#set raw(align: center)
+
+        ```typc
+        let f(x) = x
+        code = "centered"
+        ```
+        
Preview
+ types: + - alignment + strings: [] + default: start + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/smallcaps-en.yaml b/docs/i18n/text/smallcaps-en.yaml index 28d073e90fdd..67b5d8cf5c12 100644 --- a/docs/i18n/text/smallcaps-en.yaml +++ b/docs/i18n/text/smallcaps-en.yaml @@ -1,64 +1,64 @@ -route: /docs/reference/text/smallcaps/ -title: Small Capitals -description: Documentation for the `smallcaps` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - smallcaps - display: Small Capitals - keywords: null - oneliner: Displays text in small capitals. - element: false - details: |- -

Displays text in small capitals.

-

Note: This enables the OpenType smcp feature for the font. Not all fonts - support this feature. Sometimes smallcaps are part of a dedicated font and - sometimes they are not available at all. In the future, this function will - support selecting a dedicated smallcaps font as well as synthesizing - smallcaps from normal letters, but this is not yet implemented.

-

Example

-
#set par(justify: true)
-      #set heading(numbering: "I.")
-
-      #show heading: it => {
-        set block(below: 10pt)
-        set text(weight: "regular")
-        align(center, smallcaps(it))
-      }
-
-      = Introduction
-      #lorem(40)
-      
Preview
- params: - - name: body - details:

The text to display to small capitals.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/smallcaps/ +title: Small Capitals +description: Documentation for the `smallcaps` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - smallcaps + display: Small Capitals + keywords: null + oneliner: Displays text in small capitals. + element: false + details: |- +

Displays text in small capitals.

+

Note: This enables the OpenType smcp feature for the font. Not all fonts + support this feature. Sometimes smallcaps are part of a dedicated font and + sometimes they are not available at all. In the future, this function will + support selecting a dedicated smallcaps font as well as synthesizing + smallcaps from normal letters, but this is not yet implemented.

+

Example

+
#set par(justify: true)
+      #set heading(numbering: "I.")
+
+      #show heading: it => {
+        set block(below: 10pt)
+        set text(weight: "regular")
+        align(center, smallcaps(it))
+      }
+
+      = Introduction
+      #lorem(40)
+      
Preview
+ params: + - name: body + details:

The text to display to small capitals.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/smartquote-en.yaml b/docs/i18n/text/smartquote-en.yaml index 3497c8ed762a..e13a10c24ca8 100644 --- a/docs/i18n/text/smartquote-en.yaml +++ b/docs/i18n/text/smartquote-en.yaml @@ -1,85 +1,85 @@ -route: /docs/reference/text/smartquote/ -title: Smart Quote -description: Documentation for the `smartquote` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-double - name: double - children: [] - - id: parameters-enabled - name: enabled - children: [] -body: - kind: func - content: - path: - - smartquote - display: Smart Quote - keywords: null - oneliner: A language-aware quote that reacts to its context. - element: true - details: |- -

A language-aware quote that reacts to its context.

-

Automatically turns into an appropriate opening or closing quote based on - the active text language.

-

Example

-
"This is in quotes."
-
-      #set text(lang: "de")
-      "Das ist in Anführungszeichen."
-
-      #set text(lang: "fr")
-      "C'est entre guillemets."
-      
Preview
-

Syntax

-

This function also has dedicated syntax: The normal quote characters - (' and "). Typst automatically makes your quotes smart.

- params: - - name: double - details:

Whether this should be a double quote.

- example: null - types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: enabled - details: |- -

Whether smart quotes are enabled.

-

To disable smartness for a single quote, you can also escape it with a - backslash.

- example: |- -
#set smartquote(enabled: false)
-
-        These are "dumb" quotes.
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/smartquote/ +title: Smart Quote +description: Documentation for the `smartquote` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-double + name: double + children: [] + - id: parameters-enabled + name: enabled + children: [] +body: + kind: func + content: + path: + - smartquote + display: Smart Quote + keywords: null + oneliner: A language-aware quote that reacts to its context. + element: true + details: |- +

A language-aware quote that reacts to its context.

+

Automatically turns into an appropriate opening or closing quote based on + the active text language.

+

Example

+
"This is in quotes."
+
+      #set text(lang: "de")
+      "Das ist in Anführungszeichen."
+
+      #set text(lang: "fr")
+      "C'est entre guillemets."
+      
Preview
+

Syntax

+

This function also has dedicated syntax: The normal quote characters + (' and "). Typst automatically makes your quotes smart.

+ params: + - name: double + details:

Whether this should be a double quote.

+ example: null + types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: enabled + details: |- +

Whether smart quotes are enabled.

+

To disable smartness for a single quote, you can also escape it with a + backslash.

+ example: |- +
#set smartquote(enabled: false)
+
+        These are "dumb" quotes.
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/strike-en.yaml b/docs/i18n/text/strike-en.yaml index c54bb6eb2d5c..597a763c6eb5 100644 --- a/docs/i18n/text/strike-en.yaml +++ b/docs/i18n/text/strike-en.yaml @@ -1,120 +1,120 @@ -route: /docs/reference/text/strike/ -title: Strikethrough -description: Documentation for the `strike` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-offset - name: offset - children: [] - - id: parameters-extent - name: extent - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - strike - display: Strikethrough - keywords: null - oneliner: Strikes through text. - element: true - details: |- -

Strikes through text.

-

Example

-
This is #strike[not] relevant.
-      
Preview
- params: - - name: stroke - details: |- -

How to stroke the line.

-

See the line's documentation for more details. If - set to auto, takes on the text's color and a thickness defined in - the current font.

-

Note: Please don't use this for real redaction as you can still - copy paste the text.

- example: |- -
This is #strike(stroke: 1.5pt + red)[very stricken through]. \
-        This is #strike(stroke: 10pt)[redacted].
-        
Preview
- types: - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: offset - details: |- -

The position of the line relative to the baseline. Read from the font - tables if auto.

-

This is useful if you are unhappy with the offset your font provides.

- example: |- -
#set text(font: "Inria Serif")
-        This is #strike(offset: auto)[low-ish]. \
-        This is #strike(offset: -3.5pt)[on-top].
-        
Preview
- types: - - auto - - length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: extent - details: |- -

The amount by which to extend the line beyond (or within if negative) - the content.

- example: |- -
This #strike(extent: -2pt)[skips] parts of the word.
-        This #strike(extent: 2pt)[extends] beyond the word.
-        
Preview
- types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to strike through.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/strike/ +title: Strikethrough +description: Documentation for the `strike` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-offset + name: offset + children: [] + - id: parameters-extent + name: extent + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - strike + display: Strikethrough + keywords: null + oneliner: Strikes through text. + element: true + details: |- +

Strikes through text.

+

Example

+
This is #strike[not] relevant.
+      
Preview
+ params: + - name: stroke + details: |- +

How to stroke the line.

+

See the line's documentation for more details. If + set to auto, takes on the text's color and a thickness defined in + the current font.

+

Note: Please don't use this for real redaction as you can still + copy paste the text.

+ example: |- +
This is #strike(stroke: 1.5pt + red)[very stricken through]. \
+        This is #strike(stroke: 10pt)[redacted].
+        
Preview
+ types: + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: offset + details: |- +

The position of the line relative to the baseline. Read from the font + tables if auto.

+

This is useful if you are unhappy with the offset your font provides.

+ example: |- +
#set text(font: "Inria Serif")
+        This is #strike(offset: auto)[low-ish]. \
+        This is #strike(offset: -3.5pt)[on-top].
+        
Preview
+ types: + - auto + - length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: extent + details: |- +

The amount by which to extend the line beyond (or within if negative) + the content.

+ example: |- +
This #strike(extent: -2pt)[skips] parts of the word.
+        This #strike(extent: 2pt)[extends] beyond the word.
+        
Preview
+ types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to strike through.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/strong-en.yaml b/docs/i18n/text/strong-en.yaml index 7731d719aff7..36c7cf0dcd18 100644 --- a/docs/i18n/text/strong-en.yaml +++ b/docs/i18n/text/strong-en.yaml @@ -1,80 +1,80 @@ -route: /docs/reference/text/strong/ -title: Strong Emphasis -description: Documentation for the `strong` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: syntax - name: Syntax - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-delta - name: delta - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - strong - display: Strong Emphasis - keywords: null - oneliner: Strongly emphasizes content by increasing the font weight. - element: true - details: |- -

Strongly emphasizes content by increasing the font weight.

-

Increases the current font weight by a given delta.

-

Example

-
This is *strong.* \
-      This is #strong[too.] \
-
-      #show strong: set text(red)
-      And this is *evermore.*
-      
Preview
-

Syntax

-

This function also has dedicated syntax: To strongly emphasize content, - simply enclose it in stars/asterisks (*). Note that this only works at - word boundaries. To strongly emphasize part of a word, you have to use the - function.

- params: - - name: delta - details:

The delta to apply on the font weight.

- example: |- -
#set strong(delta: 0)
-        No *effect!*
-        
Preview
- types: - - integer - strings: [] - default: 300 - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to strongly emphasize.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/strong/ +title: Strong Emphasis +description: Documentation for the `strong` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: syntax + name: Syntax + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-delta + name: delta + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - strong + display: Strong Emphasis + keywords: null + oneliner: Strongly emphasizes content by increasing the font weight. + element: true + details: |- +

Strongly emphasizes content by increasing the font weight.

+

Increases the current font weight by a given delta.

+

Example

+
This is *strong.* \
+      This is #strong[too.] \
+
+      #show strong: set text(red)
+      And this is *evermore.*
+      
Preview
+

Syntax

+

This function also has dedicated syntax: To strongly emphasize content, + simply enclose it in stars/asterisks (*). Note that this only works at + word boundaries. To strongly emphasize part of a word, you have to use the + function.

+ params: + - name: delta + details:

The delta to apply on the font weight.

+ example: |- +
#set strong(delta: 0)
+        No *effect!*
+        
Preview
+ types: + - integer + strings: [] + default: 300 + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to strongly emphasize.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/sub-en.yaml b/docs/i18n/text/sub-en.yaml index 31311b784a3e..90c38423cb0b 100644 --- a/docs/i18n/text/sub-en.yaml +++ b/docs/i18n/text/sub-en.yaml @@ -1,108 +1,108 @@ -route: /docs/reference/text/sub/ -title: Subscript -description: Documentation for the `sub` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-typographic - name: typographic - children: [] - - id: parameters-baseline - name: baseline - children: [] - - id: parameters-size - name: size - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - sub - display: Subscript - keywords: null - oneliner: Renders text in subscript. - element: true - details: |- -

Renders text in subscript.

-

The text is rendered smaller and its baseline is lowered.

-

Example

-
Revenue#sub[yearly]
-      
Preview
- params: - - name: typographic - details: |- -

Whether to prefer the dedicated subscript characters of the font.

-

If this is enabled, Typst first tries to transform the text to subscript - codepoints. If that fails, it falls back to rendering lowered and shrunk - normal letters.

- example: |- -
N#sub(typographic: true)[1]
-        N#sub(typographic: false)[1]
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: baseline - details: |- -

The baseline shift for synthetic subscripts. Does not apply if - typographic is true and the font has subscript codepoints for the - given body.

- example: null - types: - - length - strings: [] - default: 0.2em - positional: false - named: true - required: false - variadic: false - settable: true - - name: size - details: |- -

The font size for synthetic subscripts. Does not apply if - typographic is true and the font has subscript codepoints for the - given body.

- example: null - types: - - length - strings: [] - default: 0.6em - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The text to display in subscript.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/sub/ +title: Subscript +description: Documentation for the `sub` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-typographic + name: typographic + children: [] + - id: parameters-baseline + name: baseline + children: [] + - id: parameters-size + name: size + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - sub + display: Subscript + keywords: null + oneliner: Renders text in subscript. + element: true + details: |- +

Renders text in subscript.

+

The text is rendered smaller and its baseline is lowered.

+

Example

+
Revenue#sub[yearly]
+      
Preview
+ params: + - name: typographic + details: |- +

Whether to prefer the dedicated subscript characters of the font.

+

If this is enabled, Typst first tries to transform the text to subscript + codepoints. If that fails, it falls back to rendering lowered and shrunk + normal letters.

+ example: |- +
N#sub(typographic: true)[1]
+        N#sub(typographic: false)[1]
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: baseline + details: |- +

The baseline shift for synthetic subscripts. Does not apply if + typographic is true and the font has subscript codepoints for the + given body.

+ example: null + types: + - length + strings: [] + default: 0.2em + positional: false + named: true + required: false + variadic: false + settable: true + - name: size + details: |- +

The font size for synthetic subscripts. Does not apply if + typographic is true and the font has subscript codepoints for the + given body.

+ example: null + types: + - length + strings: [] + default: 0.6em + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The text to display in subscript.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/super-en.yaml b/docs/i18n/text/super-en.yaml index f83802ae167b..6174691b3e16 100644 --- a/docs/i18n/text/super-en.yaml +++ b/docs/i18n/text/super-en.yaml @@ -1,108 +1,108 @@ -route: /docs/reference/text/super/ -title: Superscript -description: Documentation for the `super` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-typographic - name: typographic - children: [] - - id: parameters-baseline - name: baseline - children: [] - - id: parameters-size - name: size - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - super - display: Superscript - keywords: null - oneliner: Renders text in superscript. - element: true - details: |- -

Renders text in superscript.

-

The text is rendered smaller and its baseline is raised.

-

Example

-
1#super[st] try!
-      
Preview
- params: - - name: typographic - details: |- -

Whether to prefer the dedicated superscript characters of the font.

-

If this is enabled, Typst first tries to transform the text to - superscript codepoints. If that fails, it falls back to rendering - raised and shrunk normal letters.

- example: |- -
N#super(typographic: true)[1]
-        N#super(typographic: false)[1]
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: baseline - details: |- -

The baseline shift for synthetic superscripts. Does not apply if - typographic is true and the font has superscript codepoints for the - given body.

- example: null - types: - - length - strings: [] - default: -0.5em - positional: false - named: true - required: false - variadic: false - settable: true - - name: size - details: |- -

The font size for synthetic superscripts. Does not apply if - typographic is true and the font has superscript codepoints for the - given body.

- example: null - types: - - length - strings: [] - default: 0.6em - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The text to display in superscript.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/super/ +title: Superscript +description: Documentation for the `super` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-typographic + name: typographic + children: [] + - id: parameters-baseline + name: baseline + children: [] + - id: parameters-size + name: size + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - super + display: Superscript + keywords: null + oneliner: Renders text in superscript. + element: true + details: |- +

Renders text in superscript.

+

The text is rendered smaller and its baseline is raised.

+

Example

+
1#super[st] try!
+      
Preview
+ params: + - name: typographic + details: |- +

Whether to prefer the dedicated superscript characters of the font.

+

If this is enabled, Typst first tries to transform the text to + superscript codepoints. If that fails, it falls back to rendering + raised and shrunk normal letters.

+ example: |- +
N#super(typographic: true)[1]
+        N#super(typographic: false)[1]
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: baseline + details: |- +

The baseline shift for synthetic superscripts. Does not apply if + typographic is true and the font has superscript codepoints for the + given body.

+ example: null + types: + - length + strings: [] + default: -0.5em + positional: false + named: true + required: false + variadic: false + settable: true + - name: size + details: |- +

The font size for synthetic superscripts. Does not apply if + typographic is true and the font has superscript codepoints for the + given body.

+ example: null + types: + - length + strings: [] + default: 0.6em + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The text to display in superscript.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/text-en.yaml b/docs/i18n/text/text-en.yaml index 2b911003e7c3..7211c0430522 100644 --- a/docs/i18n/text/text-en.yaml +++ b/docs/i18n/text/text-en.yaml @@ -1,821 +1,821 @@ -route: /docs/reference/text/text/ -title: Text -description: Documentation for the `text` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-font - name: font - children: [] - - id: parameters-fallback - name: fallback - children: [] - - id: parameters-style - name: style - children: [] - - id: parameters-weight - name: weight - children: [] - - id: parameters-stretch - name: stretch - children: [] - - id: parameters-size - name: size - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-tracking - name: tracking - children: [] - - id: parameters-spacing - name: spacing - children: [] - - id: parameters-baseline - name: baseline - children: [] - - id: parameters-overhang - name: overhang - children: [] - - id: parameters-top-edge - name: top-edge - children: [] - - id: parameters-bottom-edge - name: bottom-edge - children: [] - - id: parameters-lang - name: lang - children: [] - - id: parameters-region - name: region - children: [] - - id: parameters-dir - name: dir - children: [] - - id: parameters-hyphenate - name: hyphenate - children: [] - - id: parameters-kerning - name: kerning - children: [] - - id: parameters-alternates - name: alternates - children: [] - - id: parameters-stylistic-set - name: stylistic-set - children: [] - - id: parameters-ligatures - name: ligatures - children: [] - - id: parameters-discretionary-ligatures - name: discretionary-ligatures - children: [] - - id: parameters-historical-ligatures - name: historical-ligatures - children: [] - - id: parameters-number-type - name: number-type - children: [] - - id: parameters-number-width - name: number-width - children: [] - - id: parameters-slashed-zero - name: slashed-zero - children: [] - - id: parameters-fractions - name: fractions - children: [] - - id: parameters-features - name: features - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - text - display: Text - keywords: null - oneliner: Customizes the look and layout of text in a variety of ways. - element: true - details: |- -

Customizes the look and layout of text in a variety of ways.

-

This function is used frequently, both with set rules and directly. While - the set rule is often the simpler choice, calling the text function - directly can be useful when passing text as an argument to another function.

-

Example

-
#set text(18pt)
-      With a set rule.
-
-      #emph(text(blue)[
-        With a function call.
-      ])
-      
Preview
- params: - - name: font - details: |- -

A prioritized sequence of font families.

-

When processing text, Typst tries all specified font families in order - until it finds a font that has the necessary glyphs. In the example - below, the font Inria Serif is preferred, but since it does not - contain Arabic glyphs, the arabic text uses Noto Sans Arabic instead.

- example: |- -
#set text(font: (
-          "Inria Serif",
-          "Noto Sans Arabic",
-        ))
-
-        This is Latin. \
-        هذا عربي.
-
-        
Preview
- types: - - string - - array - strings: [] - default: "linux libertine" - positional: false - named: true - required: false - variadic: false - settable: true - - name: fallback - details: |- -

Whether to allow last resort font fallback when the primary font list - contains no match. This lets Typst search through all available fonts - for the most similar one that has the necessary glyphs.

-

Note: Currently, there are no warnings when fallback is disabled and - no glyphs are found. Instead, your text shows up in the form of "tofus": - Small boxes that indicate the lack of an appropriate glyph. In the - future, you will be able to instruct Typst to issue warnings so you know - something is up.

- example: |- -
#set text(font: "Inria Serif")
-        هذا عربي
-
-        #set text(fallback: false)
-        هذا عربي
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: style - details: |- -

The desired font style.

-

When an italic style is requested and only an oblique one is available, - it is used. Similarly, the other way around, an italic style can stand - in for an oblique one. When neither an italic nor an oblique style is - available, Typst selects the normal style. Since most fonts are only - available either in an italic or oblique style, the difference between - italic and oblique style is rarely observable.

-

If you want to emphasize your text, you should do so using the - emph function instead. This makes it easy to adapt the - style later if you change your mind about how to signify the emphasis.

- example: |- -
#text(font: "Linux Libertine", style: "italic")[Italic]
-        #text(font: "DejaVu Sans", style: "oblique")[Oblique]
-        
Preview
- types: - - string - strings: - - string: normal - details:

The default, typically upright style.

- - string: italic - details:

A cursive style with custom letterform.

- - string: oblique - details:

Just a slanted version of the normal style.

- default: "normal" - positional: false - named: true - required: false - variadic: false - settable: true - - name: weight - details: |- -

The desired thickness of the font's glyphs. Accepts an integer between - 100 and 900 or one of the predefined weight names. When the - desired weight is not available, Typst selects the font from the family - that is closest in weight.

-

If you want to strongly emphasize your text, you should do so using the - strong function instead. This makes it easy to adapt the - style later if you change your mind about how to signify the strong - emphasis.

- example: |- -
#set text(font: "IBM Plex Sans")
-
-        #text(weight: "light")[Light] \
-        #text(weight: "regular")[Regular] \
-        #text(weight: "medium")[Medium] \
-        #text(weight: 500)[Medium] \
-        #text(weight: "bold")[Bold]
-        
Preview
- types: - - integer - - string - strings: - - string: thin - details:

Thin weight (100).

- - string: extralight - details:

Extra light weight (200).

- - string: light - details:

Light weight (300).

- - string: regular - details:

Regular weight (400).

- - string: medium - details:

Medium weight (500).

- - string: semibold - details:

Semibold weight (600).

- - string: bold - details:

Bold weight (700).

- - string: extrabold - details:

Extrabold weight (800).

- - string: black - details:

Black weight (900).

- default: "regular" - positional: false - named: true - required: false - variadic: false - settable: true - - name: stretch - details: |- -

The desired width of the glyphs. Accepts a ratio between 50% and - 200%. When the desired weight is not available, Typst selects the - font from the family that is closest in stretch. This will only stretch - the text if a condensed or expanded version of the font is available.

-

If you want to adjust the amount of space between characters instead of - stretching the glyphs itself, use the tracking - property instead.

- example: |- -
#text(stretch: 75%)[Condensed] \
-        #text(stretch: 100%)[Normal]
-        
Preview
- types: - - ratio - strings: [] - default: 100% - positional: false - named: true - required: false - variadic: false - settable: true - - name: size - details: |- -

The size of the glyphs. This value forms the basis of the em unit: - 1em is equivalent to the font size.

-

You can also give the font size itself in em units. Then, it is - relative to the previous font size.

- example: |- -
#set text(size: 20pt)
-        very #text(1.5em)[big] text
-        
Preview
- types: - - length - strings: [] - default: 11pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details:

The glyph fill color.

- example: |- -
#set text(fill: red)
-        This text is red.
-        
Preview
- types: - - color - strings: [] - default: rgb("#000000") - positional: false - named: true - required: false - variadic: false - settable: true - - name: tracking - details:

The amount of space that should be added between characters.

- example: |- -
#set text(tracking: 1.5pt)
-        Distant text.
-        
Preview
- types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: spacing - details: |- -

The amount of space between words.

-

Can be given as an absolute length, but also relative to the width of - the space character in the font.

-

If you want to adjust the amount of space between characters rather than - words, use the tracking property instead.

- example: |- -
#set text(spacing: 200%)
-        Text with distant words.
-        
Preview
- types: - - relative length - strings: [] - default: 100% - positional: false - named: true - required: false - variadic: false - settable: true - - name: baseline - details:

An amount to shift the text baseline by.

- example: |- -
A #text(baseline: 3pt)[lowered]
-        word.
-        
Preview
- types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: overhang - details: |- -

Whether certain glyphs can hang over into the margin in justified text. - This can make justification visually more pleasing.

- example: |- -
#set par(justify: true)
-        This justified text has a hyphen in
-        the paragraph's first line. Hanging
-        the hyphen slightly into the margin
-        results in a clearer paragraph edge.
-
-        #set text(overhang: false)
-        This justified text has a hyphen in
-        the paragraph's first line. Hanging
-        the hyphen slightly into the margin
-        results in a clearer paragraph edge.
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: top-edge - details: |- -

The top end of the conceptual frame around the text used for layout and - positioning. This affects the size of containers that hold text.

- example: |- -
#set rect(inset: 0pt)
-        #set text(size: 20pt)
-
-        #set text(top-edge: "ascender")
-        #rect(fill: aqua)[Typst]
-
-        #set text(top-edge: "cap-height")
-        #rect(fill: aqua)[Typst]
-        
Preview
- types: - - length - - string - strings: - - string: ascender - details:

The font's ascender, which typically exceeds the height of all - glyphs.

- - string: cap-height - details:

The approximate height of uppercase letters.

- - string: x-height - details:

The approximate height of non-ascending lowercase letters.

- - string: baseline - details:

The baseline on which the letters rest.

- - string: descender - details:

The font's ascender, which typically exceeds the depth of all - glyphs.

- default: "cap-height" - positional: false - named: true - required: false - variadic: false - settable: true - - name: bottom-edge - details: |- -

The bottom end of the conceptual frame around the text used for layout - and positioning. This affects the size of containers that hold text.

- example: |- -
#set rect(inset: 0pt)
-        #set text(size: 20pt)
-
-        #set text(bottom-edge: "baseline")
-        #rect(fill: aqua)[Typst]
-
-        #set text(bottom-edge: "descender")
-        #rect(fill: aqua)[Typst]
-        
Preview
- types: - - length - - string - strings: - - string: ascender - details:

The font's ascender, which typically exceeds the height of all - glyphs.

- - string: cap-height - details:

The approximate height of uppercase letters.

- - string: x-height - details:

The approximate height of non-ascending lowercase letters.

- - string: baseline - details:

The baseline on which the letters rest.

- - string: descender - details:

The font's ascender, which typically exceeds the depth of all - glyphs.

- default: "baseline" - positional: false - named: true - required: false - variadic: false - settable: true - - name: lang - details: |- -

An ISO 639-1/2/3 language code.

-

Setting the correct language affects various parts of Typst:

-
    -
  • The text processing pipeline can make more informed choices.
  • -
  • Hyphenation will use the correct patterns for the language.
  • -
  • Smart quotes turns into the correct quotes for the - language.
  • -
  • And all other things which are language-aware.
  • -
- example: |- -
#set text(lang: "de")
-        #outline()
-
-        = Einleitung
-        In diesem Dokument, ...
-        
Preview
- types: - - string - strings: [] - default: "en" - positional: false - named: true - required: false - variadic: false - settable: true - - name: region - details: |- -

An ISO 3166-1 alpha-2 region code.

-

This lets the text processing pipeline make more informed choices.

- example: null - types: - - none - - string - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: dir - details: |- -

The dominant direction for text and inline objects. Possible values are:

-
    -
  • auto: Automatically infer the direction from the lang property.
  • -
  • ltr: Layout text from left to right.
  • -
  • rtl: Layout text from right to left.
  • -
-

When writing in right-to-left scripts like Arabic or Hebrew, you should - set the text language or direction. While individual - runs of text are automatically layouted in the correct direction, - setting the dominant direction gives the bidirectional reordering - algorithm the necessary information to correctly place punctuation and - inline objects. Furthermore, setting the direction affects the alignment - values start and end, which are equivalent to left and right in - ltr text and the other way around in rtl text.

-

If you set this to rtl and experience bugs or in some way bad looking - output, please do get in touch with us through the - contact form or our - Discord server!

- example: |- -
#set text(dir: rtl)
-        هذا عربي.
-        
Preview
- types: - - auto - - direction - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: hyphenate - details: |- -

Whether to hyphenate text to improve line breaking. When auto, text - will be hyphenated if and only if justification is enabled.

-

Setting the text language ensures that the correct - hyphenation patterns are used.

- example: |- -
#set page(width: 200pt)
-
-        #set par(justify: true)
-        This text illustrates how
-        enabling hyphenation can
-        improve justification.
-
-        #set text(hyphenate: false)
-        This text illustrates how
-        enabling hyphenation can
-        improve justification.
-        
Preview
- types: - - auto - - boolean - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: kerning - details: |- -

Whether to apply kerning.

-

When enabled, specific letter pairings move closer together or further - apart for a more visually pleasing result. The example below - demonstrates how decreasing the gap between the "T" and "o" results in a - more natural look. Setting this to false disables kerning by turning - off the OpenType kern font feature.

- example: |- -
#set text(size: 25pt)
-        Totally
-
-        #set text(kerning: false)
-        Totally
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: alternates - details: |- -

Whether to apply stylistic alternates.

-

Sometimes fonts contain alternative glyphs for the same codepoint. - Setting this to true switches to these by enabling the OpenType - salt font feature.

- example: |- -
#set text(
-          font: "IBM Plex Sans",
-          size: 20pt,
-        )
-
-        0, a, g, ß
-
-        #set text(alternates: true)
-        0, a, g, ß
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: stylistic-set - details: |- -

Which stylistic set to apply. Font designers can categorize alternative - glyphs forms into stylistic sets. As this value is highly font-specific, - you need to consult your font to know which sets are available. When set - to an integer between 1 and 20, enables the corresponding - OpenType font feature from ss01, ..., ss20.

- example: null - types: - - none - - integer - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: ligatures - details: |- -

Whether standard ligatures are active.

-

Certain letter combinations like "fi" are often displayed as a single - merged glyph called a ligature. Setting this to false disables - these ligatures by turning off the OpenType liga and clig font - features.

- example: |- -
#set text(size: 20pt)
-        A fine ligature.
-
-        #set text(ligatures: false)
-        A fine ligature.
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: discretionary-ligatures - details: |- -

Whether ligatures that should be used sparingly are active. Setting this - to true enables the OpenType dlig font feature.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: historical-ligatures - details: |- -

Whether historical ligatures are active. Setting this to true - enables the OpenType hlig font feature.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: number-type - details: |- -

Which kind of numbers / figures to select. When set to auto, the - default numbers for the font are used.

- example: |- -
#set text(font: "Noto Sans", 20pt)
-        #set text(number-type: "lining")
-        Number 9.
-
-        #set text(number-type: "old-style")
-        Number 9.
-        
Preview
- types: - - auto - - string - strings: - - string: lining - details: |- -

Numbers that fit well with capital text (the OpenType lnum - font feature).

- - string: old-style - details: |- -

Numbers that fit well into a flow of upper- and lowercase text (the - OpenType onum font feature).

- default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: number-width - details: |- -

The width of numbers / figures. When set to auto, the default - numbers for the font are used.

- example: |- -
#set text(font: "Noto Sans", 20pt)
-        #set text(number-width: "proportional")
-        A 12 B 34. \
-        A 56 B 78.
-
-        #set text(number-width: "tabular")
-        A 12 B 34. \
-        A 56 B 78.
-        
Preview
- types: - - auto - - string - strings: - - string: proportional - details:

Numbers with glyph-specific widths (the OpenType pnum - font feature).

- - string: tabular - details:

Numbers of equal width (the OpenType tnum font feature).

- default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: slashed-zero - details: |- -

Whether to have a slash through the zero glyph. Setting this to true - enables the OpenType zero font feature.

- example: |- -
0, #text(slashed-zero: true)[0]
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: fractions - details: |- -

Whether to turn numbers into fractions. Setting this to true - enables the OpenType frac font feature.

-

It is not advisable to enable this property globally as it will mess - with all appearances of numbers after a slash (e.g., in URLs). Instead, - enable it locally when you want a fraction.

- example: |- -
1/2 \
-        #text(fractions: true)[1/2]
-        
Preview
- types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: features - details: |- -

Raw OpenType features to apply.

-
    -
  • If given an array of strings, sets the features identified by the - strings to 1.
  • -
  • If given a dictionary mapping to numbers, sets the features - identified by the keys to the values.
  • -
- example: |- -
// Enable the `frac` feature manually.
-        #set text(features: ("frac",))
-        1/2
-        
Preview
- types: - - array - - dictionary - strings: [] - default: (:) - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

Content in which all text is styled according to the other arguments.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/text/ +title: Text +description: Documentation for the `text` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-font + name: font + children: [] + - id: parameters-fallback + name: fallback + children: [] + - id: parameters-style + name: style + children: [] + - id: parameters-weight + name: weight + children: [] + - id: parameters-stretch + name: stretch + children: [] + - id: parameters-size + name: size + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-tracking + name: tracking + children: [] + - id: parameters-spacing + name: spacing + children: [] + - id: parameters-baseline + name: baseline + children: [] + - id: parameters-overhang + name: overhang + children: [] + - id: parameters-top-edge + name: top-edge + children: [] + - id: parameters-bottom-edge + name: bottom-edge + children: [] + - id: parameters-lang + name: lang + children: [] + - id: parameters-region + name: region + children: [] + - id: parameters-dir + name: dir + children: [] + - id: parameters-hyphenate + name: hyphenate + children: [] + - id: parameters-kerning + name: kerning + children: [] + - id: parameters-alternates + name: alternates + children: [] + - id: parameters-stylistic-set + name: stylistic-set + children: [] + - id: parameters-ligatures + name: ligatures + children: [] + - id: parameters-discretionary-ligatures + name: discretionary-ligatures + children: [] + - id: parameters-historical-ligatures + name: historical-ligatures + children: [] + - id: parameters-number-type + name: number-type + children: [] + - id: parameters-number-width + name: number-width + children: [] + - id: parameters-slashed-zero + name: slashed-zero + children: [] + - id: parameters-fractions + name: fractions + children: [] + - id: parameters-features + name: features + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - text + display: Text + keywords: null + oneliner: Customizes the look and layout of text in a variety of ways. + element: true + details: |- +

Customizes the look and layout of text in a variety of ways.

+

This function is used frequently, both with set rules and directly. While + the set rule is often the simpler choice, calling the text function + directly can be useful when passing text as an argument to another function.

+

Example

+
#set text(18pt)
+      With a set rule.
+
+      #emph(text(blue)[
+        With a function call.
+      ])
+      
Preview
+ params: + - name: font + details: |- +

A prioritized sequence of font families.

+

When processing text, Typst tries all specified font families in order + until it finds a font that has the necessary glyphs. In the example + below, the font Inria Serif is preferred, but since it does not + contain Arabic glyphs, the arabic text uses Noto Sans Arabic instead.

+ example: |- +
#set text(font: (
+          "Inria Serif",
+          "Noto Sans Arabic",
+        ))
+
+        This is Latin. \
+        هذا عربي.
+
+        
Preview
+ types: + - string + - array + strings: [] + default: "linux libertine" + positional: false + named: true + required: false + variadic: false + settable: true + - name: fallback + details: |- +

Whether to allow last resort font fallback when the primary font list + contains no match. This lets Typst search through all available fonts + for the most similar one that has the necessary glyphs.

+

Note: Currently, there are no warnings when fallback is disabled and + no glyphs are found. Instead, your text shows up in the form of "tofus": + Small boxes that indicate the lack of an appropriate glyph. In the + future, you will be able to instruct Typst to issue warnings so you know + something is up.

+ example: |- +
#set text(font: "Inria Serif")
+        هذا عربي
+
+        #set text(fallback: false)
+        هذا عربي
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: style + details: |- +

The desired font style.

+

When an italic style is requested and only an oblique one is available, + it is used. Similarly, the other way around, an italic style can stand + in for an oblique one. When neither an italic nor an oblique style is + available, Typst selects the normal style. Since most fonts are only + available either in an italic or oblique style, the difference between + italic and oblique style is rarely observable.

+

If you want to emphasize your text, you should do so using the + emph function instead. This makes it easy to adapt the + style later if you change your mind about how to signify the emphasis.

+ example: |- +
#text(font: "Linux Libertine", style: "italic")[Italic]
+        #text(font: "DejaVu Sans", style: "oblique")[Oblique]
+        
Preview
+ types: + - string + strings: + - string: normal + details:

The default, typically upright style.

+ - string: italic + details:

A cursive style with custom letterform.

+ - string: oblique + details:

Just a slanted version of the normal style.

+ default: "normal" + positional: false + named: true + required: false + variadic: false + settable: true + - name: weight + details: |- +

The desired thickness of the font's glyphs. Accepts an integer between + 100 and 900 or one of the predefined weight names. When the + desired weight is not available, Typst selects the font from the family + that is closest in weight.

+

If you want to strongly emphasize your text, you should do so using the + strong function instead. This makes it easy to adapt the + style later if you change your mind about how to signify the strong + emphasis.

+ example: |- +
#set text(font: "IBM Plex Sans")
+
+        #text(weight: "light")[Light] \
+        #text(weight: "regular")[Regular] \
+        #text(weight: "medium")[Medium] \
+        #text(weight: 500)[Medium] \
+        #text(weight: "bold")[Bold]
+        
Preview
+ types: + - integer + - string + strings: + - string: thin + details:

Thin weight (100).

+ - string: extralight + details:

Extra light weight (200).

+ - string: light + details:

Light weight (300).

+ - string: regular + details:

Regular weight (400).

+ - string: medium + details:

Medium weight (500).

+ - string: semibold + details:

Semibold weight (600).

+ - string: bold + details:

Bold weight (700).

+ - string: extrabold + details:

Extrabold weight (800).

+ - string: black + details:

Black weight (900).

+ default: "regular" + positional: false + named: true + required: false + variadic: false + settable: true + - name: stretch + details: |- +

The desired width of the glyphs. Accepts a ratio between 50% and + 200%. When the desired weight is not available, Typst selects the + font from the family that is closest in stretch. This will only stretch + the text if a condensed or expanded version of the font is available.

+

If you want to adjust the amount of space between characters instead of + stretching the glyphs itself, use the tracking + property instead.

+ example: |- +
#text(stretch: 75%)[Condensed] \
+        #text(stretch: 100%)[Normal]
+        
Preview
+ types: + - ratio + strings: [] + default: 100% + positional: false + named: true + required: false + variadic: false + settable: true + - name: size + details: |- +

The size of the glyphs. This value forms the basis of the em unit: + 1em is equivalent to the font size.

+

You can also give the font size itself in em units. Then, it is + relative to the previous font size.

+ example: |- +
#set text(size: 20pt)
+        very #text(1.5em)[big] text
+        
Preview
+ types: + - length + strings: [] + default: 11pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details:

The glyph fill color.

+ example: |- +
#set text(fill: red)
+        This text is red.
+        
Preview
+ types: + - color + strings: [] + default: rgb("#000000") + positional: false + named: true + required: false + variadic: false + settable: true + - name: tracking + details:

The amount of space that should be added between characters.

+ example: |- +
#set text(tracking: 1.5pt)
+        Distant text.
+        
Preview
+ types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: spacing + details: |- +

The amount of space between words.

+

Can be given as an absolute length, but also relative to the width of + the space character in the font.

+

If you want to adjust the amount of space between characters rather than + words, use the tracking property instead.

+ example: |- +
#set text(spacing: 200%)
+        Text with distant words.
+        
Preview
+ types: + - relative length + strings: [] + default: 100% + positional: false + named: true + required: false + variadic: false + settable: true + - name: baseline + details:

An amount to shift the text baseline by.

+ example: |- +
A #text(baseline: 3pt)[lowered]
+        word.
+        
Preview
+ types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: overhang + details: |- +

Whether certain glyphs can hang over into the margin in justified text. + This can make justification visually more pleasing.

+ example: |- +
#set par(justify: true)
+        This justified text has a hyphen in
+        the paragraph's first line. Hanging
+        the hyphen slightly into the margin
+        results in a clearer paragraph edge.
+
+        #set text(overhang: false)
+        This justified text has a hyphen in
+        the paragraph's first line. Hanging
+        the hyphen slightly into the margin
+        results in a clearer paragraph edge.
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: top-edge + details: |- +

The top end of the conceptual frame around the text used for layout and + positioning. This affects the size of containers that hold text.

+ example: |- +
#set rect(inset: 0pt)
+        #set text(size: 20pt)
+
+        #set text(top-edge: "ascender")
+        #rect(fill: aqua)[Typst]
+
+        #set text(top-edge: "cap-height")
+        #rect(fill: aqua)[Typst]
+        
Preview
+ types: + - length + - string + strings: + - string: ascender + details:

The font's ascender, which typically exceeds the height of all + glyphs.

+ - string: cap-height + details:

The approximate height of uppercase letters.

+ - string: x-height + details:

The approximate height of non-ascending lowercase letters.

+ - string: baseline + details:

The baseline on which the letters rest.

+ - string: descender + details:

The font's ascender, which typically exceeds the depth of all + glyphs.

+ default: "cap-height" + positional: false + named: true + required: false + variadic: false + settable: true + - name: bottom-edge + details: |- +

The bottom end of the conceptual frame around the text used for layout + and positioning. This affects the size of containers that hold text.

+ example: |- +
#set rect(inset: 0pt)
+        #set text(size: 20pt)
+
+        #set text(bottom-edge: "baseline")
+        #rect(fill: aqua)[Typst]
+
+        #set text(bottom-edge: "descender")
+        #rect(fill: aqua)[Typst]
+        
Preview
+ types: + - length + - string + strings: + - string: ascender + details:

The font's ascender, which typically exceeds the height of all + glyphs.

+ - string: cap-height + details:

The approximate height of uppercase letters.

+ - string: x-height + details:

The approximate height of non-ascending lowercase letters.

+ - string: baseline + details:

The baseline on which the letters rest.

+ - string: descender + details:

The font's ascender, which typically exceeds the depth of all + glyphs.

+ default: "baseline" + positional: false + named: true + required: false + variadic: false + settable: true + - name: lang + details: |- +

An ISO 639-1/2/3 language code.

+

Setting the correct language affects various parts of Typst:

+
    +
  • The text processing pipeline can make more informed choices.
  • +
  • Hyphenation will use the correct patterns for the language.
  • +
  • Smart quotes turns into the correct quotes for the + language.
  • +
  • And all other things which are language-aware.
  • +
+ example: |- +
#set text(lang: "de")
+        #outline()
+
+        = Einleitung
+        In diesem Dokument, ...
+        
Preview
+ types: + - string + strings: [] + default: "en" + positional: false + named: true + required: false + variadic: false + settable: true + - name: region + details: |- +

An ISO 3166-1 alpha-2 region code.

+

This lets the text processing pipeline make more informed choices.

+ example: null + types: + - none + - string + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: dir + details: |- +

The dominant direction for text and inline objects. Possible values are:

+
    +
  • auto: Automatically infer the direction from the lang property.
  • +
  • ltr: Layout text from left to right.
  • +
  • rtl: Layout text from right to left.
  • +
+

When writing in right-to-left scripts like Arabic or Hebrew, you should + set the text language or direction. While individual + runs of text are automatically layouted in the correct direction, + setting the dominant direction gives the bidirectional reordering + algorithm the necessary information to correctly place punctuation and + inline objects. Furthermore, setting the direction affects the alignment + values start and end, which are equivalent to left and right in + ltr text and the other way around in rtl text.

+

If you set this to rtl and experience bugs or in some way bad looking + output, please do get in touch with us through the + contact form or our + Discord server!

+ example: |- +
#set text(dir: rtl)
+        هذا عربي.
+        
Preview
+ types: + - auto + - direction + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: hyphenate + details: |- +

Whether to hyphenate text to improve line breaking. When auto, text + will be hyphenated if and only if justification is enabled.

+

Setting the text language ensures that the correct + hyphenation patterns are used.

+ example: |- +
#set page(width: 200pt)
+
+        #set par(justify: true)
+        This text illustrates how
+        enabling hyphenation can
+        improve justification.
+
+        #set text(hyphenate: false)
+        This text illustrates how
+        enabling hyphenation can
+        improve justification.
+        
Preview
+ types: + - auto + - boolean + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: kerning + details: |- +

Whether to apply kerning.

+

When enabled, specific letter pairings move closer together or further + apart for a more visually pleasing result. The example below + demonstrates how decreasing the gap between the "T" and "o" results in a + more natural look. Setting this to false disables kerning by turning + off the OpenType kern font feature.

+ example: |- +
#set text(size: 25pt)
+        Totally
+
+        #set text(kerning: false)
+        Totally
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: alternates + details: |- +

Whether to apply stylistic alternates.

+

Sometimes fonts contain alternative glyphs for the same codepoint. + Setting this to true switches to these by enabling the OpenType + salt font feature.

+ example: |- +
#set text(
+          font: "IBM Plex Sans",
+          size: 20pt,
+        )
+
+        0, a, g, ß
+
+        #set text(alternates: true)
+        0, a, g, ß
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: stylistic-set + details: |- +

Which stylistic set to apply. Font designers can categorize alternative + glyphs forms into stylistic sets. As this value is highly font-specific, + you need to consult your font to know which sets are available. When set + to an integer between 1 and 20, enables the corresponding + OpenType font feature from ss01, ..., ss20.

+ example: null + types: + - none + - integer + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: ligatures + details: |- +

Whether standard ligatures are active.

+

Certain letter combinations like "fi" are often displayed as a single + merged glyph called a ligature. Setting this to false disables + these ligatures by turning off the OpenType liga and clig font + features.

+ example: |- +
#set text(size: 20pt)
+        A fine ligature.
+
+        #set text(ligatures: false)
+        A fine ligature.
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: discretionary-ligatures + details: |- +

Whether ligatures that should be used sparingly are active. Setting this + to true enables the OpenType dlig font feature.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: historical-ligatures + details: |- +

Whether historical ligatures are active. Setting this to true + enables the OpenType hlig font feature.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: number-type + details: |- +

Which kind of numbers / figures to select. When set to auto, the + default numbers for the font are used.

+ example: |- +
#set text(font: "Noto Sans", 20pt)
+        #set text(number-type: "lining")
+        Number 9.
+
+        #set text(number-type: "old-style")
+        Number 9.
+        
Preview
+ types: + - auto + - string + strings: + - string: lining + details: |- +

Numbers that fit well with capital text (the OpenType lnum + font feature).

+ - string: old-style + details: |- +

Numbers that fit well into a flow of upper- and lowercase text (the + OpenType onum font feature).

+ default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: number-width + details: |- +

The width of numbers / figures. When set to auto, the default + numbers for the font are used.

+ example: |- +
#set text(font: "Noto Sans", 20pt)
+        #set text(number-width: "proportional")
+        A 12 B 34. \
+        A 56 B 78.
+
+        #set text(number-width: "tabular")
+        A 12 B 34. \
+        A 56 B 78.
+        
Preview
+ types: + - auto + - string + strings: + - string: proportional + details:

Numbers with glyph-specific widths (the OpenType pnum + font feature).

+ - string: tabular + details:

Numbers of equal width (the OpenType tnum font feature).

+ default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: slashed-zero + details: |- +

Whether to have a slash through the zero glyph. Setting this to true + enables the OpenType zero font feature.

+ example: |- +
0, #text(slashed-zero: true)[0]
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: fractions + details: |- +

Whether to turn numbers into fractions. Setting this to true + enables the OpenType frac font feature.

+

It is not advisable to enable this property globally as it will mess + with all appearances of numbers after a slash (e.g., in URLs). Instead, + enable it locally when you want a fraction.

+ example: |- +
1/2 \
+        #text(fractions: true)[1/2]
+        
Preview
+ types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: features + details: |- +

Raw OpenType features to apply.

+
    +
  • If given an array of strings, sets the features identified by the + strings to 1.
  • +
  • If given a dictionary mapping to numbers, sets the features + identified by the keys to the values.
  • +
+ example: |- +
// Enable the `frac` feature manually.
+        #set text(features: ("frac",))
+        1/2
+        
Preview
+ types: + - array + - dictionary + strings: [] + default: (:) + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

Content in which all text is styled according to the other arguments.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/underline-en.yaml b/docs/i18n/text/underline-en.yaml index df9836284fea..4f8adfd219ff 100644 --- a/docs/i18n/text/underline-en.yaml +++ b/docs/i18n/text/underline-en.yaml @@ -1,141 +1,141 @@ -route: /docs/reference/text/underline/ -title: Underline -description: Documentation for the `underline` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-offset - name: offset - children: [] - - id: parameters-extent - name: extent - children: [] - - id: parameters-evade - name: evade - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - underline - display: Underline - keywords: null - oneliner: Underlines text. - element: true - details: |- -

Underlines text.

-

Example

-
This is #underline[important].
-      
Preview
- params: - - name: stroke - details: |- -

How to stroke the line.

-

See the line's documentation for more details. If - set to auto, takes on the text's color and a thickness defined in - the current font.

- example: |- -
Take #underline(
-          stroke: 1.5pt + red,
-          offset: 2pt,
-          [care],
-        )
-        
Preview
- types: - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: offset - details: |- -

The position of the line relative to the baseline, read from the font - tables if auto.

- example: |- -
#underline(offset: 5pt)[
-          The Tale Of A Faraway Line I
-        ]
-        
Preview
- types: - - auto - - length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: extent - details: |- -

The amount by which to extend the line beyond (or within if negative) - the content.

- example: |- -
#align(center,
-          underline(extent: 2pt)[Chapter 1]
-        )
-        
Preview
- types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: evade - details: |- -

Whether the line skips sections in which it would collide with the - glyphs.

- example: |- -
This #underline(evade: true)[is great].
-        This #underline(evade: false)[is less great].
-        
Preview
- types: - - boolean - strings: [] - default: true - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details:

The content to underline.

- example: null - types: - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/underline/ +title: Underline +description: Documentation for the `underline` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-offset + name: offset + children: [] + - id: parameters-extent + name: extent + children: [] + - id: parameters-evade + name: evade + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - underline + display: Underline + keywords: null + oneliner: Underlines text. + element: true + details: |- +

Underlines text.

+

Example

+
This is #underline[important].
+      
Preview
+ params: + - name: stroke + details: |- +

How to stroke the line.

+

See the line's documentation for more details. If + set to auto, takes on the text's color and a thickness defined in + the current font.

+ example: |- +
Take #underline(
+          stroke: 1.5pt + red,
+          offset: 2pt,
+          [care],
+        )
+        
Preview
+ types: + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: offset + details: |- +

The position of the line relative to the baseline, read from the font + tables if auto.

+ example: |- +
#underline(offset: 5pt)[
+          The Tale Of A Faraway Line I
+        ]
+        
Preview
+ types: + - auto + - length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: extent + details: |- +

The amount by which to extend the line beyond (or within if negative) + the content.

+ example: |- +
#align(center,
+          underline(extent: 2pt)[Chapter 1]
+        )
+        
Preview
+ types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: evade + details: |- +

Whether the line skips sections in which it would collide with the + glyphs.

+ example: |- +
This #underline(evade: true)[is great].
+        This #underline(evade: false)[is less great].
+        
Preview
+ types: + - boolean + strings: [] + default: true + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details:

The content to underline.

+ example: null + types: + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/text/upper-en.yaml b/docs/i18n/text/upper-en.yaml index 370f5ef4f5c9..4638c3d10ce6 100644 --- a/docs/i18n/text/upper-en.yaml +++ b/docs/i18n/text/upper-en.yaml @@ -1,53 +1,53 @@ -route: /docs/reference/text/upper/ -title: Uppercase -description: Documentation for the `upper` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-text - name: text - children: [] -body: - kind: func - content: - path: - - upper - display: Uppercase - keywords: null - oneliner: Converts text or content to uppercase. - element: false - details: |- -

Converts text or content to uppercase.

-

Example

-
#upper("abc") \
-      #upper[*my text*] \
-      #upper[ALREADY HIGH]
-      
Preview
- params: - - name: text - details:

The text to convert to uppercase.

- example: null - types: - - string - - content - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - returns: - - string - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/text/upper/ +title: Uppercase +description: Documentation for the `upper` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-text + name: text + children: [] +body: + kind: func + content: + path: + - upper + display: Uppercase + keywords: null + oneliner: Converts text or content to uppercase. + element: false + details: |- +

Converts text or content to uppercase.

+

Example

+
#upper("abc") \
+      #upper[*my text*] \
+      #upper[ALREADY HIGH]
+      
Preview
+ params: + - name: text + details:

The text to convert to uppercase.

+ example: null + types: + - string + - content + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + returns: + - string + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/circle-en.yaml b/docs/i18n/visualize/circle-en.yaml index 4e36ebee6cc7..bead279c6d61 100644 --- a/docs/i18n/visualize/circle-en.yaml +++ b/docs/i18n/visualize/circle-en.yaml @@ -1,193 +1,193 @@ -route: /docs/reference/visualize/circle/ -title: Circle -description: Documentation for the `circle` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-radius - name: radius - children: [] - - id: parameters-width - name: width - children: [] - - id: parameters-height - name: height - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-inset - name: inset - children: [] - - id: parameters-outset - name: outset - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - circle - display: Circle - keywords: null - oneliner: A circle with optional content. - element: true - details: |- -

A circle with optional content.

-

Example

-
// Without content.
-      #circle(radius: 25pt)
-
-      // With content.
-      #circle[
-        #set align(center + horizon)
-        Automatically \
-        sized to fit.
-      ]
-      
Preview
- params: - - name: radius - details: |- -

The circle's radius. This is mutually exclusive with width and - height.

- example: null - types: - - length - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: width - details: |- -

The circle's width. This is mutually exclusive with radius and - height.

-

In contrast to radius, this can be relative to the parent container's - width.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details: |- -

The circle's height.This is mutually exclusive with radius and - width.

-

In contrast to radius, this can be relative to the parent container's - height.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

How to fill the circle. See the - rectangle's documentation for more details.

- example: null - types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the circle. See the rectangle's - documentation for more details.

- example: null - types: - - none - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: inset - details: |- -

How much to pad the circle's content. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 5pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: outset - details: |- -

How much to expand the circle's size without affecting the layout. See - the rectangle's documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details: |- -

The content to place into the circle. The circle expands to fit this - content, keeping the 1-1 aspect ratio.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/circle/ +title: Circle +description: Documentation for the `circle` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-radius + name: radius + children: [] + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-inset + name: inset + children: [] + - id: parameters-outset + name: outset + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - circle + display: Circle + keywords: null + oneliner: A circle with optional content. + element: true + details: |- +

A circle with optional content.

+

Example

+
// Without content.
+      #circle(radius: 25pt)
+
+      // With content.
+      #circle[
+        #set align(center + horizon)
+        Automatically \
+        sized to fit.
+      ]
+      
Preview
+ params: + - name: radius + details: |- +

The circle's radius. This is mutually exclusive with width and + height.

+ example: null + types: + - length + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: width + details: |- +

The circle's width. This is mutually exclusive with radius and + height.

+

In contrast to radius, this can be relative to the parent container's + width.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details: |- +

The circle's height.This is mutually exclusive with radius and + width.

+

In contrast to radius, this can be relative to the parent container's + height.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

How to fill the circle. See the + rectangle's documentation for more details.

+ example: null + types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the circle. See the rectangle's + documentation for more details.

+ example: null + types: + - none + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: inset + details: |- +

How much to pad the circle's content. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 5pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: outset + details: |- +

How much to expand the circle's size without affecting the layout. See + the rectangle's documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details: |- +

The content to place into the circle. The circle expands to fit this + content, keeping the 1-1 aspect ratio.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/ellipse-en.yaml b/docs/i18n/visualize/ellipse-en.yaml index 96b9689ae5e3..9098f2ddd7f8 100644 --- a/docs/i18n/visualize/ellipse-en.yaml +++ b/docs/i18n/visualize/ellipse-en.yaml @@ -1,169 +1,169 @@ -route: /docs/reference/visualize/ellipse/ -title: Ellipse -description: Documentation for the `ellipse` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-width - name: width - children: [] - - id: parameters-height - name: height - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-inset - name: inset - children: [] - - id: parameters-outset - name: outset - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - ellipse - display: Ellipse - keywords: null - oneliner: An ellipse with optional content. - element: true - details: |- -

An ellipse with optional content.

-

Example

-
// Without content.
-      #ellipse(width: 35%, height: 30pt)
-
-      // With content.
-      #ellipse[
-        #set align(center)
-        Automatically sized \
-        to fit the content.
-      ]
-      
Preview
- params: - - name: width - details:

The ellipse's width, relative to its parent container.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details:

The ellipse's height, relative to its parent container.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

How to fill the ellipse. See the - rectangle's documentation for more details.

- example: null - types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the ellipse. See the rectangle's - documentation for more details.

- example: null - types: - - none - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: inset - details: |- -

How much to pad the ellipse's content. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 5pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: outset - details: |- -

How much to expand the ellipse's size without affecting the layout. See - the rectangle's documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details: |- -

The content to place into the ellipse.

-

When this is omitted, the ellipse takes on a default size of at most - 45pt by 30pt.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/ellipse/ +title: Ellipse +description: Documentation for the `ellipse` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-inset + name: inset + children: [] + - id: parameters-outset + name: outset + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - ellipse + display: Ellipse + keywords: null + oneliner: An ellipse with optional content. + element: true + details: |- +

An ellipse with optional content.

+

Example

+
// Without content.
+      #ellipse(width: 35%, height: 30pt)
+
+      // With content.
+      #ellipse[
+        #set align(center)
+        Automatically sized \
+        to fit the content.
+      ]
+      
Preview
+ params: + - name: width + details:

The ellipse's width, relative to its parent container.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details:

The ellipse's height, relative to its parent container.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

How to fill the ellipse. See the + rectangle's documentation for more details.

+ example: null + types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the ellipse. See the rectangle's + documentation for more details.

+ example: null + types: + - none + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: inset + details: |- +

How much to pad the ellipse's content. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 5pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: outset + details: |- +

How much to expand the ellipse's size without affecting the layout. See + the rectangle's documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details: |- +

The content to place into the ellipse.

+

When this is omitted, the ellipse takes on a default size of at most + 45pt by 30pt.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/image-en.yaml b/docs/i18n/visualize/image-en.yaml index 51bd048efe5f..01f76a55df5b 100644 --- a/docs/i18n/visualize/image-en.yaml +++ b/docs/i18n/visualize/image-en.yaml @@ -1,130 +1,130 @@ -route: /docs/reference/visualize/image/ -title: Image -description: Documentation for the `image` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-path - name: path - children: [] - - id: parameters-width - name: width - children: [] - - id: parameters-height - name: height - children: [] - - id: parameters-alt - name: alt - children: [] - - id: parameters-fit - name: fit - children: [] -body: - kind: func - content: - path: - - image - display: Image - keywords: null - oneliner: A raster or vector graphic. - element: true - details: |- -

A raster or vector graphic.

-

Supported formats are PNG, JPEG, GIF and SVG.

-

Note: Work on SVG export is ongoing and there might be visual inaccuracies - in the resulting PDF. Make sure to double-check embedded SVG images. If you - have an issue, also feel free to report it on GitHub.

-

Example

-
#figure(
-        image("molecular.jpg", width: 80%),
-        caption: [
-          A step in the molecular testing
-          pipeline of our lab.
-        ],
-      )
-      
Preview
- params: - - name: path - details:

Path to an image file.

- example: null - types: - - string - strings: [] - default: null - positional: true - named: false - required: true - variadic: false - settable: false - - name: width - details:

The width of the image.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details:

The height of the image.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: alt - details:

A text describing the image.

- example: null - types: - - none - - string - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: fit - details:

How the image should adjust itself to a given area.

- example: null - types: - - string - strings: - - string: cover - details:

The image should completely cover the area. This is the default.

- - string: contain - details:

The image should be fully contained in the area.

- - string: stretch - details: |- -

The image should be stretched so that it exactly fills the area, even if - this means that the image will be distorted.

- default: "cover" - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/image/ +title: Image +description: Documentation for the `image` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-path + name: path + children: [] + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-alt + name: alt + children: [] + - id: parameters-fit + name: fit + children: [] +body: + kind: func + content: + path: + - image + display: Image + keywords: null + oneliner: A raster or vector graphic. + element: true + details: |- +

A raster or vector graphic.

+

Supported formats are PNG, JPEG, GIF and SVG.

+

Note: Work on SVG export is ongoing and there might be visual inaccuracies + in the resulting PDF. Make sure to double-check embedded SVG images. If you + have an issue, also feel free to report it on GitHub.

+

Example

+
#figure(
+        image("molecular.jpg", width: 80%),
+        caption: [
+          A step in the molecular testing
+          pipeline of our lab.
+        ],
+      )
+      
Preview
+ params: + - name: path + details:

Path to an image file.

+ example: null + types: + - string + strings: [] + default: null + positional: true + named: false + required: true + variadic: false + settable: false + - name: width + details:

The width of the image.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details:

The height of the image.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: alt + details:

A text describing the image.

+ example: null + types: + - none + - string + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: fit + details:

How the image should adjust itself to a given area.

+ example: null + types: + - string + strings: + - string: cover + details:

The image should completely cover the area. This is the default.

+ - string: contain + details:

The image should be fully contained in the area.

+ - string: stretch + details: |- +

The image should be stretched so that it exactly fills the area, even if + this means that the image will be distorted.

+ default: "cover" + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/line-en.yaml b/docs/i18n/visualize/line-en.yaml index 30ea51181948..ae1831163724 100644 --- a/docs/i18n/visualize/line-en.yaml +++ b/docs/i18n/visualize/line-en.yaml @@ -1,174 +1,174 @@ -route: /docs/reference/visualize/line/ -title: Line -description: Documentation for the `line` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-start - name: start - children: [] - - id: parameters-end - name: end - children: [] - - id: parameters-length - name: length - children: [] - - id: parameters-angle - name: angle - children: [] - - id: parameters-stroke - name: stroke - children: [] -body: - kind: func - content: - path: - - line - display: Line - keywords: null - oneliner: A line from one point to another. - element: true - details: |- -

A line from one point to another.

-

Example

-
#set page(height: 100pt)
-
-      #line(length: 100%)
-      #line(end: (50%, 50%))
-      #line(
-        length: 4cm,
-        stroke: 2pt + maroon,
-      )
-      
Preview
- params: - - name: start - details: |- -

The start point of the line.

-

Must be an array of exactly two relative lengths.

- example: null - types: - - array - strings: [] - default: (0pt, 0pt) - positional: false - named: true - required: false - variadic: false - settable: true - - name: end - details:

The offset from start where the line ends.

- example: null - types: - - none - - array - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: length - details:

The line's length. This is only respected if end is - none.

- example: null - types: - - relative length - strings: [] - default: 30pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: angle - details: |- -

The angle at which the line points away from the origin. This is only - respected if end is none.

- example: null - types: - - angle - strings: [] - default: 0deg - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the line. This can be:

-
    -
  • A length specifying the stroke's thickness. The color is inherited, - defaulting to black.
  • -
  • A color to use for the stroke. The thickness is inherited, defaulting - to 1pt.
  • -
  • A stroke combined from color and thickness using the + operator as - in 2pt + red.
  • -
  • A stroke described by a dictionary with any of the following keys: -
      -
    • paint: The color to use for the stroke.
    • -
    • thickness: The stroke's thickness as a length.
    • -
    • cap: How the line terminates. One of "butt", "round", or - "square".
    • -
    • join: How sharp turns of a contour are rendered. One of - "miter", "round", or "bevel". Not applicable to lines - but to polygons or paths.
    • -
    • miter-limit: Number at which protruding sharp angles are rendered - with a bevel instead. The higher the number, the sharper an angle - can be before it is bevelled. Only applicable if join is - "miter". Defaults to 4.0.
    • -
    • dash: The dash pattern to use. Can be any of the following: -
        -
      • One of the predefined patterns "solid", "dotted", - "densely-dotted", "loosely-dotted", "dashed", - "densely-dashed", "loosely-dashed", "dash-dotted", - "densely-dash-dotted" or "loosely-dash-dotted"
      • -
      • An array with alternating lengths for dashes and - gaps. You can also use the string "dot" for a length equal to - the line thickness.
      • -
      • A dictionary with the keys array (same as - the array above), and phase (of type length), - which defines where in the pattern to start drawing.
      • -
      -
    • -
    -
  • -
- example: |- -
#set line(length: 100%)
-        #stack(
-          spacing: 1em,
-          line(stroke: 2pt + red),
-          line(stroke: (paint: blue, thickness: 4pt, cap: "round")),
-          line(stroke: (paint: blue, thickness: 1pt, dash: "dashed")),
-          line(stroke: (paint: blue, thickness: 1pt, dash: ("dot", 2pt, 4pt, 2pt))),
-        )
-        
Preview
- types: - - length - - color - - dictionary - - stroke - strings: [] - default: 1pt + - black - positional: false - named: true - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/line/ +title: Line +description: Documentation for the `line` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-start + name: start + children: [] + - id: parameters-end + name: end + children: [] + - id: parameters-length + name: length + children: [] + - id: parameters-angle + name: angle + children: [] + - id: parameters-stroke + name: stroke + children: [] +body: + kind: func + content: + path: + - line + display: Line + keywords: null + oneliner: A line from one point to another. + element: true + details: |- +

A line from one point to another.

+

Example

+
#set page(height: 100pt)
+
+      #line(length: 100%)
+      #line(end: (50%, 50%))
+      #line(
+        length: 4cm,
+        stroke: 2pt + maroon,
+      )
+      
Preview
+ params: + - name: start + details: |- +

The start point of the line.

+

Must be an array of exactly two relative lengths.

+ example: null + types: + - array + strings: [] + default: (0pt, 0pt) + positional: false + named: true + required: false + variadic: false + settable: true + - name: end + details:

The offset from start where the line ends.

+ example: null + types: + - none + - array + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: length + details:

The line's length. This is only respected if end is + none.

+ example: null + types: + - relative length + strings: [] + default: 30pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: angle + details: |- +

The angle at which the line points away from the origin. This is only + respected if end is none.

+ example: null + types: + - angle + strings: [] + default: 0deg + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the line. This can be:

+
    +
  • A length specifying the stroke's thickness. The color is inherited, + defaulting to black.
  • +
  • A color to use for the stroke. The thickness is inherited, defaulting + to 1pt.
  • +
  • A stroke combined from color and thickness using the + operator as + in 2pt + red.
  • +
  • A stroke described by a dictionary with any of the following keys: +
      +
    • paint: The color to use for the stroke.
    • +
    • thickness: The stroke's thickness as a length.
    • +
    • cap: How the line terminates. One of "butt", "round", or + "square".
    • +
    • join: How sharp turns of a contour are rendered. One of + "miter", "round", or "bevel". Not applicable to lines + but to polygons or paths.
    • +
    • miter-limit: Number at which protruding sharp angles are rendered + with a bevel instead. The higher the number, the sharper an angle + can be before it is bevelled. Only applicable if join is + "miter". Defaults to 4.0.
    • +
    • dash: The dash pattern to use. Can be any of the following: +
        +
      • One of the predefined patterns "solid", "dotted", + "densely-dotted", "loosely-dotted", "dashed", + "densely-dashed", "loosely-dashed", "dash-dotted", + "densely-dash-dotted" or "loosely-dash-dotted"
      • +
      • An array with alternating lengths for dashes and + gaps. You can also use the string "dot" for a length equal to + the line thickness.
      • +
      • A dictionary with the keys array (same as + the array above), and phase (of type length), + which defines where in the pattern to start drawing.
      • +
      +
    • +
    +
  • +
+ example: |- +
#set line(length: 100%)
+        #stack(
+          spacing: 1em,
+          line(stroke: 2pt + red),
+          line(stroke: (paint: blue, thickness: 4pt, cap: "round")),
+          line(stroke: (paint: blue, thickness: 1pt, dash: "dashed")),
+          line(stroke: (paint: blue, thickness: 1pt, dash: ("dot", 2pt, 4pt, 2pt))),
+        )
+        
Preview
+ types: + - length + - color + - dictionary + - stroke + strings: [] + default: 1pt + + black + positional: false + named: true + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/path-en.yaml b/docs/i18n/visualize/path-en.yaml index 49d582ee7502..0d52f2bf2a18 100644 --- a/docs/i18n/visualize/path-en.yaml +++ b/docs/i18n/visualize/path-en.yaml @@ -1,134 +1,134 @@ -route: /docs/reference/visualize/path/ -title: Path -description: Documentation for the `path` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-fill - name: fill - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-closed - name: closed - children: [] - - id: parameters-vertices - name: vertices - children: [] -body: - kind: func - content: - path: - - path - display: Path - keywords: null - oneliner: A path through a list of points, connected by Bezier curves. - element: true - details: |- -

A path through a list of points, connected by Bezier curves.

-

Example

-
#path(
-        fill: blue.lighten(80%),
-        stroke: blue,
-        closed: true,
-        (0pt, 50pt),
-        (100%, 50pt),
-        ((50%, 0pt), (40pt, 0pt)),
-      )
-      
Preview
- params: - - name: fill - details: |- -

How to fill the path. See the - rectangle's documentation for more details.

-

Currently all paths are filled according to the - non-zero winding rule.

- example: null - types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the path. This can be:

-

See the line's documentation for more details. Can - be set to none to disable the stroke or to auto for a stroke of - 1pt black if and if only if no fill is given.

- example: null - types: - - none - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: closed - details: |- -

Whether to close this path with one last bezier curve. This curve will - takes into account the adjacent control points. If you want to close - with a straight line, simply add one last point that's the same as the - start point.

- example: null - types: - - boolean - strings: [] - default: false - positional: false - named: true - required: false - variadic: false - settable: true - - name: vertices - details: |- -

The vertices of the path.

-

Each vertex can be defined in 3 ways:

-
    -
  • A regular point, as given to the line or - polygon function.
  • -
  • An array of two points, the first being the vertex and the second - being the control point. The control point is expressed relative to - the vertex and is mirrored to get the second control point. The given - control point is the one that affects the curve coming into this - vertex (even for the first point). The mirrored control point affects - the curve going out of this vertex.
  • -
  • An array of three points, the first being the vertex and the next - being the control points (control point for curves coming in and out, - respectively)
  • -
- example: null - types: - - array - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/path/ +title: Path +description: Documentation for the `path` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-closed + name: closed + children: [] + - id: parameters-vertices + name: vertices + children: [] +body: + kind: func + content: + path: + - path + display: Path + keywords: null + oneliner: A path through a list of points, connected by Bezier curves. + element: true + details: |- +

A path through a list of points, connected by Bezier curves.

+

Example

+
#path(
+        fill: blue.lighten(80%),
+        stroke: blue,
+        closed: true,
+        (0pt, 50pt),
+        (100%, 50pt),
+        ((50%, 0pt), (40pt, 0pt)),
+      )
+      
Preview
+ params: + - name: fill + details: |- +

How to fill the path. See the + rectangle's documentation for more details.

+

Currently all paths are filled according to the + non-zero winding rule.

+ example: null + types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the path. This can be:

+

See the line's documentation for more details. Can + be set to none to disable the stroke or to auto for a stroke of + 1pt black if and if only if no fill is given.

+ example: null + types: + - none + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: closed + details: |- +

Whether to close this path with one last bezier curve. This curve will + takes into account the adjacent control points. If you want to close + with a straight line, simply add one last point that's the same as the + start point.

+ example: null + types: + - boolean + strings: [] + default: false + positional: false + named: true + required: false + variadic: false + settable: true + - name: vertices + details: |- +

The vertices of the path.

+

Each vertex can be defined in 3 ways:

+
    +
  • A regular point, as given to the line or + polygon function.
  • +
  • An array of two points, the first being the vertex and the second + being the control point. The control point is expressed relative to + the vertex and is mirrored to get the second control point. The given + control point is the one that affects the curve coming into this + vertex (even for the first point). The mirrored control point affects + the curve going out of this vertex.
  • +
  • An array of three points, the first being the vertex and the next + being the control points (control point for curves coming in and out, + respectively)
  • +
+ example: null + types: + - array + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/polygon-en.yaml b/docs/i18n/visualize/polygon-en.yaml index f913e2bb5f99..334d7d37c518 100644 --- a/docs/i18n/visualize/polygon-en.yaml +++ b/docs/i18n/visualize/polygon-en.yaml @@ -1,103 +1,103 @@ -route: /docs/reference/visualize/polygon/ -title: Polygon -description: Documentation for the `polygon` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-fill - name: fill - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-vertices - name: vertices - children: [] -body: - kind: func - content: - path: - - polygon - display: Polygon - keywords: null - oneliner: A closed polygon. - element: true - details: |- -

A closed polygon.

-

The polygon is defined by its corner points and is closed automatically.

-

Example

-
#polygon(
-        fill: blue.lighten(80%),
-        stroke: blue,
-        (20%, 0pt),
-        (60%, 0pt),
-        (80%, 2cm),
-        (0%,  2cm),
-      )
-      
Preview
- params: - - name: fill - details: |- -

How to fill the polygon. See the - rectangle's documentation for more details.

-

Currently all polygons are filled according to the - non-zero winding rule.

- example: null - types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the polygon. This can be:

-

See the line's documentation for more details. Can - be set to none to disable the stroke or to auto for a stroke of - 1pt black if and if only if no fill is given.

- example: null - types: - - none - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: vertices - details: |- -

The vertices of the polygon. Each point is specified as an array of two - relative lengths.

- example: null - types: - - array - strings: [] - default: null - positional: true - named: false - required: true - variadic: true - settable: false - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/polygon/ +title: Polygon +description: Documentation for the `polygon` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-vertices + name: vertices + children: [] +body: + kind: func + content: + path: + - polygon + display: Polygon + keywords: null + oneliner: A closed polygon. + element: true + details: |- +

A closed polygon.

+

The polygon is defined by its corner points and is closed automatically.

+

Example

+
#polygon(
+        fill: blue.lighten(80%),
+        stroke: blue,
+        (20%, 0pt),
+        (60%, 0pt),
+        (80%, 2cm),
+        (0%,  2cm),
+      )
+      
Preview
+ params: + - name: fill + details: |- +

How to fill the polygon. See the + rectangle's documentation for more details.

+

Currently all polygons are filled according to the + non-zero winding rule.

+ example: null + types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the polygon. This can be:

+

See the line's documentation for more details. Can + be set to none to disable the stroke or to auto for a stroke of + 1pt black if and if only if no fill is given.

+ example: null + types: + - none + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: vertices + details: |- +

The vertices of the polygon. Each point is specified as an array of two + relative lengths.

+ example: null + types: + - array + strings: [] + default: null + positional: true + named: false + required: true + variadic: true + settable: false + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/rect-en.yaml b/docs/i18n/visualize/rect-en.yaml index 836afd8e7270..6cd3aa060046 100644 --- a/docs/i18n/visualize/rect-en.yaml +++ b/docs/i18n/visualize/rect-en.yaml @@ -1,253 +1,253 @@ -route: /docs/reference/visualize/rect/ -title: Rectangle -description: Documentation for the `rect` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-width - name: width - children: [] - - id: parameters-height - name: height - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-radius - name: radius - children: [] - - id: parameters-inset - name: inset - children: [] - - id: parameters-outset - name: outset - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - rect - display: Rectangle - keywords: null - oneliner: A rectangle with optional content. - element: true - details: |- -

A rectangle with optional content.

-

Example

-
// Without content.
-      #rect(width: 35%, height: 30pt)
-
-      // With content.
-      #rect[
-        Automatically sized \
-        to fit the content.
-      ]
-      
Preview
- params: - - name: width - details:

The rectangle's width, relative to its parent container.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details:

The rectangle's height, relative to its parent container.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

How to fill the rectangle.

-

When setting a fill, the default stroke disappears. To create a - rectangle with both fill and stroke, you have to configure both.

- example: |- -
#rect(fill: blue)
-        
Preview
- types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the rectangle. This can be:

-
    -
  • none to disable stroking
  • -
  • auto for a stroke of 1pt + black if and if only if no fill is - given.
  • -
  • Any kind of stroke that can also be used for - lines.
  • -
  • A dictionary describing the stroke for each side inidvidually. The - dictionary can contain the following keys in order of precedence: -
      -
    • top: The top stroke.
    • -
    • right: The right stroke.
    • -
    • bottom: The bottom stroke.
    • -
    • left: The left stroke.
    • -
    • x: The horizontal stroke.
    • -
    • y: The vertical stroke.
    • -
    • rest: The stroke on all sides except those for which the - dictionary explicitly sets a size.
    • -
    -
  • -
- example: |- -
#stack(
-          dir: ltr,
-          spacing: 1fr,
-          rect(stroke: red),
-          rect(stroke: 2pt),
-          rect(stroke: 2pt + red),
-        )
-        
Preview
- types: - - none - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: radius - details: |- -

How much to round the rectangle's corners, relative to the minimum of - the width and height divided by two. This can be:

-
    -
  • A relative length for a uniform corner radius.
  • -
  • A dictionary: With a dictionary, the stroke for each side can be set - individually. The dictionary can contain the following keys in order - of precedence: -
      -
    • top-left: The top-left corner radius.
    • -
    • top-right: The top-right corner radius.
    • -
    • bottom-right: The bottom-right corner radius.
    • -
    • bottom-left: The bottom-left corner radius.
    • -
    • left: The top-left and bottom-left corner radii.
    • -
    • top: The top-left and top-right corner radii.
    • -
    • right: The top-right and bottom-right corner radii.
    • -
    • bottom: The bottom-left and bottom-right corner radii.
    • -
    • rest: The radii for all corners except those for which the - dictionary explicitly sets a size.
    • -
    -
  • -
- example: |- -
#set rect(stroke: 4pt)
-        #rect(
-          radius: (
-            left: 5pt,
-            top-right: 20pt,
-            bottom-right: 10pt,
-          ),
-          stroke: (
-            left: red,
-            top: yellow,
-            right: green,
-            bottom: blue,
-          ),
-        )
-        
Preview
- types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: inset - details: |- -

How much to pad the rectangle's content.

-

Note: When the rectangle contains text, its exact size depends on the - current text edges.

- example: |- -
#rect(inset: 0pt)[Tight]
-        
Preview
- types: - - relative length - - dictionary - strings: [] - default: 5pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: outset - details: |- -

How much to expand the rectangle's size without affecting the layout. - See the box's documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details: |- -

The content to place into the rectangle.

-

When this is omitted, the rectangle takes on a default size of at most - 45pt by 30pt.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/rect/ +title: Rectangle +description: Documentation for the `rect` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-radius + name: radius + children: [] + - id: parameters-inset + name: inset + children: [] + - id: parameters-outset + name: outset + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - rect + display: Rectangle + keywords: null + oneliner: A rectangle with optional content. + element: true + details: |- +

A rectangle with optional content.

+

Example

+
// Without content.
+      #rect(width: 35%, height: 30pt)
+
+      // With content.
+      #rect[
+        Automatically sized \
+        to fit the content.
+      ]
+      
Preview
+ params: + - name: width + details:

The rectangle's width, relative to its parent container.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details:

The rectangle's height, relative to its parent container.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

How to fill the rectangle.

+

When setting a fill, the default stroke disappears. To create a + rectangle with both fill and stroke, you have to configure both.

+ example: |- +
#rect(fill: blue)
+        
Preview
+ types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the rectangle. This can be:

+
    +
  • none to disable stroking
  • +
  • auto for a stroke of 1pt + black if and if only if no fill is + given.
  • +
  • Any kind of stroke that can also be used for + lines.
  • +
  • A dictionary describing the stroke for each side inidvidually. The + dictionary can contain the following keys in order of precedence: +
      +
    • top: The top stroke.
    • +
    • right: The right stroke.
    • +
    • bottom: The bottom stroke.
    • +
    • left: The left stroke.
    • +
    • x: The horizontal stroke.
    • +
    • y: The vertical stroke.
    • +
    • rest: The stroke on all sides except those for which the + dictionary explicitly sets a size.
    • +
    +
  • +
+ example: |- +
#stack(
+          dir: ltr,
+          spacing: 1fr,
+          rect(stroke: red),
+          rect(stroke: 2pt),
+          rect(stroke: 2pt + red),
+        )
+        
Preview
+ types: + - none + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: radius + details: |- +

How much to round the rectangle's corners, relative to the minimum of + the width and height divided by two. This can be:

+
    +
  • A relative length for a uniform corner radius.
  • +
  • A dictionary: With a dictionary, the stroke for each side can be set + individually. The dictionary can contain the following keys in order + of precedence: +
      +
    • top-left: The top-left corner radius.
    • +
    • top-right: The top-right corner radius.
    • +
    • bottom-right: The bottom-right corner radius.
    • +
    • bottom-left: The bottom-left corner radius.
    • +
    • left: The top-left and bottom-left corner radii.
    • +
    • top: The top-left and top-right corner radii.
    • +
    • right: The top-right and bottom-right corner radii.
    • +
    • bottom: The bottom-left and bottom-right corner radii.
    • +
    • rest: The radii for all corners except those for which the + dictionary explicitly sets a size.
    • +
    +
  • +
+ example: |- +
#set rect(stroke: 4pt)
+        #rect(
+          radius: (
+            left: 5pt,
+            top-right: 20pt,
+            bottom-right: 10pt,
+          ),
+          stroke: (
+            left: red,
+            top: yellow,
+            right: green,
+            bottom: blue,
+          ),
+        )
+        
Preview
+ types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: inset + details: |- +

How much to pad the rectangle's content.

+

Note: When the rectangle contains text, its exact size depends on the + current text edges.

+ example: |- +
#rect(inset: 0pt)[Tight]
+        
Preview
+ types: + - relative length + - dictionary + strings: [] + default: 5pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: outset + details: |- +

How much to expand the rectangle's size without affecting the layout. + See the box's documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details: |- +

The content to place into the rectangle.

+

When this is omitted, the rectangle takes on a default size of at most + 45pt by 30pt.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/docs/i18n/visualize/square-en.yaml b/docs/i18n/visualize/square-en.yaml index 39b825db95ff..eeb36d676e63 100644 --- a/docs/i18n/visualize/square-en.yaml +++ b/docs/i18n/visualize/square-en.yaml @@ -1,211 +1,211 @@ -route: /docs/reference/visualize/square/ -title: Square -description: Documentation for the `square` function. -part: null -outline: -- id: summary - name: Summary - children: [] -- id: example - name: Example - children: [] -- id: parameters - name: Parameters - children: - - id: parameters-size - name: size - children: [] - - id: parameters-width - name: width - children: [] - - id: parameters-height - name: height - children: [] - - id: parameters-fill - name: fill - children: [] - - id: parameters-stroke - name: stroke - children: [] - - id: parameters-radius - name: radius - children: [] - - id: parameters-inset - name: inset - children: [] - - id: parameters-outset - name: outset - children: [] - - id: parameters-body - name: body - children: [] -body: - kind: func - content: - path: - - square - display: Square - keywords: null - oneliner: A square with optional content. - element: true - details: |- -

A square with optional content.

-

Example

-
// Without content.
-      #square(size: 40pt)
-
-      // With content.
-      #square[
-        Automatically \
-        sized to fit.
-      ]
-      
Preview
- params: - - name: size - details: |- -

The square's side length. This is mutually exclusive with width and - height.

- example: null - types: - - auto - - length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: width - details: |- -

The square's width. This is mutually exclusive with size and height.

-

In contrast to size, this can be relative to the parent container's - width.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: height - details: |- -

The square's height. This is mutually exclusive with size and width.

-

In contrast to size, this can be relative to the parent container's - height.

- example: null - types: - - auto - - relative length - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: fill - details: |- -

How to fill the square. See the - rectangle's documentation for more details.

- example: null - types: - - none - - color - strings: [] - default: none - positional: false - named: true - required: false - variadic: false - settable: true - - name: stroke - details: |- -

How to stroke the square. See the rectangle's - documentation for more details.

- example: null - types: - - none - - auto - - length - - color - - dictionary - - stroke - strings: [] - default: auto - positional: false - named: true - required: false - variadic: false - settable: true - - name: radius - details: |- -

How much to round the square's corners. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: inset - details: |- -

How much to pad the square's content. See the rectangle's - documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 5pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: outset - details: |- -

How much to expand the square's size without affecting the layout. See - the rectangle's documentation for more details.

- example: null - types: - - relative length - - dictionary - strings: [] - default: 0pt - positional: false - named: true - required: false - variadic: false - settable: true - - name: body - details: |- -

The content to place into the square. The square expands to fit this - content, keeping the 1-1 aspect ratio.

-

When this is omitted, the square takes on a default size of at most - 30pt.

- example: null - types: - - none - - content - strings: [] - default: none - positional: true - named: false - required: false - variadic: false - settable: true - returns: - - content - methods: [] - scope: [] -children: [] +route: /docs/reference/visualize/square/ +title: Square +description: Documentation for the `square` function. +part: null +outline: +- id: summary + name: Summary + children: [] +- id: example + name: Example + children: [] +- id: parameters + name: Parameters + children: + - id: parameters-size + name: size + children: [] + - id: parameters-width + name: width + children: [] + - id: parameters-height + name: height + children: [] + - id: parameters-fill + name: fill + children: [] + - id: parameters-stroke + name: stroke + children: [] + - id: parameters-radius + name: radius + children: [] + - id: parameters-inset + name: inset + children: [] + - id: parameters-outset + name: outset + children: [] + - id: parameters-body + name: body + children: [] +body: + kind: func + content: + path: + - square + display: Square + keywords: null + oneliner: A square with optional content. + element: true + details: |- +

A square with optional content.

+

Example

+
// Without content.
+      #square(size: 40pt)
+
+      // With content.
+      #square[
+        Automatically \
+        sized to fit.
+      ]
+      
Preview
+ params: + - name: size + details: |- +

The square's side length. This is mutually exclusive with width and + height.

+ example: null + types: + - auto + - length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: width + details: |- +

The square's width. This is mutually exclusive with size and height.

+

In contrast to size, this can be relative to the parent container's + width.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: height + details: |- +

The square's height. This is mutually exclusive with size and width.

+

In contrast to size, this can be relative to the parent container's + height.

+ example: null + types: + - auto + - relative length + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: fill + details: |- +

How to fill the square. See the + rectangle's documentation for more details.

+ example: null + types: + - none + - color + strings: [] + default: none + positional: false + named: true + required: false + variadic: false + settable: true + - name: stroke + details: |- +

How to stroke the square. See the rectangle's + documentation for more details.

+ example: null + types: + - none + - auto + - length + - color + - dictionary + - stroke + strings: [] + default: auto + positional: false + named: true + required: false + variadic: false + settable: true + - name: radius + details: |- +

How much to round the square's corners. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: inset + details: |- +

How much to pad the square's content. See the rectangle's + documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 5pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: outset + details: |- +

How much to expand the square's size without affecting the layout. See + the rectangle's documentation for more details.

+ example: null + types: + - relative length + - dictionary + strings: [] + default: 0pt + positional: false + named: true + required: false + variadic: false + settable: true + - name: body + details: |- +

The content to place into the square. The square expands to fit this + content, keeping the 1-1 aspect ratio.

+

When this is omitted, the square takes on a default size of at most + 30pt.

+ example: null + types: + - none + - content + strings: [] + default: none + positional: true + named: false + required: false + variadic: false + settable: true + returns: + - content + methods: [] + scope: [] +children: [] diff --git a/static/assets/search-cn.json b/static/assets/search-cn.json new file mode 100644 index 000000000000..3824ff24877a --- /dev/null +++ b/static/assets/search-cn.json @@ -0,0 +1 @@ +{"items":[{"kind":"章节","title":"Overview","route":"/docs/"},{"kind":"章节","title":"Tutorial","route":"/docs/tutorial/"},{"kind":"章节","title":"Writing in Typst","route":"/docs/tutorial/writing-in-typst/"},{"kind":"章节","title":"Formatting","route":"/docs/tutorial/formatting/"},{"kind":"章节","title":"Advanced Styling","route":"/docs/tutorial/advanced-styling/"},{"kind":"章节","title":"Making a Template","route":"/docs/tutorial/making-a-template/"},{"kind":"章节","title":"Reference","route":"/docs/reference/"},{"kind":"章节","title":"Syntax","route":"/docs/reference/syntax/"},{"kind":"章节","title":"Styling","route":"/docs/reference/styling/"},{"kind":"章节","title":"Scripting","route":"/docs/reference/scripting/"},{"kind":"类别","title":"Types","route":"/docs/reference/types/"},{"kind":"类型","title":"None","route":"/docs/reference/types/none/"},{"kind":"类型","title":"Auto","route":"/docs/reference/types/auto/"},{"kind":"类型","title":"Boolean","route":"/docs/reference/types/boolean/"},{"kind":"类型","title":"Integer","route":"/docs/reference/types/integer/"},{"kind":"类型","title":"Float","route":"/docs/reference/types/float/"},{"kind":"类型","title":"Length","route":"/docs/reference/types/length/"},{"kind":"类型","title":"Angle","route":"/docs/reference/types/angle/"},{"kind":"类型","title":"Ratio","route":"/docs/reference/types/ratio/"},{"kind":"类型","title":"Relative Length","route":"/docs/reference/types/relative-length/"},{"kind":"类型","title":"Fraction","route":"/docs/reference/types/fraction/"},{"kind":"类型","title":"Color","route":"/docs/reference/types/color/"},{"kind":"color 的方法","title":"Lighten","route":"/docs/reference/types/color/#methods-lighten"},{"kind":"lighten 的参数","title":"Amount","route":"/docs/reference/types/color/#lighten-parameters-amount"},{"kind":"color 的方法","title":"Darken","route":"/docs/reference/types/color/#methods-darken"},{"kind":"darken 的参数","title":"Amount","route":"/docs/reference/types/color/#darken-parameters-amount"},{"kind":"color 的方法","title":"Negate","route":"/docs/reference/types/color/#methods-negate"},{"kind":"类型","title":"Datetime","route":"/docs/reference/types/datetime/"},{"kind":"datetime 的方法","title":"Display","route":"/docs/reference/types/datetime/#methods-display"},{"kind":"display 的参数","title":"Pattern","route":"/docs/reference/types/datetime/#display-parameters-pattern"},{"kind":"datetime 的方法","title":"Year","route":"/docs/reference/types/datetime/#methods-year"},{"kind":"datetime 的方法","title":"Month","route":"/docs/reference/types/datetime/#methods-month"},{"kind":"datetime 的方法","title":"Weekday","route":"/docs/reference/types/datetime/#methods-weekday"},{"kind":"datetime 的方法","title":"Day","route":"/docs/reference/types/datetime/#methods-day"},{"kind":"datetime 的方法","title":"Hour","route":"/docs/reference/types/datetime/#methods-hour"},{"kind":"datetime 的方法","title":"Minute","route":"/docs/reference/types/datetime/#methods-minute"},{"kind":"datetime 的方法","title":"Second","route":"/docs/reference/types/datetime/#methods-second"},{"kind":"类型","title":"Symbol","route":"/docs/reference/types/symbol/"},{"kind":"类型","title":"String","route":"/docs/reference/types/string/"},{"kind":"string 的方法","title":"Len","route":"/docs/reference/types/string/#methods-len"},{"kind":"string 的方法","title":"First","route":"/docs/reference/types/string/#methods-first"},{"kind":"string 的方法","title":"Last","route":"/docs/reference/types/string/#methods-last"},{"kind":"string 的方法","title":"At","route":"/docs/reference/types/string/#methods-at"},{"kind":"at 的参数","title":"Index","route":"/docs/reference/types/string/#at-parameters-index"},{"kind":"at 的参数","title":"Default","route":"/docs/reference/types/string/#at-parameters-default"},{"kind":"string 的方法","title":"Slice","route":"/docs/reference/types/string/#methods-slice"},{"kind":"slice 的参数","title":"Start","route":"/docs/reference/types/string/#slice-parameters-start"},{"kind":"slice 的参数","title":"End","route":"/docs/reference/types/string/#slice-parameters-end"},{"kind":"slice 的参数","title":"Count","route":"/docs/reference/types/string/#slice-parameters-count"},{"kind":"string 的方法","title":"Clusters","route":"/docs/reference/types/string/#methods-clusters"},{"kind":"string 的方法","title":"Codepoints","route":"/docs/reference/types/string/#methods-codepoints"},{"kind":"string 的方法","title":"Contains","route":"/docs/reference/types/string/#methods-contains"},{"kind":"contains 的参数","title":"Pattern","route":"/docs/reference/types/string/#contains-parameters-pattern"},{"kind":"string 的方法","title":"Starts With","route":"/docs/reference/types/string/#methods-starts-with"},{"kind":"starts-with 的参数","title":"Pattern","route":"/docs/reference/types/string/#starts-with-parameters-pattern"},{"kind":"string 的方法","title":"Ends With","route":"/docs/reference/types/string/#methods-ends-with"},{"kind":"ends-with 的参数","title":"Pattern","route":"/docs/reference/types/string/#ends-with-parameters-pattern"},{"kind":"string 的方法","title":"Find","route":"/docs/reference/types/string/#methods-find"},{"kind":"find 的参数","title":"Pattern","route":"/docs/reference/types/string/#find-parameters-pattern"},{"kind":"string 的方法","title":"Position","route":"/docs/reference/types/string/#methods-position"},{"kind":"position 的参数","title":"Pattern","route":"/docs/reference/types/string/#position-parameters-pattern"},{"kind":"string 的方法","title":"Match","route":"/docs/reference/types/string/#methods-match"},{"kind":"match 的参数","title":"Pattern","route":"/docs/reference/types/string/#match-parameters-pattern"},{"kind":"string 的方法","title":"Matches","route":"/docs/reference/types/string/#methods-matches"},{"kind":"matches 的参数","title":"Pattern","route":"/docs/reference/types/string/#matches-parameters-pattern"},{"kind":"string 的方法","title":"Replace","route":"/docs/reference/types/string/#methods-replace"},{"kind":"replace 的参数","title":"Pattern","route":"/docs/reference/types/string/#replace-parameters-pattern"},{"kind":"replace 的参数","title":"Replacement","route":"/docs/reference/types/string/#replace-parameters-replacement"},{"kind":"replace 的参数","title":"Count","route":"/docs/reference/types/string/#replace-parameters-count"},{"kind":"string 的方法","title":"Trim","route":"/docs/reference/types/string/#methods-trim"},{"kind":"trim 的参数","title":"Pattern","route":"/docs/reference/types/string/#trim-parameters-pattern"},{"kind":"trim 的参数","title":"At","route":"/docs/reference/types/string/#trim-parameters-at"},{"kind":"trim 的参数","title":"Repeat","route":"/docs/reference/types/string/#trim-parameters-repeat"},{"kind":"string 的方法","title":"Split","route":"/docs/reference/types/string/#methods-split"},{"kind":"split 的参数","title":"Pattern","route":"/docs/reference/types/string/#split-parameters-pattern"},{"kind":"类型","title":"Content","route":"/docs/reference/types/content/"},{"kind":"content 的方法","title":"Func","route":"/docs/reference/types/content/#methods-func"},{"kind":"content 的方法","title":"Has","route":"/docs/reference/types/content/#methods-has"},{"kind":"has 的参数","title":"Field","route":"/docs/reference/types/content/#has-parameters-field"},{"kind":"content 的方法","title":"At","route":"/docs/reference/types/content/#methods-at"},{"kind":"at 的参数","title":"Field","route":"/docs/reference/types/content/#at-parameters-field"},{"kind":"at 的参数","title":"Default","route":"/docs/reference/types/content/#at-parameters-default"},{"kind":"content 的方法","title":"Fields","route":"/docs/reference/types/content/#methods-fields"},{"kind":"content 的方法","title":"Location","route":"/docs/reference/types/content/#methods-location"},{"kind":"类型","title":"Array","route":"/docs/reference/types/array/"},{"kind":"array 的方法","title":"Len","route":"/docs/reference/types/array/#methods-len"},{"kind":"array 的方法","title":"First","route":"/docs/reference/types/array/#methods-first"},{"kind":"array 的方法","title":"Last","route":"/docs/reference/types/array/#methods-last"},{"kind":"array 的方法","title":"At","route":"/docs/reference/types/array/#methods-at"},{"kind":"at 的参数","title":"Index","route":"/docs/reference/types/array/#at-parameters-index"},{"kind":"at 的参数","title":"Default","route":"/docs/reference/types/array/#at-parameters-default"},{"kind":"array 的方法","title":"Push","route":"/docs/reference/types/array/#methods-push"},{"kind":"push 的参数","title":"Value","route":"/docs/reference/types/array/#push-parameters-value"},{"kind":"array 的方法","title":"Pop","route":"/docs/reference/types/array/#methods-pop"},{"kind":"array 的方法","title":"Insert","route":"/docs/reference/types/array/#methods-insert"},{"kind":"insert 的参数","title":"Index","route":"/docs/reference/types/array/#insert-parameters-index"},{"kind":"insert 的参数","title":"Value","route":"/docs/reference/types/array/#insert-parameters-value"},{"kind":"array 的方法","title":"Remove","route":"/docs/reference/types/array/#methods-remove"},{"kind":"remove 的参数","title":"Index","route":"/docs/reference/types/array/#remove-parameters-index"},{"kind":"array 的方法","title":"Slice","route":"/docs/reference/types/array/#methods-slice"},{"kind":"slice 的参数","title":"Start","route":"/docs/reference/types/array/#slice-parameters-start"},{"kind":"slice 的参数","title":"End","route":"/docs/reference/types/array/#slice-parameters-end"},{"kind":"slice 的参数","title":"Count","route":"/docs/reference/types/array/#slice-parameters-count"},{"kind":"array 的方法","title":"Contains","route":"/docs/reference/types/array/#methods-contains"},{"kind":"contains 的参数","title":"Value","route":"/docs/reference/types/array/#contains-parameters-value"},{"kind":"array 的方法","title":"Find","route":"/docs/reference/types/array/#methods-find"},{"kind":"find 的参数","title":"Searcher","route":"/docs/reference/types/array/#find-parameters-searcher"},{"kind":"array 的方法","title":"Position","route":"/docs/reference/types/array/#methods-position"},{"kind":"position 的参数","title":"Searcher","route":"/docs/reference/types/array/#position-parameters-searcher"},{"kind":"array 的方法","title":"Filter","route":"/docs/reference/types/array/#methods-filter"},{"kind":"filter 的参数","title":"Test","route":"/docs/reference/types/array/#filter-parameters-test"},{"kind":"array 的方法","title":"Map","route":"/docs/reference/types/array/#methods-map"},{"kind":"map 的参数","title":"Mapper","route":"/docs/reference/types/array/#map-parameters-mapper"},{"kind":"array 的方法","title":"Enumerate","route":"/docs/reference/types/array/#methods-enumerate"},{"kind":"array 的方法","title":"Zip","route":"/docs/reference/types/array/#methods-zip"},{"kind":"zip 的参数","title":"Other","route":"/docs/reference/types/array/#zip-parameters-other"},{"kind":"array 的方法","title":"Fold","route":"/docs/reference/types/array/#methods-fold"},{"kind":"fold 的参数","title":"Init","route":"/docs/reference/types/array/#fold-parameters-init"},{"kind":"fold 的参数","title":"Folder","route":"/docs/reference/types/array/#fold-parameters-folder"},{"kind":"array 的方法","title":"Sum","route":"/docs/reference/types/array/#methods-sum"},{"kind":"sum 的参数","title":"Default","route":"/docs/reference/types/array/#sum-parameters-default"},{"kind":"array 的方法","title":"Product","route":"/docs/reference/types/array/#methods-product"},{"kind":"product 的参数","title":"Default","route":"/docs/reference/types/array/#product-parameters-default"},{"kind":"array 的方法","title":"Any","route":"/docs/reference/types/array/#methods-any"},{"kind":"any 的参数","title":"Test","route":"/docs/reference/types/array/#any-parameters-test"},{"kind":"array 的方法","title":"All","route":"/docs/reference/types/array/#methods-all"},{"kind":"all 的参数","title":"Test","route":"/docs/reference/types/array/#all-parameters-test"},{"kind":"array 的方法","title":"Flatten","route":"/docs/reference/types/array/#methods-flatten"},{"kind":"array 的方法","title":"Rev","route":"/docs/reference/types/array/#methods-rev"},{"kind":"array 的方法","title":"Join","route":"/docs/reference/types/array/#methods-join"},{"kind":"join 的参数","title":"Separator","route":"/docs/reference/types/array/#join-parameters-separator"},{"kind":"join 的参数","title":"Last","route":"/docs/reference/types/array/#join-parameters-last"},{"kind":"array 的方法","title":"Sorted","route":"/docs/reference/types/array/#methods-sorted"},{"kind":"sorted 的参数","title":"Key","route":"/docs/reference/types/array/#sorted-parameters-key"},{"kind":"类型","title":"Dictionary","route":"/docs/reference/types/dictionary/"},{"kind":"dictionary 的方法","title":"Len","route":"/docs/reference/types/dictionary/#methods-len"},{"kind":"dictionary 的方法","title":"At","route":"/docs/reference/types/dictionary/#methods-at"},{"kind":"at 的参数","title":"Key","route":"/docs/reference/types/dictionary/#at-parameters-key"},{"kind":"at 的参数","title":"Default","route":"/docs/reference/types/dictionary/#at-parameters-default"},{"kind":"dictionary 的方法","title":"Insert","route":"/docs/reference/types/dictionary/#methods-insert"},{"kind":"insert 的参数","title":"Key","route":"/docs/reference/types/dictionary/#insert-parameters-key"},{"kind":"insert 的参数","title":"Value","route":"/docs/reference/types/dictionary/#insert-parameters-value"},{"kind":"dictionary 的方法","title":"Keys","route":"/docs/reference/types/dictionary/#methods-keys"},{"kind":"dictionary 的方法","title":"Values","route":"/docs/reference/types/dictionary/#methods-values"},{"kind":"dictionary 的方法","title":"Pairs","route":"/docs/reference/types/dictionary/#methods-pairs"},{"kind":"dictionary 的方法","title":"Remove","route":"/docs/reference/types/dictionary/#methods-remove"},{"kind":"remove 的参数","title":"Key","route":"/docs/reference/types/dictionary/#remove-parameters-key"},{"kind":"类型","title":"Function","route":"/docs/reference/types/function/"},{"kind":"function 的方法","title":"With","route":"/docs/reference/types/function/#methods-with"},{"kind":"with 的参数","title":"Arguments","route":"/docs/reference/types/function/#with-parameters-arguments"},{"kind":"function 的方法","title":"Where","route":"/docs/reference/types/function/#methods-where"},{"kind":"where 的参数","title":"Fields","route":"/docs/reference/types/function/#where-parameters-fields"},{"kind":"类型","title":"Arguments","route":"/docs/reference/types/arguments/"},{"kind":"arguments 的方法","title":"Pos","route":"/docs/reference/types/arguments/#methods-pos"},{"kind":"arguments 的方法","title":"Named","route":"/docs/reference/types/arguments/#methods-named"},{"kind":"类型","title":"Selector","route":"/docs/reference/types/selector/"},{"kind":"selector 的方法","title":"Or","route":"/docs/reference/types/selector/#methods-or"},{"kind":"or 的参数","title":"Other","route":"/docs/reference/types/selector/#or-parameters-other"},{"kind":"selector 的方法","title":"And","route":"/docs/reference/types/selector/#methods-and"},{"kind":"and 的参数","title":"Other","route":"/docs/reference/types/selector/#and-parameters-other"},{"kind":"selector 的方法","title":"Before","route":"/docs/reference/types/selector/#methods-before"},{"kind":"before 的参数","title":"End","route":"/docs/reference/types/selector/#before-parameters-end"},{"kind":"before 的参数","title":"Inclusive","route":"/docs/reference/types/selector/#before-parameters-inclusive"},{"kind":"selector 的方法","title":"After","route":"/docs/reference/types/selector/#methods-after"},{"kind":"after 的参数","title":"Start","route":"/docs/reference/types/selector/#after-parameters-start"},{"kind":"after 的参数","title":"Inclusive","route":"/docs/reference/types/selector/#after-parameters-inclusive"},{"kind":"类型","title":"Module","route":"/docs/reference/types/module/"},{"kind":"类别","title":"Text","route":"/docs/reference/text/"},{"kind":"函数","title":"Blind Text","route":"/docs/reference/text/lorem/","keywords":"lorem"},{"kind":"lorem 的参数","title":"Words","route":"/docs/reference/text/lorem/#parameters-words"},{"kind":"函数","title":"Emphasis","route":"/docs/reference/text/emph/","keywords":"emph"},{"kind":"emph 的参数","title":"Body","route":"/docs/reference/text/emph/#parameters-body"},{"kind":"函数","title":"Line Break","route":"/docs/reference/text/linebreak/","keywords":"linebreak"},{"kind":"linebreak 的参数","title":"Justify","route":"/docs/reference/text/linebreak/#parameters-justify"},{"kind":"函数","title":"Lowercase","route":"/docs/reference/text/lower/","keywords":"lower"},{"kind":"lower 的参数","title":"Text","route":"/docs/reference/text/lower/#parameters-text"},{"kind":"函数","title":"Overline","route":"/docs/reference/text/overline/","keywords":"overline"},{"kind":"overline 的参数","title":"Stroke","route":"/docs/reference/text/overline/#parameters-stroke"},{"kind":"overline 的参数","title":"Offset","route":"/docs/reference/text/overline/#parameters-offset"},{"kind":"overline 的参数","title":"Extent","route":"/docs/reference/text/overline/#parameters-extent"},{"kind":"overline 的参数","title":"Evade","route":"/docs/reference/text/overline/#parameters-evade"},{"kind":"overline 的参数","title":"Body","route":"/docs/reference/text/overline/#parameters-body"},{"kind":"函数","title":"Raw Text / Code","route":"/docs/reference/text/raw/","keywords":"raw"},{"kind":"raw 的参数","title":"Text","route":"/docs/reference/text/raw/#parameters-text"},{"kind":"raw 的参数","title":"Block","route":"/docs/reference/text/raw/#parameters-block"},{"kind":"raw 的参数","title":"Lang","route":"/docs/reference/text/raw/#parameters-lang"},{"kind":"raw 的参数","title":"Align","route":"/docs/reference/text/raw/#parameters-align"},{"kind":"函数","title":"Small Capitals","route":"/docs/reference/text/smallcaps/","keywords":"smallcaps"},{"kind":"smallcaps 的参数","title":"Body","route":"/docs/reference/text/smallcaps/#parameters-body"},{"kind":"函数","title":"Smart Quote","route":"/docs/reference/text/smartquote/","keywords":"smartquote"},{"kind":"smartquote 的参数","title":"Double","route":"/docs/reference/text/smartquote/#parameters-double"},{"kind":"smartquote 的参数","title":"Enabled","route":"/docs/reference/text/smartquote/#parameters-enabled"},{"kind":"函数","title":"Strikethrough","route":"/docs/reference/text/strike/","keywords":"strike"},{"kind":"strike 的参数","title":"Stroke","route":"/docs/reference/text/strike/#parameters-stroke"},{"kind":"strike 的参数","title":"Offset","route":"/docs/reference/text/strike/#parameters-offset"},{"kind":"strike 的参数","title":"Extent","route":"/docs/reference/text/strike/#parameters-extent"},{"kind":"strike 的参数","title":"Body","route":"/docs/reference/text/strike/#parameters-body"},{"kind":"函数","title":"Strong Emphasis","route":"/docs/reference/text/strong/","keywords":"strong"},{"kind":"strong 的参数","title":"Delta","route":"/docs/reference/text/strong/#parameters-delta"},{"kind":"strong 的参数","title":"Body","route":"/docs/reference/text/strong/#parameters-body"},{"kind":"函数","title":"Subscript","route":"/docs/reference/text/sub/","keywords":"sub"},{"kind":"sub 的参数","title":"Typographic","route":"/docs/reference/text/sub/#parameters-typographic"},{"kind":"sub 的参数","title":"Baseline","route":"/docs/reference/text/sub/#parameters-baseline"},{"kind":"sub 的参数","title":"Size","route":"/docs/reference/text/sub/#parameters-size"},{"kind":"sub 的参数","title":"Body","route":"/docs/reference/text/sub/#parameters-body"},{"kind":"函数","title":"Superscript","route":"/docs/reference/text/super/","keywords":"super"},{"kind":"super 的参数","title":"Typographic","route":"/docs/reference/text/super/#parameters-typographic"},{"kind":"super 的参数","title":"Baseline","route":"/docs/reference/text/super/#parameters-baseline"},{"kind":"super 的参数","title":"Size","route":"/docs/reference/text/super/#parameters-size"},{"kind":"super 的参数","title":"Body","route":"/docs/reference/text/super/#parameters-body"},{"kind":"函数","title":"Text","route":"/docs/reference/text/text/","keywords":"text"},{"kind":"text 的参数","title":"Font","route":"/docs/reference/text/text/#parameters-font"},{"kind":"text 的参数","title":"Fallback","route":"/docs/reference/text/text/#parameters-fallback"},{"kind":"text 的参数","title":"Style","route":"/docs/reference/text/text/#parameters-style"},{"kind":"text 的参数","title":"Weight","route":"/docs/reference/text/text/#parameters-weight"},{"kind":"text 的参数","title":"Stretch","route":"/docs/reference/text/text/#parameters-stretch"},{"kind":"text 的参数","title":"Size","route":"/docs/reference/text/text/#parameters-size"},{"kind":"text 的参数","title":"Fill","route":"/docs/reference/text/text/#parameters-fill"},{"kind":"text 的参数","title":"Tracking","route":"/docs/reference/text/text/#parameters-tracking"},{"kind":"text 的参数","title":"Spacing","route":"/docs/reference/text/text/#parameters-spacing"},{"kind":"text 的参数","title":"Baseline","route":"/docs/reference/text/text/#parameters-baseline"},{"kind":"text 的参数","title":"Overhang","route":"/docs/reference/text/text/#parameters-overhang"},{"kind":"text 的参数","title":"Top Edge","route":"/docs/reference/text/text/#parameters-top-edge"},{"kind":"text 的参数","title":"Bottom Edge","route":"/docs/reference/text/text/#parameters-bottom-edge"},{"kind":"text 的参数","title":"Lang","route":"/docs/reference/text/text/#parameters-lang"},{"kind":"text 的参数","title":"Region","route":"/docs/reference/text/text/#parameters-region"},{"kind":"text 的参数","title":"Dir","route":"/docs/reference/text/text/#parameters-dir"},{"kind":"text 的参数","title":"Hyphenate","route":"/docs/reference/text/text/#parameters-hyphenate"},{"kind":"text 的参数","title":"Kerning","route":"/docs/reference/text/text/#parameters-kerning"},{"kind":"text 的参数","title":"Alternates","route":"/docs/reference/text/text/#parameters-alternates"},{"kind":"text 的参数","title":"Stylistic Set","route":"/docs/reference/text/text/#parameters-stylistic-set"},{"kind":"text 的参数","title":"Ligatures","route":"/docs/reference/text/text/#parameters-ligatures"},{"kind":"text 的参数","title":"Discretionary Ligatures","route":"/docs/reference/text/text/#parameters-discretionary-ligatures"},{"kind":"text 的参数","title":"Historical Ligatures","route":"/docs/reference/text/text/#parameters-historical-ligatures"},{"kind":"text 的参数","title":"Number Type","route":"/docs/reference/text/text/#parameters-number-type"},{"kind":"text 的参数","title":"Number Width","route":"/docs/reference/text/text/#parameters-number-width"},{"kind":"text 的参数","title":"Slashed Zero","route":"/docs/reference/text/text/#parameters-slashed-zero"},{"kind":"text 的参数","title":"Fractions","route":"/docs/reference/text/text/#parameters-fractions"},{"kind":"text 的参数","title":"Features","route":"/docs/reference/text/text/#parameters-features"},{"kind":"text 的参数","title":"Body","route":"/docs/reference/text/text/#parameters-body"},{"kind":"函数","title":"Underline","route":"/docs/reference/text/underline/","keywords":"underline"},{"kind":"underline 的参数","title":"Stroke","route":"/docs/reference/text/underline/#parameters-stroke"},{"kind":"underline 的参数","title":"Offset","route":"/docs/reference/text/underline/#parameters-offset"},{"kind":"underline 的参数","title":"Extent","route":"/docs/reference/text/underline/#parameters-extent"},{"kind":"underline 的参数","title":"Evade","route":"/docs/reference/text/underline/#parameters-evade"},{"kind":"underline 的参数","title":"Body","route":"/docs/reference/text/underline/#parameters-body"},{"kind":"函数","title":"Uppercase","route":"/docs/reference/text/upper/","keywords":"upper"},{"kind":"upper 的参数","title":"Text","route":"/docs/reference/text/upper/#parameters-text"},{"kind":"类别","title":"Math","route":"/docs/reference/math/"},{"kind":"函数","title":"Accent","route":"/docs/reference/math/accent/","keywords":"accent"},{"kind":"accent 的参数","title":"Base","route":"/docs/reference/math/accent/#parameters-base"},{"kind":"accent 的参数","title":"Accent","route":"/docs/reference/math/accent/#parameters-accent"},{"kind":"函数","title":"Attachment","route":"/docs/reference/math/attach/","keywords":"attach"},{"kind":"attach 的参数","title":"Base","route":"/docs/reference/math/attach/#parameters-base"},{"kind":"attach 的参数","title":"T","route":"/docs/reference/math/attach/#parameters-t"},{"kind":"attach 的参数","title":"B","route":"/docs/reference/math/attach/#parameters-b"},{"kind":"attach 的参数","title":"Tl","route":"/docs/reference/math/attach/#parameters-tl"},{"kind":"attach 的参数","title":"Bl","route":"/docs/reference/math/attach/#parameters-bl"},{"kind":"attach 的参数","title":"Tr","route":"/docs/reference/math/attach/#parameters-tr"},{"kind":"attach 的参数","title":"Br","route":"/docs/reference/math/attach/#parameters-br"},{"kind":"函数","title":"Scripts","route":"/docs/reference/math/attach/","keywords":"scripts"},{"kind":"scripts 的参数","title":"Body","route":"/docs/reference/math/attach/#parameters-body"},{"kind":"函数","title":"Limits","route":"/docs/reference/math/attach/","keywords":"limits"},{"kind":"limits 的参数","title":"Body","route":"/docs/reference/math/attach/#parameters-body"},{"kind":"函数","title":"Binomial","route":"/docs/reference/math/binom/","keywords":"binom"},{"kind":"binom 的参数","title":"Upper","route":"/docs/reference/math/binom/#parameters-upper"},{"kind":"binom 的参数","title":"Lower","route":"/docs/reference/math/binom/#parameters-lower"},{"kind":"函数","title":"Cancel","route":"/docs/reference/math/cancel/","keywords":"cancel"},{"kind":"cancel 的参数","title":"Body","route":"/docs/reference/math/cancel/#parameters-body"},{"kind":"cancel 的参数","title":"Length","route":"/docs/reference/math/cancel/#parameters-length"},{"kind":"cancel 的参数","title":"Inverted","route":"/docs/reference/math/cancel/#parameters-inverted"},{"kind":"cancel 的参数","title":"Cross","route":"/docs/reference/math/cancel/#parameters-cross"},{"kind":"cancel 的参数","title":"Rotation","route":"/docs/reference/math/cancel/#parameters-rotation"},{"kind":"cancel 的参数","title":"Stroke","route":"/docs/reference/math/cancel/#parameters-stroke"},{"kind":"函数","title":"Cases","route":"/docs/reference/math/cases/","keywords":"cases"},{"kind":"cases 的参数","title":"Delim","route":"/docs/reference/math/cases/#parameters-delim"},{"kind":"cases 的参数","title":"Children","route":"/docs/reference/math/cases/#parameters-children"},{"kind":"函数","title":"Equation","route":"/docs/reference/math/equation/","keywords":"equation"},{"kind":"equation 的参数","title":"Block","route":"/docs/reference/math/equation/#parameters-block"},{"kind":"equation 的参数","title":"Numbering","route":"/docs/reference/math/equation/#parameters-numbering"},{"kind":"equation 的参数","title":"Supplement","route":"/docs/reference/math/equation/#parameters-supplement"},{"kind":"equation 的参数","title":"Body","route":"/docs/reference/math/equation/#parameters-body"},{"kind":"函数","title":"Fraction","route":"/docs/reference/math/frac/","keywords":"frac"},{"kind":"frac 的参数","title":"Num","route":"/docs/reference/math/frac/#parameters-num"},{"kind":"frac 的参数","title":"Denom","route":"/docs/reference/math/frac/#parameters-denom"},{"kind":"函数","title":"Left/Right","route":"/docs/reference/math/lr/","keywords":"lr"},{"kind":"lr 的参数","title":"Size","route":"/docs/reference/math/lr/#parameters-size"},{"kind":"lr 的参数","title":"Body","route":"/docs/reference/math/lr/#parameters-body"},{"kind":"函数","title":"Abs","route":"/docs/reference/math/lr/","keywords":"abs"},{"kind":"abs 的参数","title":"Body","route":"/docs/reference/math/lr/#parameters-body"},{"kind":"函数","title":"Norm","route":"/docs/reference/math/lr/","keywords":"norm"},{"kind":"norm 的参数","title":"Body","route":"/docs/reference/math/lr/#parameters-body"},{"kind":"函数","title":"Floor","route":"/docs/reference/math/lr/","keywords":"floor"},{"kind":"floor 的参数","title":"Body","route":"/docs/reference/math/lr/#parameters-body"},{"kind":"函数","title":"Ceil","route":"/docs/reference/math/lr/","keywords":"ceil"},{"kind":"ceil 的参数","title":"Body","route":"/docs/reference/math/lr/#parameters-body"},{"kind":"函数","title":"Round","route":"/docs/reference/math/lr/","keywords":"round"},{"kind":"round 的参数","title":"Body","route":"/docs/reference/math/lr/#parameters-body"},{"kind":"函数","title":"Matrix","route":"/docs/reference/math/mat/","keywords":"mat"},{"kind":"mat 的参数","title":"Delim","route":"/docs/reference/math/mat/#parameters-delim"},{"kind":"mat 的参数","title":"Rows","route":"/docs/reference/math/mat/#parameters-rows"},{"kind":"函数","title":"Root","route":"/docs/reference/math/roots/","keywords":"root"},{"kind":"root 的参数","title":"Index","route":"/docs/reference/math/roots/#parameters-index"},{"kind":"root 的参数","title":"Radicand","route":"/docs/reference/math/roots/#parameters-radicand"},{"kind":"函数","title":"Square Root","route":"/docs/reference/math/roots/","keywords":"sqrt"},{"kind":"sqrt 的参数","title":"Radicand","route":"/docs/reference/math/roots/#parameters-radicand"},{"kind":"函数","title":"Display Size","route":"/docs/reference/math/sizes/","keywords":"display"},{"kind":"display 的参数","title":"Body","route":"/docs/reference/math/sizes/#parameters-body"},{"kind":"display 的参数","title":"Cramped","route":"/docs/reference/math/sizes/#parameters-cramped"},{"kind":"函数","title":"Inline Size","route":"/docs/reference/math/sizes/","keywords":"inline"},{"kind":"inline 的参数","title":"Body","route":"/docs/reference/math/sizes/#parameters-body"},{"kind":"inline 的参数","title":"Cramped","route":"/docs/reference/math/sizes/#parameters-cramped"},{"kind":"函数","title":"Script Size","route":"/docs/reference/math/sizes/","keywords":"script"},{"kind":"script 的参数","title":"Body","route":"/docs/reference/math/sizes/#parameters-body"},{"kind":"script 的参数","title":"Cramped","route":"/docs/reference/math/sizes/#parameters-cramped"},{"kind":"函数","title":"Script-Script Size","route":"/docs/reference/math/sizes/","keywords":"sscript"},{"kind":"sscript 的参数","title":"Body","route":"/docs/reference/math/sizes/#parameters-body"},{"kind":"sscript 的参数","title":"Cramped","route":"/docs/reference/math/sizes/#parameters-cramped"},{"kind":"函数","title":"Upright","route":"/docs/reference/math/styles/","keywords":"upright"},{"kind":"upright 的参数","title":"Body","route":"/docs/reference/math/styles/#parameters-body"},{"kind":"函数","title":"Italic","route":"/docs/reference/math/styles/","keywords":"italic"},{"kind":"italic 的参数","title":"Body","route":"/docs/reference/math/styles/#parameters-body"},{"kind":"函数","title":"Bold","route":"/docs/reference/math/styles/","keywords":"bold"},{"kind":"bold 的参数","title":"Body","route":"/docs/reference/math/styles/#parameters-body"},{"kind":"函数","title":"Text Operator","route":"/docs/reference/math/op/","keywords":"op"},{"kind":"op 的参数","title":"Text","route":"/docs/reference/math/op/#parameters-text"},{"kind":"op 的参数","title":"Limits","route":"/docs/reference/math/op/#parameters-limits"},{"kind":"函数","title":"Underline","route":"/docs/reference/math/underover/","keywords":"underline"},{"kind":"underline 的参数","title":"Body","route":"/docs/reference/math/underover/#parameters-body"},{"kind":"函数","title":"Overline","route":"/docs/reference/math/underover/","keywords":"overline"},{"kind":"overline 的参数","title":"Body","route":"/docs/reference/math/underover/#parameters-body"},{"kind":"函数","title":"Underbrace","route":"/docs/reference/math/underover/","keywords":"underbrace"},{"kind":"underbrace 的参数","title":"Body","route":"/docs/reference/math/underover/#parameters-body"},{"kind":"underbrace 的参数","title":"Annotation","route":"/docs/reference/math/underover/#parameters-annotation"},{"kind":"函数","title":"Overbrace","route":"/docs/reference/math/underover/","keywords":"overbrace"},{"kind":"overbrace 的参数","title":"Body","route":"/docs/reference/math/underover/#parameters-body"},{"kind":"overbrace 的参数","title":"Annotation","route":"/docs/reference/math/underover/#parameters-annotation"},{"kind":"函数","title":"Underbracket","route":"/docs/reference/math/underover/","keywords":"underbracket"},{"kind":"underbracket 的参数","title":"Body","route":"/docs/reference/math/underover/#parameters-body"},{"kind":"underbracket 的参数","title":"Annotation","route":"/docs/reference/math/underover/#parameters-annotation"},{"kind":"函数","title":"Overbracket","route":"/docs/reference/math/underover/","keywords":"overbracket"},{"kind":"overbracket 的参数","title":"Body","route":"/docs/reference/math/underover/#parameters-body"},{"kind":"overbracket 的参数","title":"Annotation","route":"/docs/reference/math/underover/#parameters-annotation"},{"kind":"函数","title":"Serif","route":"/docs/reference/math/variants/","keywords":"serif"},{"kind":"serif 的参数","title":"Body","route":"/docs/reference/math/variants/#parameters-body"},{"kind":"函数","title":"Sans-serif","route":"/docs/reference/math/variants/","keywords":"sans"},{"kind":"sans 的参数","title":"Body","route":"/docs/reference/math/variants/#parameters-body"},{"kind":"函数","title":"Fraktur","route":"/docs/reference/math/variants/","keywords":"frak"},{"kind":"frak 的参数","title":"Body","route":"/docs/reference/math/variants/#parameters-body"},{"kind":"函数","title":"Monospace","route":"/docs/reference/math/variants/","keywords":"mono"},{"kind":"mono 的参数","title":"Body","route":"/docs/reference/math/variants/#parameters-body"},{"kind":"函数","title":"Blackboard Bold","route":"/docs/reference/math/variants/","keywords":"bb"},{"kind":"bb 的参数","title":"Body","route":"/docs/reference/math/variants/#parameters-body"},{"kind":"函数","title":"Calligraphic","route":"/docs/reference/math/variants/","keywords":"cal"},{"kind":"cal 的参数","title":"Body","route":"/docs/reference/math/variants/#parameters-body"},{"kind":"函数","title":"Vector","route":"/docs/reference/math/vec/","keywords":"vec"},{"kind":"vec 的参数","title":"Delim","route":"/docs/reference/math/vec/#parameters-delim"},{"kind":"vec 的参数","title":"Children","route":"/docs/reference/math/vec/#parameters-children"},{"kind":"类别","title":"Layout","route":"/docs/reference/layout/"},{"kind":"函数","title":"Align","route":"/docs/reference/layout/align/","keywords":"align"},{"kind":"align 的参数","title":"Alignment","route":"/docs/reference/layout/align/#parameters-alignment"},{"kind":"align 的参数","title":"Body","route":"/docs/reference/layout/align/#parameters-body"},{"kind":"函数","title":"Block","route":"/docs/reference/layout/block/","keywords":"block"},{"kind":"block 的参数","title":"Width","route":"/docs/reference/layout/block/#parameters-width"},{"kind":"block 的参数","title":"Height","route":"/docs/reference/layout/block/#parameters-height"},{"kind":"block 的参数","title":"Breakable","route":"/docs/reference/layout/block/#parameters-breakable"},{"kind":"block 的参数","title":"Fill","route":"/docs/reference/layout/block/#parameters-fill"},{"kind":"block 的参数","title":"Stroke","route":"/docs/reference/layout/block/#parameters-stroke"},{"kind":"block 的参数","title":"Radius","route":"/docs/reference/layout/block/#parameters-radius"},{"kind":"block 的参数","title":"Inset","route":"/docs/reference/layout/block/#parameters-inset"},{"kind":"block 的参数","title":"Outset","route":"/docs/reference/layout/block/#parameters-outset"},{"kind":"block 的参数","title":"Spacing","route":"/docs/reference/layout/block/#parameters-spacing"},{"kind":"block 的参数","title":"Above","route":"/docs/reference/layout/block/#parameters-above"},{"kind":"block 的参数","title":"Below","route":"/docs/reference/layout/block/#parameters-below"},{"kind":"block 的参数","title":"Clip","route":"/docs/reference/layout/block/#parameters-clip"},{"kind":"block 的参数","title":"Body","route":"/docs/reference/layout/block/#parameters-body"},{"kind":"函数","title":"Box","route":"/docs/reference/layout/box/","keywords":"box"},{"kind":"box 的参数","title":"Width","route":"/docs/reference/layout/box/#parameters-width"},{"kind":"box 的参数","title":"Height","route":"/docs/reference/layout/box/#parameters-height"},{"kind":"box 的参数","title":"Baseline","route":"/docs/reference/layout/box/#parameters-baseline"},{"kind":"box 的参数","title":"Fill","route":"/docs/reference/layout/box/#parameters-fill"},{"kind":"box 的参数","title":"Stroke","route":"/docs/reference/layout/box/#parameters-stroke"},{"kind":"box 的参数","title":"Radius","route":"/docs/reference/layout/box/#parameters-radius"},{"kind":"box 的参数","title":"Inset","route":"/docs/reference/layout/box/#parameters-inset"},{"kind":"box 的参数","title":"Outset","route":"/docs/reference/layout/box/#parameters-outset"},{"kind":"box 的参数","title":"Clip","route":"/docs/reference/layout/box/#parameters-clip"},{"kind":"box 的参数","title":"Body","route":"/docs/reference/layout/box/#parameters-body"},{"kind":"函数","title":"Bullet List","route":"/docs/reference/layout/list/","keywords":"list"},{"kind":"list 的参数","title":"Tight","route":"/docs/reference/layout/list/#parameters-tight"},{"kind":"list 的参数","title":"Marker","route":"/docs/reference/layout/list/#parameters-marker"},{"kind":"list 的参数","title":"Indent","route":"/docs/reference/layout/list/#parameters-indent"},{"kind":"list 的参数","title":"Body Indent","route":"/docs/reference/layout/list/#parameters-body-indent"},{"kind":"list 的参数","title":"Spacing","route":"/docs/reference/layout/list/#parameters-spacing"},{"kind":"list 的参数","title":"Children","route":"/docs/reference/layout/list/#parameters-children"},{"kind":"函数","title":"Bullet List Item","route":"/docs/reference/layout/list/#list-item","keywords":"listitem"},{"kind":"Parameter of list-item","title":"Body","route":"/docs/reference/layout/list/#list-item#parameters-body"},{"kind":"函数","title":"Column Break","route":"/docs/reference/layout/colbreak/","keywords":"colbreak"},{"kind":"colbreak 的参数","title":"Weak","route":"/docs/reference/layout/colbreak/#parameters-weak"},{"kind":"函数","title":"Columns","route":"/docs/reference/layout/columns/","keywords":"columns"},{"kind":"columns 的参数","title":"Count","route":"/docs/reference/layout/columns/#parameters-count"},{"kind":"columns 的参数","title":"Gutter","route":"/docs/reference/layout/columns/#parameters-gutter"},{"kind":"columns 的参数","title":"Body","route":"/docs/reference/layout/columns/#parameters-body"},{"kind":"函数","title":"Grid","route":"/docs/reference/layout/grid/","keywords":"grid"},{"kind":"grid 的参数","title":"Columns","route":"/docs/reference/layout/grid/#parameters-columns"},{"kind":"grid 的参数","title":"Rows","route":"/docs/reference/layout/grid/#parameters-rows"},{"kind":"grid 的参数","title":"Gutter","route":"/docs/reference/layout/grid/#parameters-gutter"},{"kind":"grid 的参数","title":"Column Gutter","route":"/docs/reference/layout/grid/#parameters-column-gutter"},{"kind":"grid 的参数","title":"Row Gutter","route":"/docs/reference/layout/grid/#parameters-row-gutter"},{"kind":"grid 的参数","title":"Children","route":"/docs/reference/layout/grid/#parameters-children"},{"kind":"函数","title":"Hide","route":"/docs/reference/layout/hide/","keywords":"hide"},{"kind":"hide 的参数","title":"Body","route":"/docs/reference/layout/hide/#parameters-body"},{"kind":"函数","title":"Measure","route":"/docs/reference/layout/measure/","keywords":"measure"},{"kind":"measure 的参数","title":"Content","route":"/docs/reference/layout/measure/#parameters-content"},{"kind":"measure 的参数","title":"Styles","route":"/docs/reference/layout/measure/#parameters-styles"},{"kind":"函数","title":"Move","route":"/docs/reference/layout/move/","keywords":"move"},{"kind":"move 的参数","title":"Dx","route":"/docs/reference/layout/move/#parameters-dx"},{"kind":"move 的参数","title":"Dy","route":"/docs/reference/layout/move/#parameters-dy"},{"kind":"move 的参数","title":"Body","route":"/docs/reference/layout/move/#parameters-body"},{"kind":"函数","title":"Numbered List","route":"/docs/reference/layout/enum/","keywords":"enum"},{"kind":"enum 的参数","title":"Tight","route":"/docs/reference/layout/enum/#parameters-tight"},{"kind":"enum 的参数","title":"Numbering","route":"/docs/reference/layout/enum/#parameters-numbering"},{"kind":"enum 的参数","title":"Start","route":"/docs/reference/layout/enum/#parameters-start"},{"kind":"enum 的参数","title":"Full","route":"/docs/reference/layout/enum/#parameters-full"},{"kind":"enum 的参数","title":"Indent","route":"/docs/reference/layout/enum/#parameters-indent"},{"kind":"enum 的参数","title":"Body Indent","route":"/docs/reference/layout/enum/#parameters-body-indent"},{"kind":"enum 的参数","title":"Spacing","route":"/docs/reference/layout/enum/#parameters-spacing"},{"kind":"enum 的参数","title":"Number Align","route":"/docs/reference/layout/enum/#parameters-number-align"},{"kind":"enum 的参数","title":"Children","route":"/docs/reference/layout/enum/#parameters-children"},{"kind":"函数","title":"Numbered List Item","route":"/docs/reference/layout/enum/#enum-item","keywords":"enumitem"},{"kind":"Parameter of enum-item","title":"Number","route":"/docs/reference/layout/enum/#enum-item#parameters-number"},{"kind":"Parameter of enum-item","title":"Body","route":"/docs/reference/layout/enum/#enum-item#parameters-body"},{"kind":"函数","title":"Padding","route":"/docs/reference/layout/pad/","keywords":"pad"},{"kind":"pad 的参数","title":"Left","route":"/docs/reference/layout/pad/#parameters-left"},{"kind":"pad 的参数","title":"Top","route":"/docs/reference/layout/pad/#parameters-top"},{"kind":"pad 的参数","title":"Right","route":"/docs/reference/layout/pad/#parameters-right"},{"kind":"pad 的参数","title":"Bottom","route":"/docs/reference/layout/pad/#parameters-bottom"},{"kind":"pad 的参数","title":"X","route":"/docs/reference/layout/pad/#parameters-x"},{"kind":"pad 的参数","title":"Y","route":"/docs/reference/layout/pad/#parameters-y"},{"kind":"pad 的参数","title":"Rest","route":"/docs/reference/layout/pad/#parameters-rest"},{"kind":"pad 的参数","title":"Body","route":"/docs/reference/layout/pad/#parameters-body"},{"kind":"函数","title":"Page","route":"/docs/reference/layout/page/","keywords":"page"},{"kind":"page 的参数","title":"Paper","route":"/docs/reference/layout/page/#parameters-paper"},{"kind":"page 的参数","title":"Width","route":"/docs/reference/layout/page/#parameters-width"},{"kind":"page 的参数","title":"Height","route":"/docs/reference/layout/page/#parameters-height"},{"kind":"page 的参数","title":"Flipped","route":"/docs/reference/layout/page/#parameters-flipped"},{"kind":"page 的参数","title":"Margin","route":"/docs/reference/layout/page/#parameters-margin"},{"kind":"page 的参数","title":"Columns","route":"/docs/reference/layout/page/#parameters-columns"},{"kind":"page 的参数","title":"Fill","route":"/docs/reference/layout/page/#parameters-fill"},{"kind":"page 的参数","title":"Numbering","route":"/docs/reference/layout/page/#parameters-numbering"},{"kind":"page 的参数","title":"Number Align","route":"/docs/reference/layout/page/#parameters-number-align"},{"kind":"page 的参数","title":"Header","route":"/docs/reference/layout/page/#parameters-header"},{"kind":"page 的参数","title":"Header Ascent","route":"/docs/reference/layout/page/#parameters-header-ascent"},{"kind":"page 的参数","title":"Footer","route":"/docs/reference/layout/page/#parameters-footer"},{"kind":"page 的参数","title":"Footer Descent","route":"/docs/reference/layout/page/#parameters-footer-descent"},{"kind":"page 的参数","title":"Background","route":"/docs/reference/layout/page/#parameters-background"},{"kind":"page 的参数","title":"Foreground","route":"/docs/reference/layout/page/#parameters-foreground"},{"kind":"page 的参数","title":"Body","route":"/docs/reference/layout/page/#parameters-body"},{"kind":"函数","title":"Page Break","route":"/docs/reference/layout/pagebreak/","keywords":"pagebreak"},{"kind":"pagebreak 的参数","title":"Weak","route":"/docs/reference/layout/pagebreak/#parameters-weak"},{"kind":"函数","title":"Paragraph","route":"/docs/reference/layout/par/","keywords":"par"},{"kind":"par 的参数","title":"Leading","route":"/docs/reference/layout/par/#parameters-leading"},{"kind":"par 的参数","title":"Justify","route":"/docs/reference/layout/par/#parameters-justify"},{"kind":"par 的参数","title":"Linebreaks","route":"/docs/reference/layout/par/#parameters-linebreaks"},{"kind":"par 的参数","title":"First Line Indent","route":"/docs/reference/layout/par/#parameters-first-line-indent"},{"kind":"par 的参数","title":"Hanging Indent","route":"/docs/reference/layout/par/#parameters-hanging-indent"},{"kind":"par 的参数","title":"Body","route":"/docs/reference/layout/par/#parameters-body"},{"kind":"函数","title":"Paragraph Break","route":"/docs/reference/layout/parbreak/","keywords":"parbreak"},{"kind":"函数","title":"Place","route":"/docs/reference/layout/place/","keywords":"place"},{"kind":"place 的参数","title":"Alignment","route":"/docs/reference/layout/place/#parameters-alignment"},{"kind":"place 的参数","title":"Dx","route":"/docs/reference/layout/place/#parameters-dx"},{"kind":"place 的参数","title":"Dy","route":"/docs/reference/layout/place/#parameters-dy"},{"kind":"place 的参数","title":"Body","route":"/docs/reference/layout/place/#parameters-body"},{"kind":"函数","title":"Repeat","route":"/docs/reference/layout/repeat/","keywords":"repeat"},{"kind":"repeat 的参数","title":"Body","route":"/docs/reference/layout/repeat/#parameters-body"},{"kind":"函数","title":"Rotate","route":"/docs/reference/layout/rotate/","keywords":"rotate"},{"kind":"rotate 的参数","title":"Angle","route":"/docs/reference/layout/rotate/#parameters-angle"},{"kind":"rotate 的参数","title":"Origin","route":"/docs/reference/layout/rotate/#parameters-origin"},{"kind":"rotate 的参数","title":"Body","route":"/docs/reference/layout/rotate/#parameters-body"},{"kind":"函数","title":"Scale","route":"/docs/reference/layout/scale/","keywords":"scale"},{"kind":"scale 的参数","title":"X","route":"/docs/reference/layout/scale/#parameters-x"},{"kind":"scale 的参数","title":"Y","route":"/docs/reference/layout/scale/#parameters-y"},{"kind":"scale 的参数","title":"Origin","route":"/docs/reference/layout/scale/#parameters-origin"},{"kind":"scale 的参数","title":"Body","route":"/docs/reference/layout/scale/#parameters-body"},{"kind":"函数","title":"Spacing (H)","route":"/docs/reference/layout/h/","keywords":"h"},{"kind":"h 的参数","title":"Amount","route":"/docs/reference/layout/h/#parameters-amount"},{"kind":"h 的参数","title":"Weak","route":"/docs/reference/layout/h/#parameters-weak"},{"kind":"函数","title":"Spacing (V)","route":"/docs/reference/layout/v/","keywords":"v"},{"kind":"v 的参数","title":"Amount","route":"/docs/reference/layout/v/#parameters-amount"},{"kind":"v 的参数","title":"Weak","route":"/docs/reference/layout/v/#parameters-weak"},{"kind":"函数","title":"Stack","route":"/docs/reference/layout/stack/","keywords":"stack"},{"kind":"stack 的参数","title":"Dir","route":"/docs/reference/layout/stack/#parameters-dir"},{"kind":"stack 的参数","title":"Spacing","route":"/docs/reference/layout/stack/#parameters-spacing"},{"kind":"stack 的参数","title":"Children","route":"/docs/reference/layout/stack/#parameters-children"},{"kind":"函数","title":"Table","route":"/docs/reference/layout/table/","keywords":"table"},{"kind":"table 的参数","title":"Columns","route":"/docs/reference/layout/table/#parameters-columns"},{"kind":"table 的参数","title":"Rows","route":"/docs/reference/layout/table/#parameters-rows"},{"kind":"table 的参数","title":"Gutter","route":"/docs/reference/layout/table/#parameters-gutter"},{"kind":"table 的参数","title":"Column Gutter","route":"/docs/reference/layout/table/#parameters-column-gutter"},{"kind":"table 的参数","title":"Row Gutter","route":"/docs/reference/layout/table/#parameters-row-gutter"},{"kind":"table 的参数","title":"Fill","route":"/docs/reference/layout/table/#parameters-fill"},{"kind":"table 的参数","title":"Align","route":"/docs/reference/layout/table/#parameters-align"},{"kind":"table 的参数","title":"Stroke","route":"/docs/reference/layout/table/#parameters-stroke"},{"kind":"table 的参数","title":"Inset","route":"/docs/reference/layout/table/#parameters-inset"},{"kind":"table 的参数","title":"Children","route":"/docs/reference/layout/table/#parameters-children"},{"kind":"函数","title":"Term List","route":"/docs/reference/layout/terms/","keywords":"terms"},{"kind":"terms 的参数","title":"Tight","route":"/docs/reference/layout/terms/#parameters-tight"},{"kind":"terms 的参数","title":"Separator","route":"/docs/reference/layout/terms/#parameters-separator"},{"kind":"terms 的参数","title":"Indent","route":"/docs/reference/layout/terms/#parameters-indent"},{"kind":"terms 的参数","title":"Hanging Indent","route":"/docs/reference/layout/terms/#parameters-hanging-indent"},{"kind":"terms 的参数","title":"Spacing","route":"/docs/reference/layout/terms/#parameters-spacing"},{"kind":"terms 的参数","title":"Children","route":"/docs/reference/layout/terms/#parameters-children"},{"kind":"函数","title":"Term List Item","route":"/docs/reference/layout/terms/#terms-item","keywords":"termsitem"},{"kind":"Parameter of terms-item","title":"Term","route":"/docs/reference/layout/terms/#terms-item#parameters-term"},{"kind":"Parameter of terms-item","title":"Description","route":"/docs/reference/layout/terms/#terms-item#parameters-description"},{"kind":"类别","title":"Visualize","route":"/docs/reference/visualize/"},{"kind":"函数","title":"Circle","route":"/docs/reference/visualize/circle/","keywords":"circle"},{"kind":"circle 的参数","title":"Radius","route":"/docs/reference/visualize/circle/#parameters-radius"},{"kind":"circle 的参数","title":"Width","route":"/docs/reference/visualize/circle/#parameters-width"},{"kind":"circle 的参数","title":"Height","route":"/docs/reference/visualize/circle/#parameters-height"},{"kind":"circle 的参数","title":"Fill","route":"/docs/reference/visualize/circle/#parameters-fill"},{"kind":"circle 的参数","title":"Stroke","route":"/docs/reference/visualize/circle/#parameters-stroke"},{"kind":"circle 的参数","title":"Inset","route":"/docs/reference/visualize/circle/#parameters-inset"},{"kind":"circle 的参数","title":"Outset","route":"/docs/reference/visualize/circle/#parameters-outset"},{"kind":"circle 的参数","title":"Body","route":"/docs/reference/visualize/circle/#parameters-body"},{"kind":"函数","title":"Ellipse","route":"/docs/reference/visualize/ellipse/","keywords":"ellipse"},{"kind":"ellipse 的参数","title":"Width","route":"/docs/reference/visualize/ellipse/#parameters-width"},{"kind":"ellipse 的参数","title":"Height","route":"/docs/reference/visualize/ellipse/#parameters-height"},{"kind":"ellipse 的参数","title":"Fill","route":"/docs/reference/visualize/ellipse/#parameters-fill"},{"kind":"ellipse 的参数","title":"Stroke","route":"/docs/reference/visualize/ellipse/#parameters-stroke"},{"kind":"ellipse 的参数","title":"Inset","route":"/docs/reference/visualize/ellipse/#parameters-inset"},{"kind":"ellipse 的参数","title":"Outset","route":"/docs/reference/visualize/ellipse/#parameters-outset"},{"kind":"ellipse 的参数","title":"Body","route":"/docs/reference/visualize/ellipse/#parameters-body"},{"kind":"函数","title":"Image","route":"/docs/reference/visualize/image/","keywords":"image"},{"kind":"image 的参数","title":"Path","route":"/docs/reference/visualize/image/#parameters-path"},{"kind":"image 的参数","title":"Width","route":"/docs/reference/visualize/image/#parameters-width"},{"kind":"image 的参数","title":"Height","route":"/docs/reference/visualize/image/#parameters-height"},{"kind":"image 的参数","title":"Alt","route":"/docs/reference/visualize/image/#parameters-alt"},{"kind":"image 的参数","title":"Fit","route":"/docs/reference/visualize/image/#parameters-fit"},{"kind":"函数","title":"Line","route":"/docs/reference/visualize/line/","keywords":"line"},{"kind":"line 的参数","title":"Start","route":"/docs/reference/visualize/line/#parameters-start"},{"kind":"line 的参数","title":"End","route":"/docs/reference/visualize/line/#parameters-end"},{"kind":"line 的参数","title":"Length","route":"/docs/reference/visualize/line/#parameters-length"},{"kind":"line 的参数","title":"Angle","route":"/docs/reference/visualize/line/#parameters-angle"},{"kind":"line 的参数","title":"Stroke","route":"/docs/reference/visualize/line/#parameters-stroke"},{"kind":"函数","title":"Path","route":"/docs/reference/visualize/path/","keywords":"path"},{"kind":"path 的参数","title":"Fill","route":"/docs/reference/visualize/path/#parameters-fill"},{"kind":"path 的参数","title":"Stroke","route":"/docs/reference/visualize/path/#parameters-stroke"},{"kind":"path 的参数","title":"Closed","route":"/docs/reference/visualize/path/#parameters-closed"},{"kind":"path 的参数","title":"Vertices","route":"/docs/reference/visualize/path/#parameters-vertices"},{"kind":"函数","title":"Polygon","route":"/docs/reference/visualize/polygon/","keywords":"polygon"},{"kind":"polygon 的参数","title":"Fill","route":"/docs/reference/visualize/polygon/#parameters-fill"},{"kind":"polygon 的参数","title":"Stroke","route":"/docs/reference/visualize/polygon/#parameters-stroke"},{"kind":"polygon 的参数","title":"Vertices","route":"/docs/reference/visualize/polygon/#parameters-vertices"},{"kind":"函数","title":"Rectangle","route":"/docs/reference/visualize/rect/","keywords":"rect"},{"kind":"rect 的参数","title":"Width","route":"/docs/reference/visualize/rect/#parameters-width"},{"kind":"rect 的参数","title":"Height","route":"/docs/reference/visualize/rect/#parameters-height"},{"kind":"rect 的参数","title":"Fill","route":"/docs/reference/visualize/rect/#parameters-fill"},{"kind":"rect 的参数","title":"Stroke","route":"/docs/reference/visualize/rect/#parameters-stroke"},{"kind":"rect 的参数","title":"Radius","route":"/docs/reference/visualize/rect/#parameters-radius"},{"kind":"rect 的参数","title":"Inset","route":"/docs/reference/visualize/rect/#parameters-inset"},{"kind":"rect 的参数","title":"Outset","route":"/docs/reference/visualize/rect/#parameters-outset"},{"kind":"rect 的参数","title":"Body","route":"/docs/reference/visualize/rect/#parameters-body"},{"kind":"函数","title":"Square","route":"/docs/reference/visualize/square/","keywords":"square"},{"kind":"square 的参数","title":"Size","route":"/docs/reference/visualize/square/#parameters-size"},{"kind":"square 的参数","title":"Width","route":"/docs/reference/visualize/square/#parameters-width"},{"kind":"square 的参数","title":"Height","route":"/docs/reference/visualize/square/#parameters-height"},{"kind":"square 的参数","title":"Fill","route":"/docs/reference/visualize/square/#parameters-fill"},{"kind":"square 的参数","title":"Stroke","route":"/docs/reference/visualize/square/#parameters-stroke"},{"kind":"square 的参数","title":"Radius","route":"/docs/reference/visualize/square/#parameters-radius"},{"kind":"square 的参数","title":"Inset","route":"/docs/reference/visualize/square/#parameters-inset"},{"kind":"square 的参数","title":"Outset","route":"/docs/reference/visualize/square/#parameters-outset"},{"kind":"square 的参数","title":"Body","route":"/docs/reference/visualize/square/#parameters-body"},{"kind":"类别","title":"Meta","route":"/docs/reference/meta/"},{"kind":"函数","title":"Bibliography","route":"/docs/reference/meta/bibliography/","keywords":"bibliography"},{"kind":"bibliography 的参数","title":"Path","route":"/docs/reference/meta/bibliography/#parameters-path"},{"kind":"bibliography 的参数","title":"Title","route":"/docs/reference/meta/bibliography/#parameters-title"},{"kind":"bibliography 的参数","title":"Style","route":"/docs/reference/meta/bibliography/#parameters-style"},{"kind":"函数","title":"Citation","route":"/docs/reference/meta/cite/","keywords":"cite"},{"kind":"cite 的参数","title":"Keys","route":"/docs/reference/meta/cite/#parameters-keys"},{"kind":"cite 的参数","title":"Supplement","route":"/docs/reference/meta/cite/#parameters-supplement"},{"kind":"cite 的参数","title":"Brackets","route":"/docs/reference/meta/cite/#parameters-brackets"},{"kind":"cite 的参数","title":"Style","route":"/docs/reference/meta/cite/#parameters-style"},{"kind":"函数","title":"Counter","route":"/docs/reference/meta/counter/","keywords":"counter"},{"kind":"counter 的参数","title":"Key","route":"/docs/reference/meta/counter/#parameters-key"},{"kind":"函数","title":"Document","route":"/docs/reference/meta/document/","keywords":"document"},{"kind":"document 的参数","title":"Title","route":"/docs/reference/meta/document/#parameters-title"},{"kind":"document 的参数","title":"Author","route":"/docs/reference/meta/document/#parameters-author"},{"kind":"函数","title":"Figure","route":"/docs/reference/meta/figure/","keywords":"figure"},{"kind":"figure 的参数","title":"Body","route":"/docs/reference/meta/figure/#parameters-body"},{"kind":"figure 的参数","title":"Caption","route":"/docs/reference/meta/figure/#parameters-caption"},{"kind":"figure 的参数","title":"Kind","route":"/docs/reference/meta/figure/#parameters-kind"},{"kind":"figure 的参数","title":"Supplement","route":"/docs/reference/meta/figure/#parameters-supplement"},{"kind":"figure 的参数","title":"Numbering","route":"/docs/reference/meta/figure/#parameters-numbering"},{"kind":"figure 的参数","title":"Gap","route":"/docs/reference/meta/figure/#parameters-gap"},{"kind":"figure 的参数","title":"Outlined","route":"/docs/reference/meta/figure/#parameters-outlined"},{"kind":"函数","title":"Footnote","route":"/docs/reference/meta/footnote/","keywords":"footnote"},{"kind":"footnote 的参数","title":"Numbering","route":"/docs/reference/meta/footnote/#parameters-numbering"},{"kind":"footnote 的参数","title":"Body","route":"/docs/reference/meta/footnote/#parameters-body"},{"kind":"函数","title":"Footnote Entry","route":"/docs/reference/meta/footnote/#footnote-entry","keywords":"footnoteentry"},{"kind":"Parameter of footnote-entry","title":"Note","route":"/docs/reference/meta/footnote/#footnote-entry#parameters-note"},{"kind":"Parameter of footnote-entry","title":"Separator","route":"/docs/reference/meta/footnote/#footnote-entry#parameters-separator"},{"kind":"Parameter of footnote-entry","title":"Clearance","route":"/docs/reference/meta/footnote/#footnote-entry#parameters-clearance"},{"kind":"Parameter of footnote-entry","title":"Gap","route":"/docs/reference/meta/footnote/#footnote-entry#parameters-gap"},{"kind":"Parameter of footnote-entry","title":"Indent","route":"/docs/reference/meta/footnote/#footnote-entry#parameters-indent"},{"kind":"函数","title":"Heading","route":"/docs/reference/meta/heading/","keywords":"heading"},{"kind":"heading 的参数","title":"Level","route":"/docs/reference/meta/heading/#parameters-level"},{"kind":"heading 的参数","title":"Numbering","route":"/docs/reference/meta/heading/#parameters-numbering"},{"kind":"heading 的参数","title":"Supplement","route":"/docs/reference/meta/heading/#parameters-supplement"},{"kind":"heading 的参数","title":"Outlined","route":"/docs/reference/meta/heading/#parameters-outlined"},{"kind":"heading 的参数","title":"Body","route":"/docs/reference/meta/heading/#parameters-body"},{"kind":"函数","title":"Layout","route":"/docs/reference/meta/layout/","keywords":"layout"},{"kind":"layout 的参数","title":"Func","route":"/docs/reference/meta/layout/#parameters-func"},{"kind":"函数","title":"Link","route":"/docs/reference/meta/link/","keywords":"link"},{"kind":"link 的参数","title":"Dest","route":"/docs/reference/meta/link/#parameters-dest"},{"kind":"link 的参数","title":"Body","route":"/docs/reference/meta/link/#parameters-body"},{"kind":"函数","title":"Locate","route":"/docs/reference/meta/locate/","keywords":"locate"},{"kind":"locate 的参数","title":"Func","route":"/docs/reference/meta/locate/#parameters-func"},{"kind":"函数","title":"Numbering","route":"/docs/reference/meta/numbering/","keywords":"numbering"},{"kind":"numbering 的参数","title":"Numbering","route":"/docs/reference/meta/numbering/#parameters-numbering"},{"kind":"numbering 的参数","title":"Numbers","route":"/docs/reference/meta/numbering/#parameters-numbers"},{"kind":"函数","title":"Outline","route":"/docs/reference/meta/outline/","keywords":"outlineTable of Contents"},{"kind":"outline 的参数","title":"Title","route":"/docs/reference/meta/outline/#parameters-title"},{"kind":"outline 的参数","title":"Target","route":"/docs/reference/meta/outline/#parameters-target"},{"kind":"outline 的参数","title":"Depth","route":"/docs/reference/meta/outline/#parameters-depth"},{"kind":"outline 的参数","title":"Indent","route":"/docs/reference/meta/outline/#parameters-indent"},{"kind":"outline 的参数","title":"Fill","route":"/docs/reference/meta/outline/#parameters-fill"},{"kind":"函数","title":"Query","route":"/docs/reference/meta/query/","keywords":"query"},{"kind":"query 的参数","title":"Target","route":"/docs/reference/meta/query/#parameters-target"},{"kind":"query 的参数","title":"Location","route":"/docs/reference/meta/query/#parameters-location"},{"kind":"函数","title":"Reference","route":"/docs/reference/meta/ref/","keywords":"ref"},{"kind":"ref 的参数","title":"Target","route":"/docs/reference/meta/ref/#parameters-target"},{"kind":"ref 的参数","title":"Supplement","route":"/docs/reference/meta/ref/#parameters-supplement"},{"kind":"函数","title":"Selector","route":"/docs/reference/meta/selector/","keywords":"selector"},{"kind":"selector 的参数","title":"Target","route":"/docs/reference/meta/selector/#parameters-target"},{"kind":"函数","title":"State","route":"/docs/reference/meta/state/","keywords":"state"},{"kind":"state 的参数","title":"Key","route":"/docs/reference/meta/state/#parameters-key"},{"kind":"state 的参数","title":"Init","route":"/docs/reference/meta/state/#parameters-init"},{"kind":"函数","title":"Style","route":"/docs/reference/meta/style/","keywords":"style"},{"kind":"style 的参数","title":"Func","route":"/docs/reference/meta/style/#parameters-func"},{"kind":"类别","title":"Symbols","route":"/docs/reference/symbols/"},{"kind":"Symbols","title":"General","route":"/docs/reference/symbols/sym/"},{"kind":"Symbols","title":"Emoji","route":"/docs/reference/symbols/emoji/"},{"kind":"类别","title":"Foundations","route":"/docs/reference/foundations/"},{"kind":"函数","title":"Assert","route":"/docs/reference/foundations/assert/","keywords":"assert"},{"kind":"assert 的参数","title":"Condition","route":"/docs/reference/foundations/assert/#parameters-condition"},{"kind":"assert 的参数","title":"Message","route":"/docs/reference/foundations/assert/#parameters-message"},{"kind":"函数","title":"Assert Equals","route":"/docs/reference/foundations/assert/#assert-eq","keywords":"asserteq"},{"kind":"Parameter of assert-eq","title":"Left","route":"/docs/reference/foundations/assert/#assert-eq#parameters-left"},{"kind":"Parameter of assert-eq","title":"Right","route":"/docs/reference/foundations/assert/#assert-eq#parameters-right"},{"kind":"Parameter of assert-eq","title":"Message","route":"/docs/reference/foundations/assert/#assert-eq#parameters-message"},{"kind":"函数","title":"Assert Not Equals","route":"/docs/reference/foundations/assert/#assert-ne","keywords":"assertne"},{"kind":"Parameter of assert-ne","title":"Left","route":"/docs/reference/foundations/assert/#assert-ne#parameters-left"},{"kind":"Parameter of assert-ne","title":"Right","route":"/docs/reference/foundations/assert/#assert-ne#parameters-right"},{"kind":"Parameter of assert-ne","title":"Message","route":"/docs/reference/foundations/assert/#assert-ne#parameters-message"},{"kind":"函数","title":"Evaluate","route":"/docs/reference/foundations/eval/","keywords":"eval"},{"kind":"eval 的参数","title":"Source","route":"/docs/reference/foundations/eval/#parameters-source"},{"kind":"函数","title":"Panic","route":"/docs/reference/foundations/panic/","keywords":"panic"},{"kind":"panic 的参数","title":"Values","route":"/docs/reference/foundations/panic/#parameters-values"},{"kind":"函数","title":"Representation","route":"/docs/reference/foundations/repr/","keywords":"repr"},{"kind":"repr 的参数","title":"Value","route":"/docs/reference/foundations/repr/#parameters-value"},{"kind":"函数","title":"Type","route":"/docs/reference/foundations/type/","keywords":"type"},{"kind":"type 的参数","title":"Value","route":"/docs/reference/foundations/type/#parameters-value"},{"kind":"类别","title":"Calculate","route":"/docs/reference/calculate/"},{"kind":"函数","title":"Absolute","route":"/docs/reference/calculate/abs/","keywords":"calcabs"},{"kind":"Parameter of calc-abs","title":"Value","route":"/docs/reference/calculate/abs/#parameters-value"},{"kind":"函数","title":"Arccosine","route":"/docs/reference/calculate/acos/","keywords":"calcacos"},{"kind":"Parameter of calc-acos","title":"Value","route":"/docs/reference/calculate/acos/#parameters-value"},{"kind":"函数","title":"Arcsine","route":"/docs/reference/calculate/asin/","keywords":"calcasin"},{"kind":"Parameter of calc-asin","title":"Value","route":"/docs/reference/calculate/asin/#parameters-value"},{"kind":"函数","title":"Arctangent","route":"/docs/reference/calculate/atan/","keywords":"calcatan"},{"kind":"Parameter of calc-atan","title":"Value","route":"/docs/reference/calculate/atan/#parameters-value"},{"kind":"函数","title":"Binomial","route":"/docs/reference/calculate/binom/","keywords":"calcbinom"},{"kind":"Parameter of calc-binom","title":"N","route":"/docs/reference/calculate/binom/#parameters-n"},{"kind":"Parameter of calc-binom","title":"K","route":"/docs/reference/calculate/binom/#parameters-k"},{"kind":"函数","title":"Clamp","route":"/docs/reference/calculate/clamp/","keywords":"calcclamp"},{"kind":"Parameter of calc-clamp","title":"Value","route":"/docs/reference/calculate/clamp/#parameters-value"},{"kind":"Parameter of calc-clamp","title":"Min","route":"/docs/reference/calculate/clamp/#parameters-min"},{"kind":"Parameter of calc-clamp","title":"Max","route":"/docs/reference/calculate/clamp/#parameters-max"},{"kind":"函数","title":"Cosine","route":"/docs/reference/calculate/cos/","keywords":"calccos"},{"kind":"Parameter of calc-cos","title":"Angle","route":"/docs/reference/calculate/cos/#parameters-angle"},{"kind":"函数","title":"Even","route":"/docs/reference/calculate/even/","keywords":"calceven"},{"kind":"Parameter of calc-even","title":"Value","route":"/docs/reference/calculate/even/#parameters-value"},{"kind":"函数","title":"Exponential","route":"/docs/reference/calculate/exp/","keywords":"calcexp"},{"kind":"Parameter of calc-exp","title":"Exponent","route":"/docs/reference/calculate/exp/#parameters-exponent"},{"kind":"函数","title":"Factorial","route":"/docs/reference/calculate/fact/","keywords":"calcfact"},{"kind":"Parameter of calc-fact","title":"Number","route":"/docs/reference/calculate/fact/#parameters-number"},{"kind":"函数","title":"Four-quadrant Arctangent","route":"/docs/reference/calculate/atan2/","keywords":"calcatan2"},{"kind":"Parameter of calc-atan2","title":"X","route":"/docs/reference/calculate/atan2/#parameters-x"},{"kind":"Parameter of calc-atan2","title":"Y","route":"/docs/reference/calculate/atan2/#parameters-y"},{"kind":"函数","title":"Fractional","route":"/docs/reference/calculate/fract/","keywords":"calcfract"},{"kind":"Parameter of calc-fract","title":"Value","route":"/docs/reference/calculate/fract/#parameters-value"},{"kind":"函数","title":"Greatest Common Divisor","route":"/docs/reference/calculate/gcd/","keywords":"calcgcd"},{"kind":"Parameter of calc-gcd","title":"A","route":"/docs/reference/calculate/gcd/#parameters-a"},{"kind":"Parameter of calc-gcd","title":"B","route":"/docs/reference/calculate/gcd/#parameters-b"},{"kind":"函数","title":"Hyperbolic cosine","route":"/docs/reference/calculate/cosh/","keywords":"calccosh"},{"kind":"Parameter of calc-cosh","title":"Angle","route":"/docs/reference/calculate/cosh/#parameters-angle"},{"kind":"函数","title":"Hyperbolic sine","route":"/docs/reference/calculate/sinh/","keywords":"calcsinh"},{"kind":"Parameter of calc-sinh","title":"Angle","route":"/docs/reference/calculate/sinh/#parameters-angle"},{"kind":"函数","title":"Hyperbolic tangent","route":"/docs/reference/calculate/tanh/","keywords":"calctanh"},{"kind":"Parameter of calc-tanh","title":"Angle","route":"/docs/reference/calculate/tanh/#parameters-angle"},{"kind":"函数","title":"Least Common Multiple","route":"/docs/reference/calculate/lcm/","keywords":"calclcm"},{"kind":"Parameter of calc-lcm","title":"A","route":"/docs/reference/calculate/lcm/#parameters-a"},{"kind":"Parameter of calc-lcm","title":"B","route":"/docs/reference/calculate/lcm/#parameters-b"},{"kind":"函数","title":"Logarithm","route":"/docs/reference/calculate/log/","keywords":"calclog"},{"kind":"Parameter of calc-log","title":"Value","route":"/docs/reference/calculate/log/#parameters-value"},{"kind":"Parameter of calc-log","title":"Base","route":"/docs/reference/calculate/log/#parameters-base"},{"kind":"函数","title":"Maximum","route":"/docs/reference/calculate/max/","keywords":"calcmax"},{"kind":"Parameter of calc-max","title":"Values","route":"/docs/reference/calculate/max/#parameters-values"},{"kind":"函数","title":"Minimum","route":"/docs/reference/calculate/min/","keywords":"calcmin"},{"kind":"Parameter of calc-min","title":"Values","route":"/docs/reference/calculate/min/#parameters-values"},{"kind":"函数","title":"Natural Logarithm","route":"/docs/reference/calculate/ln/","keywords":"calcln"},{"kind":"Parameter of calc-ln","title":"Value","route":"/docs/reference/calculate/ln/#parameters-value"},{"kind":"函数","title":"Odd","route":"/docs/reference/calculate/odd/","keywords":"calcodd"},{"kind":"Parameter of calc-odd","title":"Value","route":"/docs/reference/calculate/odd/#parameters-value"},{"kind":"函数","title":"Permutation","route":"/docs/reference/calculate/perm/","keywords":"calcperm"},{"kind":"Parameter of calc-perm","title":"Base","route":"/docs/reference/calculate/perm/#parameters-base"},{"kind":"Parameter of calc-perm","title":"Numbers","route":"/docs/reference/calculate/perm/#parameters-numbers"},{"kind":"函数","title":"Power","route":"/docs/reference/calculate/pow/","keywords":"calcpow"},{"kind":"Parameter of calc-pow","title":"Base","route":"/docs/reference/calculate/pow/#parameters-base"},{"kind":"Parameter of calc-pow","title":"Exponent","route":"/docs/reference/calculate/pow/#parameters-exponent"},{"kind":"函数","title":"Quotient","route":"/docs/reference/calculate/quo/","keywords":"calcquo"},{"kind":"Parameter of calc-quo","title":"Dividend","route":"/docs/reference/calculate/quo/#parameters-dividend"},{"kind":"Parameter of calc-quo","title":"Divisor","route":"/docs/reference/calculate/quo/#parameters-divisor"},{"kind":"函数","title":"Remainder","route":"/docs/reference/calculate/rem/","keywords":"calcrem"},{"kind":"Parameter of calc-rem","title":"Dividend","route":"/docs/reference/calculate/rem/#parameters-dividend"},{"kind":"Parameter of calc-rem","title":"Divisor","route":"/docs/reference/calculate/rem/#parameters-divisor"},{"kind":"函数","title":"Round","route":"/docs/reference/calculate/round/","keywords":"calcround"},{"kind":"Parameter of calc-round","title":"Value","route":"/docs/reference/calculate/round/#parameters-value"},{"kind":"Parameter of calc-round","title":"Digits","route":"/docs/reference/calculate/round/#parameters-digits"},{"kind":"函数","title":"Round down","route":"/docs/reference/calculate/floor/","keywords":"calcfloor"},{"kind":"Parameter of calc-floor","title":"Value","route":"/docs/reference/calculate/floor/#parameters-value"},{"kind":"函数","title":"Round up","route":"/docs/reference/calculate/ceil/","keywords":"calcceil"},{"kind":"Parameter of calc-ceil","title":"Value","route":"/docs/reference/calculate/ceil/#parameters-value"},{"kind":"函数","title":"Sine","route":"/docs/reference/calculate/sin/","keywords":"calcsin"},{"kind":"Parameter of calc-sin","title":"Angle","route":"/docs/reference/calculate/sin/#parameters-angle"},{"kind":"函数","title":"Square Root","route":"/docs/reference/calculate/sqrt/","keywords":"calcsqrt"},{"kind":"Parameter of calc-sqrt","title":"Value","route":"/docs/reference/calculate/sqrt/#parameters-value"},{"kind":"函数","title":"Tangent","route":"/docs/reference/calculate/tan/","keywords":"calctan"},{"kind":"Parameter of calc-tan","title":"Angle","route":"/docs/reference/calculate/tan/#parameters-angle"},{"kind":"函数","title":"Truncate","route":"/docs/reference/calculate/trunc/","keywords":"calctrunc"},{"kind":"Parameter of calc-trunc","title":"Value","route":"/docs/reference/calculate/trunc/#parameters-value"},{"kind":"类别","title":"Construct","route":"/docs/reference/construct/"},{"kind":"函数","title":"CMYK","route":"/docs/reference/construct/cmyk/","keywords":"cmyk"},{"kind":"cmyk 的参数","title":"Cyan","route":"/docs/reference/construct/cmyk/#parameters-cyan"},{"kind":"cmyk 的参数","title":"Magenta","route":"/docs/reference/construct/cmyk/#parameters-magenta"},{"kind":"cmyk 的参数","title":"Yellow","route":"/docs/reference/construct/cmyk/#parameters-yellow"},{"kind":"cmyk 的参数","title":"Key","route":"/docs/reference/construct/cmyk/#parameters-key"},{"kind":"函数","title":"Datetime","route":"/docs/reference/construct/datetime/","keywords":"datetime"},{"kind":"datetime 的参数","title":"Year","route":"/docs/reference/construct/datetime/#parameters-year"},{"kind":"datetime 的参数","title":"Month","route":"/docs/reference/construct/datetime/#parameters-month"},{"kind":"datetime 的参数","title":"Day","route":"/docs/reference/construct/datetime/#parameters-day"},{"kind":"datetime 的参数","title":"Hour","route":"/docs/reference/construct/datetime/#parameters-hour"},{"kind":"datetime 的参数","title":"Minute","route":"/docs/reference/construct/datetime/#parameters-minute"},{"kind":"datetime 的参数","title":"Second","route":"/docs/reference/construct/datetime/#parameters-second"},{"kind":"函数","title":"Today","route":"/docs/reference/construct/datetime/#datetime-today","keywords":"datetimetoday"},{"kind":"Parameter of datetime-today","title":"Offset","route":"/docs/reference/construct/datetime/#datetime-today#parameters-offset"},{"kind":"函数","title":"Float","route":"/docs/reference/construct/float/","keywords":"float"},{"kind":"float 的参数","title":"Value","route":"/docs/reference/construct/float/#parameters-value"},{"kind":"函数","title":"Integer","route":"/docs/reference/construct/int/","keywords":"int"},{"kind":"int 的参数","title":"Value","route":"/docs/reference/construct/int/#parameters-value"},{"kind":"函数","title":"Label","route":"/docs/reference/construct/label/","keywords":"label"},{"kind":"label 的参数","title":"Name","route":"/docs/reference/construct/label/#parameters-name"},{"kind":"函数","title":"Luma","route":"/docs/reference/construct/luma/","keywords":"luma"},{"kind":"luma 的参数","title":"Gray","route":"/docs/reference/construct/luma/#parameters-gray"},{"kind":"函数","title":"RGB","route":"/docs/reference/construct/rgb/","keywords":"rgb"},{"kind":"rgb 的参数","title":"Hex","route":"/docs/reference/construct/rgb/#parameters-hex"},{"kind":"rgb 的参数","title":"Red","route":"/docs/reference/construct/rgb/#parameters-red"},{"kind":"rgb 的参数","title":"Green","route":"/docs/reference/construct/rgb/#parameters-green"},{"kind":"rgb 的参数","title":"Blue","route":"/docs/reference/construct/rgb/#parameters-blue"},{"kind":"rgb 的参数","title":"Alpha","route":"/docs/reference/construct/rgb/#parameters-alpha"},{"kind":"函数","title":"Range","route":"/docs/reference/construct/range/","keywords":"range"},{"kind":"range 的参数","title":"Start","route":"/docs/reference/construct/range/#parameters-start"},{"kind":"range 的参数","title":"End","route":"/docs/reference/construct/range/#parameters-end"},{"kind":"range 的参数","title":"Step","route":"/docs/reference/construct/range/#parameters-step"},{"kind":"函数","title":"Regex","route":"/docs/reference/construct/regex/","keywords":"regex"},{"kind":"regex 的参数","title":"Regex","route":"/docs/reference/construct/regex/#parameters-regex"},{"kind":"函数","title":"String","route":"/docs/reference/construct/str/","keywords":"str"},{"kind":"str 的参数","title":"Value","route":"/docs/reference/construct/str/#parameters-value"},{"kind":"str 的参数","title":"Base","route":"/docs/reference/construct/str/#parameters-base"},{"kind":"函数","title":"String From Unicode","route":"/docs/reference/construct/str/#str-from-unicode","keywords":"strfrom-unicode"},{"kind":"Parameter of str-from-unicode","title":"Value","route":"/docs/reference/construct/str/#str-from-unicode#parameters-value"},{"kind":"函数","title":"String To Unicode","route":"/docs/reference/construct/str/#str-to-unicode","keywords":"strto-unicode"},{"kind":"Parameter of str-to-unicode","title":"Value","route":"/docs/reference/construct/str/#str-to-unicode#parameters-value"},{"kind":"函数","title":"Symbol","route":"/docs/reference/construct/symbol/","keywords":"symbol"},{"kind":"symbol 的参数","title":"Variants","route":"/docs/reference/construct/symbol/#parameters-variants"},{"kind":"类别","title":"Data Loading","route":"/docs/reference/data-loading/"},{"kind":"函数","title":"CSV","route":"/docs/reference/data-loading/csv/","keywords":"csv"},{"kind":"csv 的参数","title":"Path","route":"/docs/reference/data-loading/csv/#parameters-path"},{"kind":"csv 的参数","title":"Delimiter","route":"/docs/reference/data-loading/csv/#parameters-delimiter"},{"kind":"函数","title":"JSON","route":"/docs/reference/data-loading/json/","keywords":"json"},{"kind":"json 的参数","title":"Path","route":"/docs/reference/data-loading/json/#parameters-path"},{"kind":"函数","title":"Read","route":"/docs/reference/data-loading/read/","keywords":"read"},{"kind":"read 的参数","title":"Path","route":"/docs/reference/data-loading/read/#parameters-path"},{"kind":"函数","title":"TOML","route":"/docs/reference/data-loading/toml/","keywords":"toml"},{"kind":"toml 的参数","title":"Path","route":"/docs/reference/data-loading/toml/#parameters-path"},{"kind":"函数","title":"XML","route":"/docs/reference/data-loading/xml/","keywords":"xml"},{"kind":"xml 的参数","title":"Path","route":"/docs/reference/data-loading/xml/#parameters-path"},{"kind":"函数","title":"YAML","route":"/docs/reference/data-loading/yaml/","keywords":"yaml"},{"kind":"yaml 的参数","title":"Path","route":"/docs/reference/data-loading/yaml/#parameters-path"},{"kind":"章节","title":"Guides","route":"/docs/guides/"},{"kind":"章节","title":"Guide for LaTeX users","route":"/docs/guides/guide-for-latex-users/"},{"kind":"章节","title":"Changelog","route":"/docs/changelog/"},{"kind":"章节","title":"Roadmap","route":"/docs/roadmap/"},{"kind":"章节","title":"Community","route":"/docs/community/"}],"words":["0","000","0178a4","03","0300","0303","04","05","0b1001","0cm","0em","0o10","0pt","0xff","1","10","100","1000","10001","100pt","101","10cm","10deg","10pt","11","11pt","12","120pt","127","12pt","12px","13","13pt","14","140","140pt","1415","14pt","14rad","15","150","1500","15pt","16","16pt","17","17pt","17th","18","180deg","180pt","18pt","19","190pt","1978","1984","1cm","1e4","1e5","1e8","1em","1f600","1fr","1in","1pt","2","20","200","2000","200pt","2012","2018","2019","2020","2022","2023","20pt","21","21st","22nd","22pt","23","230","235","239dad","24","240","240pt","245","24deg","24pt","24px","25","250","254mm","256","25pt","26","265","27","270","270deg","28","2b","2cm","2d","2em","2fr","2ftypst","2mm","2pt","2udybrykpe","2x2","3","30","300","3000","300pt","30deg","30pt","3166","317","32","32pt","34","35","35pt","36","3aissue","3aopen","3asvg","3atypst","3c","3cm","3em","3pt","3s","4","40","400","4000","400pt","40pt","42","444352","45","459","45deg","45pt","46","48","4cm","4em","4mm","4pt","4px","4s","5","50","500","500px","50pt","5272","52em","53","5408","54cm","555","5555","55b6","55em","56","571rad","5cm","5em","5in","5pt","6","60","600","60pt","612","6307","639","64","65","65em","6708","6709","68pt","6cm","6pt","7","70","700","7121","72pt","75","7533","75in","78","7981","7a7a","7em","7in","7th","8","80","800","800pt","80pt","85","87","89","8cm","8em","8pt","8s","8th","9","90","900","90deg","90pt","9223372036854775807","9223372036854775808","96","97","9pt","a0","a1","a10","a11","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","abacus","abbreviation","abc","abcd","able","above","abra","abs","absence","absolute","abstract","abstractions","academcy","academy","accent","accents","accept","accepted","accepting","accepts","access","accessed","accesses","accessibility","accessible","accommodation","accompanied","accomplish","accomplished","according","accordion","account","accumulated","accumulator","accuracy","accurate","accurately","achieve","acme","acos","across","act","acted","action","active","actual","actually","acute","ad","adapt","add","added","adding","addition","additional","additionally","additions","address","adds","adhesive","adjacent","adjust","adjusted","adjustment","admission","adult","advanced","advances","advantage","advisable","aerial","aesculapius","aesthetic","af","affect","affected","affecting","affects","affiliation","affiliations","africa","after","again","ago","ahead","aid","airplane","alarm","alef","alembic","alert","algebra","algorithm","algorithms","alias","alien","align","aligned","aligning","alignment","alignments","aligns","all","allow","allowed","allowing","allows","almost","alone","along","alongside","alph","alpha","alphabetical","alphanumerical","already","also","alt","altering","alternate","alternates","alternating","alternation","alternative","alternatively","alternatives","although","always","amazed","amazing","ambulance","american","americas","among","amount","amp","ampersand","amphora","amsart","amsfonts","amsmath","amssymb","amulet","analysis","anatomical","ancestry","anchor","anführungszeichen","angel","anger","angle","angled","angles","angry","angstrom","anguish","anguished","angular","annotation","annotations","announcement","another","ansi","answer","ant","antenna","anticlockwise","any","anymore","anything","anyways","anywhere","apa","apart","apostrophe","app","appear","appearance","appearances","appears","appending","apple","applicable","applied","applies","apply","applying","approach","appropriate","approx","approximate","approximately","april","aqua","aquarius","ar","arabic","arbitrarily","arbitrary","arc","arccos","arccosine","arch","arcsin","arcsine","arctan","arctangent","area","aren","arg","args","argument","arguments","aries","arity","arm","around","arrange","arranging","array","arrays","arrgh","arriving","arrow","arrowhead","arrows","art","article","articles","articulated","artifacts","artist","artos","artosflow","arts","ary","ascender","ascending","ascent","ascii","asia","asian","aside","asin","asked","aspect","aspects","assert","assertion","assertions","assigned","assignment","assignments","assistant","associated","association","assume","assumed","assuming","ast","asterisk","asterisks","asterism","astonish","astonished","asymptotically","atan","atan2","athletic","atm","atom","atoms","attach","attached","attaches","attachment","attachments","attacks","attempts","attributes","attrs","au","aubergine","augmented","austen","australia","authentication","author","authors","auto","autocomplete","autocompletion","autocompletions","autoformatter","automate","automated","automatic","automatically","automation","automations","automobile","available","avatar","avocado","avoid","avoiding","aware","away","awesome","axe","axes","axis","b","b0","b1","b10","b11","b1f2eb","b2","b3","b4","b5","b6","b7","b8","b9","babel","baby","babybottle","back","backed","background","backhand","backpack","backs","backslash","backslashes","backtick","backticks","bacon","bactrian","bad","badge","badger","badly","badminton","bag","bagel","baggage","baggageclaim","bags","baguette","balance","balanced","ball","ballet","balloon","ballot","ballotbox","ballpoint","ban","banana","bandage","banjo","bank","banknote","bar","barb","barber","barberpole","bare","barely","bars","base","baseball","basecap","based","baseline","bases","bash","basic","basically","basis","basket","basketball","bat","bath","bathtub","batteries","battery","bb","bbx","bc","beach","beads","beam","beamed","beans","bear","beard","bearded","beat","beating","beautiful","beaver","become","becomes","bed","bee","beer","beetle","before","begin","beginner","beginning","beginnings","behave","behavior","behaviour","behind","beliefs","bell","bellhop","belong","belonging","below","benchmarking","benefit","bento","berlin","berliner","beside","best","bet","beta","better","between","bevel","bevelled","beverage","beyond","bezier","bfseries","biases","bib","biblatex","bibliographies","bibliography","bibtex","biceps","bicycle","bicycles","bicyclist","bidirectional","big","bigger","bike","bikini","billed","billiards","bin","binary","binding","bindings","binds","binom","binomial","biohazard","bird","birthday","bison","bit","bitcoin","bite","biting","bits","bl","black","blackboard","blank","blbr","blind","blob","block","blocking","blockless","blocks","blocky","blog","blond","blonde","blood","blossom","blouse","blowfish","blowing","bltr","blue","blueberries","blush","boar","board","boat","bodies","body","boilerplate","bokmål","bold","boldface","bolt","bom","bomb","bone","bones","book","bookmark","books","bookshelf","boolean","booleans","boomerang","boot","boots","border","bordercontrol","born","bot","both","bottle","bottom","bound","boundaries","boundary","bounds","bouquet","bow","bowing","bowl","bowling","box","boxes","boxing","boy","br","brace","braced","braces","bracket","brackets","brain","branch","branches","bread","break","breakable","breaking","breaks","breast","breathe","breve","brick","bride","bridge","brief","briefcase","briefs","brightness","bring","broadsheet","broccoli","broke","broken","broom","brown","brush","bt","btt","bubble","bubbles","bubbletea","bucket","buffalo","bug","bugfixes","bugs","build","builder","building","buildings","builds","built","bulb","bullet","bulleted","bunny","buoy","burger","burrito","bus","business","bust","busts","butt","butter","butterfly","button","buttons","byte","bytes","bézier","c","c3","c4","c5","c6","c7","c8","cabinet","cablecar","cableway","cactus","cadabra","cake","cal","calc","calculate","calculated","calculates","calculating","calculation","calculations","calculator","calendar","call","called","calligraphic","calling","calls","camel","camera","camping","cancel","canceled","cancellation","cancelled","cancer","candle","candy","cane","canned","cannot","canoe","canvas","cap","capabilities","capability","capable","capital","capitals","capped","capri","capricorn","caps","caption","capture","captured","captures","capturing","car","carbon","card","cardindex","cards","care","careful","caret","caring","caron","carousel","carp","carpentry","carriage","carrot","carré","cars","cart","cartwheel","case","cases","cassette","casting","castle","cat","categorize","categorizes","category","cause","caution","cc","ccw","cd","cease","ceil","ceiled","celebration","cell","cells","celsius","center","centered","centering","centimeters","centred","ceremony","certain","chain","chained","chains","chair","challenging","champagne","change","changed","changelog","changes","changing","chapter","chapters","char","character","characters","chart","charts","chat","cheat","check","checking","checkmark","cheering","cheese","chequered","cherries","cherry","chess","chestnut","chi","chicago","chick","chicken","child","children","chime","chinese","chipmunk","chocolate","choice","choices","choose","choosing","chopsticks","chosen","christ","christmas","church","cigarette","cinema","circle","circled","circles","circuiting","circuitypst","circumflex","circumstances","circus","citation","citations","citationstyles","cite","cited","citing","city","cityscape","cjk","cl","claim","claims","clamp","clap","clapper","clapperboard","clapping","class","classic","classical","classmate","clear","clearance","clearer","clearly","cli","click","clickable","clicking","clig","climate","climbing","clink","clinking","clip","clipboard","clipping","clips","clock","clockwise","close","closed","closely","closer","closest","closet","closing","closure","clothes","cloud","cloudconvert","clover","clown","club","cluster","clusters","clutter","cmyk","cn","co","coaster","coat","cockroach","cocktail","coconut","code","codepoint","codepoints","codes","coefficient","coffee","coffin","coin","col","colbreak","cold","collaboration","collapse","collapses","collect","collected","collection","collections","collects","collide","collision","colon","color","colors","column","columns","com","combination","combinations","combinator","combine","combined","combining","come","comes","comet","coming","comma","command","commands","commas","comment","comments","commercial","common","commonly","communicate","communities","community","compact","company","comparable","compare","compared","comparison","comparisons","compass","compatibility","compatible","compilation","compile","compiled","compiler","compiles","complains","complaints","complement","complemented","complete","completed","completely","completion","completions","complex","compliance","comply","component","components","compose","composed","composing","compound","comprehensive","compression","computation","computations","compute","computer","computermouse","concepts","conceptual","conceptualized","conceptually","concern","conclusion","conclusions","concrete","condensed","condition","conditional","conditionally","conditionals","conf","conference","confetti","confidential","configurable","configuration","configure","configured","configures","confirmation","confounded","confused","congratulation","congratulations","connect","connected","consecutive","consecutively","consequence","consider","considered","considering","consist","consistently","consisting","consists","constant","constants","construct","constructed","constructing","construction","constructs","consult","cont","contact","contain","contained","container","containers","containing","contains","content","contents","context","contextual","continuation","continue","continues","contour","contradiction","contrary","contrast","contribute","contributor","contributors","control","controller","convenience","convenient","convention","conventions","converge","conversion","conversions","convert","converted","converts","convolve","cook","cooked","cookie","cooking","cool","coordinate","coordinates","coproduct","copy","copyable","copyright","coral","cork","corn","corner","corners","corp","correct","correction","correctly","corresponding","corresponds","cos","cosh","cosine","cost","cot","coth","couch","could","count","counted","counter","counters","counting","countless","counts","couple","coupled","couronne","course","cover","covering","cow","cowboy","crab","cracker","cramped","crane","crash","crate","crayon","crazy","cream","create","created","creates","creating","creative","creatively","creature","credit","crescent","cricket","cricketbat","critical","crocodile","croissant","cropping","cross","crossbones","crossed","crossing","crossmark","crown","cruise","crutch","cry","crying","cryptic","crystal","cs","csc","csl","csquotes","csv","ctg","ctrl","cube","cucumber","cumbersome","cup","cupcake","curated","curious","curl","curling","curly","currency","current","currently","curry","cursive","cursor","curve","curves","curving","custard","custom","customary","customizable","customization","customize","customized","customs","cut","cutlery","cw","cyan","cycle","cyclone","cylinder","d","d0","d1","d2","d3","d4","d5","d6","d65","d7","d8","da","dagger","dancer","dancing","danger","dango","dark","darken","darkens","darts","das","dash","dashboard","dashed","dashes","data","date","dates","datetime","datetimes","david","day","dd","de","deadline","deaf","debugging","december","decide","decides","deciduous","decimal","decimals","declared","deco","decorated","decoration","decorative","decreasing","dedicated","deep","deeply","deer","def","default","defaulting","defaults","defies","define","defined","defines","defining","definition","definitions","deg","degree","degrees","dejavu","deklan","delicious","delighted","delim","delimit","delimited","delimiter","delimiters","delivery","delta","demonstrated","demonstrates","denom","denominator","denotes","densely","department","departure","depend","depending","depends","deployment","deprecated","depth","derelict","derivate","derogatory","descendant","descender","descending","descent","describe","described","describing","description","descriptions","desert","design","designed","designers","desired","desk","desktop","dest","destination","destructure","destructured","destructuring","det","detailed","details","detect","detection","detective","detects","determine","determined","determines","determining","dev","devastate","developed","development","developments","device","devil","dharma","diacriticalgrave","diaer","diaeresis","diagnostic","diagnostics","diagonal","diagrams","dialog","diameter","diamond","dict","dictionaries","dictionary","die","diesem","dif","diff","differ","difference","differences","different","differential","differentiate","differentiates","differently","differs","digest","digits","dim","dimensional","dimensions","din","ding","dino","dir","direct","direction","directly","directory","disable","disabled","disables","disabling","disambiguate","disappears","disappointed","disc","discard","discarded","discoball","discord","discover","discovered","discretionary","discuss","discussed","disguise","disguised","dish","disk","dismissed","displaced","displacement","display","displayed","displaying","displays","dissect","distance","distant","distinct","distinction","distinctive","distorted","distress","distribute","distributed","div","divide","divided","dividend","dividers","divides","diving","division","divisor","diya","dizzy","dlig","dna","doc","docs","document","documentation","documentclass","documented","documents","dodo","doe","doesn","dog","dokument","dollar","dolls","dolphin","dominant","done","donut","door","dot","dotdot","dotless","dots","dotted","double","doughnut","dove","down","download","downwards","doxing","dr","draft","drag","dragged","dragon","draw","drawing","drawn","dress","drink","dromedar","dromedary","drool","drooling","drop","dropdown","droplet","drops","drum","drumsticks","duck","due","dumb","dumpling","dusk","dust","dvd","dx","dy","dyed","dynamic","dynamically","dynamics","e","e1","e4e5ea","e5","each","eagle","ear","early","ears","earth","easier","easily","east","eastern","easy","eat","economies","ecosystems","edge","edges","edit","editing","edition","editor","edu","ee","effect","effective","effects","efficient","egg","eggs","eight","eighteen","einleitung","either","eject","el","electric","electrical","electronics","elegant","elem","element","elements","elems","elephant","elevator","eleven","elf","eliminiation","ell","ellipse","ellipsis","else","em","email","embed","embedded","embedding","embeds","emblem","embolden","emissions","emit","emits","emoji","emojis","emph","emphasis","emphasize","emphasized","emphasizes","empty","en","enable","enabled","enables","enabling","enclose","enclosed","enclosing","encoded","encounter","encountering","encyclopedia","end","ended","ending","ends","engine","engineering","engineers","english","enjoy","enough","ensure","ensures","enter","entered","entering","entre","entries","entry","enum","enumerate","enumerating","enumeration","enumerations","enumitem","enums","envelope","environment","environmentally","environments","eps","epsilon","epub","eq","eqq","equal","equality","equalize","equally","equals","equation","equations","equi","equiangular","equivalent","equivalents","error","errors","es","escape","escapes","especially","essays","est","established","estimates","eta","etc","eu","eugene","euro","europe","european","euros","evade","eval","evaluate","evaluated","evaluates","evaluation","even","evenly","evenness","event","ever","evergreen","evermore","every","everyday","everyone","everything","evil","exact","exactly","example","examples","exceeds","excellent","except","exception","exceptions","excess","exchange","excl","exclamation","exclude","exclusive","execute","execution","executive","exercise","exist","existent","exists","exit","exp","expand","expanded","expands","expect","expected","expects","expenses","experience","experiment","experimentation","experiments","explain","explained","explains","explicit","explicitly","explode","exploding","explore","explosion","exponent","exponential","exponents","export","exported","exports","exposed","exposes","expr","expressed","expression","expressionless","expressions","extended","extends","extension","extent","external","extinguisher","extra","extrabold","extract","extracted","extracts","extralight","extraneous","extraordinary","extraterrestrial","eye","eyebrow","eyeglasses","eyeroll","eyes","f","f2e5dd","f4","face","facepalm","facing","fact","factor","factorial","factors","factory","fahrenheit","fail","failed","fails","fairly","fairy","faith","fake","falafel","fall","fallback","fallen","falls","false","familiar","families","family","fancyhdr","fantasy","far","faraway","fast","faster","father","favor","fax","fdfdfd","fear","fearful","feather","feature","features","february","feedback","feeding","feel","female","fence","fencer","fencing","fenjalien","ferris","ferriswheel","ferry","fever","ff","ffcbc4","fi","field","fields","fifth","fig","figure","figures","file","filebox","filedividers","filename","files","filing","fill","filled","filling","fills","film","filter","filters","final","finally","find","finding","findings","finds","fine","finger","fingers","finished","fira","fire","firecracker","fireengine","firework","fireworks","first","fish","fishing","fist","fisted","fit","five","fix","fixed","fixes","flag","flags","flake","flamingo","flash","flashlight","flat","flatbread","flatten","fleshing","fleur","flexed","flexibility","flexible","flipped","float","floating","floats","floor","floored","floppy","floral","flow","flower","flowing","fluid","fluids","flush","flushed","fluttering","fly","flying","fn","foam","focus","fog","foggy","fold","folded","folder","folders","folding","folds","folio","follow","followed","followers","following","follows","fondue","font","fontenc","fonts","foo","food","foolscap","foot","football","footer","footers","footnote","footnotes","footprints","for","forall","force","forced","forcibly","forecast","foreground","forest","forex","forget","fork","form","format","formation","formats","formatted","formatting","former","forming","forms","formula","formulas","fortunately","fortune","forward","forwards","foster","found","foundational","foundations","fountain","four","fox","fr","frac","fract","fraction","fractional","fractionally","fractions","frak","fraktur","frame","frames","franc","free","freezing","french","frequently","fried","friendly","friends","fries","frisbee","frog","front","frown","frowning","frust","frustrated","frustratingly","fuchsia","fuel","fuelpump","fuji","fulfilled","full","fully","func","function","functionality","functions","fundamental","funded","funeral","further","furthermore","fused","future","g","g5","gachi","gained","gallery","game","gamma","gap","gaps","garden","garlic","gcd","gear","gem","gemini","gen","general","generality","generalized","generally","generate","generated","generates","generation","generator","genie","geology","geometry","gesture","get","gets","getting","gg","gh","ghost","giant","gibbous","gif","gift","gimel","giraffe","girl","git","github","give","given","gives","glacial","glacier","glaciers","glad","glass","glasses","global","globally","globe","glove","gloves","glow","glowing","glyph","glyphs","go","goal","goat","goblin","goes","goggles","going","golf","golfer","golfing","good","goodies","goofy","google","gorilla","got","gov","grace","gradients","gradually","graduation","grant","grapes","grapheme","graphic","graphics","graphicx","grave","gray","grayscale","great","greater","greatest","greek","green","greet","grid","grids","grimacing","grin","grinning","ground","group","grouped","grouping","groups","grow","growing","gt","gua","guapimao","guarantee","guard","guardsman","gui","guidance","guide","guidelines","guides","guillemets","guitar","gutter","gutters","gymnastics","h","hair","haircut","half","halo","hamburger","hamlet","hammer","hamsa","hamster","hand","handbag","handball","handbook","handed","handholding","handle","handled","handling","hands","handshake","handy","hang","hanging","happening","happens","happy","harassment","hard","harpoon","harpoons","hash","hashtag","hasn","hat","hatching","having","hayagriva","head","headache","headed","header","headers","heading","headings","headphone","headscarf","headstone","health","hear","hearing","heart","hearts","heat","heavily","heavy","hebrew","hedgehog","heel","heeled","height","helicopter","helix","hello","helmet","help","helpful","herb","hex","hexa","hexadecimal","hexagon","hey","hh","hi","hibiscus","hidden","hide","hiding","hierarchies","hierarchy","high","higher","highlight","highlighting","highly","hijab","hike","hiking","hindu","hint","hints","hippo","hippopotamus","historical","history","hit","hitherto","hitting","hlig","hn","hocho","hockey","hoisting","hold","holding","hole","hom","home","homer","homework","honduras","honey","honeybee","hongbao","honoring","hook","hoop","hope","horizon","horizontal","horizontally","horn","horns","horse","hospital","hot","hotdog","hotel","hotspring","hour","hourglass","house","hover","hovering","how","however","hstate","html","http","https","hug","hugging","humphrey97","hundred","hushed","hut","hyperbolic","hyperref","hyph","hyphen","hyphenate","hyphenated","hyphenation","i18n","ibm","icc","ice","icecream","icehockey","icon","id","ideas","ident","identical","identification","identified","identifier","identifiers","identifies","identify","identifying","ideograph","ieee","if","ignored","ignores","ihora","ii","illustrates","im","image","images","img","immediately","imminent","imp","impacts","impl","implement","implemented","implementing","implicitly","implied","imply","import","importable","important","imported","imports","impose","improve","improved","improvements","impulse","in","inaccuracies","inappropriate","inappropriately","inbox","inches","include","included","includes","including","inclusive","inclusivity","incoming","inconsistency","increase","increases","increasing","increasingly","increment","incremental","indent","indentation","indented","indenting","indents","independent","independently","index","indexed","indian","indicate","indicated","indicates","indicator","indices","indirectly","indistinguishable","individual","individually","induction","inequality","inf","infancy","infer","infinite","infinity","influence","influenced","info","information","informed","infrastructure","infty","inherited","inidvidually","init","initial","initialize","initialized","ink","inkscape","inline","inner","input","inputenc","inria","ins","insert","inserted","inserting","insertion","inserts","inset","inside","insightful","inspect","inspector","inspiration","instagram","installed","instance","instances","instant","instead","institute","instruct","instructs","instrumentation","insults","int","integer","integers","integral","integrate","integrated","integration","integredients","intended","interact","interactions","interest","interested","interesting","interface","interior","intermediate","internally","interpret","interpreted","interrobang","intersection","interviews","intro","introduce","introduced","introduces","introduction","introspection","intuitive","inv","invalid","inversely","inversion","invert","inverted","investigated","invite","invocation","invoked","involved","involves","iota","ipsum","ish","islam","island","isn","iso","issue","issues","ist","italic","italicized","italics","item","itemize","items","iterable","iterate","iterates","iterating","iteration","iteratively","itself—leading","izakaya","j","jabref","jack","jane","january","japan","japanese","jar","jb","jeans","jigsaw","jis","jj","joe","johannes","john","join","joined","joiner","joins","joker","joy","joystick","jp","jpeg","jpg","json","judaism","juggling","juice","jump","june","justification","justified","justifies","justify","jésus","k","ka","kaaba","kachi","kadomatsu","kai","kangaroo","kappa","kara","kashida","katakana","kbd","kebab","keep","keeping","kelvin","kept","ker","kern","kerning","key","keybindings","keyboard","keyboards","keycap","keys","keyword","keywords","kiku","kimono","kind","kinds","kiss","kissing","kissmark","kite","kiwi","kiwifruit","kk","kneel","kneeling","knife","knobs","knot","know","knowledge","known","koala","koinobori","koko","kon","korean","l","lab","label","labelled","labels","lack","lacking","lacrosse","ladder","lady","laid","lambda","lamda","lamp","landing","landscape","lang","language","languages","lantern","laplace","laptop","large","larger","largest","last","later","latest","latex","latin","latter","laugh","laughing","launch","laws","layout","layouted","layouts","lb","lbrb","lcm","lead","leading","leaf","leafy","learn","learned","learning","learnings","least","ledger","left","leftluggage","leftwards","leg","legal","legibility","lemon","len","length","lengths","leo","leopard","less","let","lets","letter","letterform","letterforms","letters","level","levels","levitate","levitating","lg","libertine","liberty","libra","libraries","library","lick","lie","life","lifter","lifts","liga","ligature","ligatures","light","lightbulb","lighten","lightens","lightning","lightweight","like","likely","likeminded","liking","lim","lime","liminf","limit","limitation","limitations","limited","limits","limsup","line","linebreak","linebreaking","linebreaks","lines","lining","link","linked","linkedin","links","linter","linux","lion","lip","lips","lipstick","liquid","lira","lis","list","listed","listing","listings","lists","literal","literals","literature","litter","little","lizard","ll","llama","lll","llm","ln","lnum","load","loaded","loading","loads","lobster","loc","local","localization","locally","localname","locate","location","locations","lock","locomotive","log","logarithm","logical","logo","lollipop","lone","long","longer","look","looking","looks","loop","loops","loosely","lorem","lorry","loss","lot","lotion","lots","lotus","loudly","loudspeaker","love","low","lower","lowercase","lowered","lozenge","lr","lstlisting","lt","ltlb","ltr","ltrb","ltrt","luggage","luma","lunate","lungs","lying","m","machine","macro","macron","macros","made","mage","magenta","magic","magnet","magnify","magnifying","magnitude","mahjong","mail","mailbox","mailto","main","mainly","maize","major","make","makes","making","male","maltese","mammoth","man","manage","managed","management","manager","managing","mandatory","mango","manifest","manipulate","manipulation","mans","mantelpiece","manticore","manual","manually","many","mao","map","maple","mapper","mapping","mappings","maps","march","margin","margins","mark","markdown","marked","marker","markers","markup","maroon","martial","martialarts","martini","mask","masks","massage","mat","match","matched","matches","matching","mate","material","math","mathematical","maths","matrices","matrix","matryoshka","matter","max","maximum","may","maybe","md","meaning","meaningful","means","meantime","measure","measured","measurement","meat","mech","mechanical","med","medal","media","medical","medium","meet","meets","megaphone","meh","melon","melt","melting","member","members","memo","men","menorah","mens","mention","menu","menus","merged","merges","meridian","meridians","merperson","mess","message","messages","met","meta","metadata","method","methods","metro","microbe","microphone","microscope","middle","midline","might","migration","military","milk","milky","milkyway","mille","millimeters","milliseconds","min","mind","minded","mine","mini","minibus","minidisc","minimum","minted","minus","minute","mirror","mirrored","miscellaneous","mismatched","missing","miter","mitigate","mix","mixer","mkg","mla","mm","mobile","mod","mode","model","modelling","models","modern","modes","modified","modifier","modifierless","modifiers","modifies","modify","modifying","module","modules","molecular","moment","monday","money","monkey","mono","monocle","monorail","monospace","monster","month","months","moon","moreover","mortarboard","mosque","mosquito","mostly","mother","motivation","motor","motorcycle","motorized","motorway","mount","mountain","mountains","mouse","mousetrap","mouth","move","moved","movement","movie","moving","moyai","mu","much","mug","mugs","multi","multiletter","multimap","multiple","multiplication","multiplied","multiset","muryo","muscle","museum","mushroom","musical","musicalscore","must","mutually","mycounter","mydsl","n","nabla","nail","nails","name","namebadge","named","names","nan","naos","napprox","narrow","natbib","national","native","natural","nature","nausea","nauseated","navigate","navigated","navy","nazar","nb","ncols","ne","nearest","necessarily","necessary","necktie","need","needed","needle","needs","negate","negation","negative","neighbouring","neither","neq","neqq","nerd","nest","nested","nesting","net","netwok","neutral","never","new","newline","newlines","news","newspaper","next","ng","nice","night","nine","ningyo","ninja","nix","nl","nn","nobody","nobreak","nodes","noentry","non","none","nonzero","nope","norm","normal","normally","norms","north","norwegian","nose","notable","notation","note","notebook","noted","notepad","notes","nothing","notice","noticed","noto","ntilde","nu","null","num","number","numbered","numbering","numberings","numbers","numerals","numerator","numeric","numerical","numerous","nums","nut","ny","o","object","objects","oblique","observable","observed","obtained","obvious","occur","occurrences","occurring","occurs","oclock","octagonal","octal","octopus","odd","oddness","oden","odyssey","of","off","offer","office","officer","offline","offset","oficio","often","ogre","ohm","oil","ok","old","older","olive","om","omega","omicron","omit","omitted","omitting","on","once","oncoming","one","ones","ongoing","oni","onigiri","onion","online","only","onto","onum","oo","op","opaque","open","opened","opening","opens","opentype","operate","operated","operation","operations","operator","operators","ophi","ophiuchus","opportunity","opposed","opposing","optical","optimization","optimize","optimized","option","optional","optionally","options","orange","orangutan","orbit","order","ordering","orders","org","orientation","origin","original","originally","origins","ornament","orphan","orphans","orthodox","other","others","otherwise","otter","ought","outbox","outer","outline","outlined","outlines","output","outputs","outset","outside","over","overbrace","overbraces","overbracket","overflowing","overhang","overheated","overlap","overlay","overline","overridable","overridden","override","overrides","overview","owl","own","owners","ox","oyster","p","package","packages","pad","padded","padding","paddle","paella","page","pagebreak","pager","pages","paint","paintbrush","painting","pair","paired","pairings","pairs","palette","palm","palms","pan","pancakes","panda","panel","panels","panic","panicked","paper","paperclip","paperclips","papers","par","parachute","paragraph","paragraphs","parallel","parallels","parameter","parameters","parbreak","paren","parent","parentheses","parenthesis","parenthesized","park","parking","parrot","pars","parse","parsed","parser","parses","parsing","parskip","part","partalteration","partial","participants","particular","particularly","parts","party","pass","passed","passenger","passes","passing","passport","paste","pasted","path","paths","pattern","patterns","pause","paw","pawn","pdf","pdfs","peace","peach","peacock","peanuts","pear","pedestrian","pedestrians","peek","peeking","pen","pencil","penguin","pensive","penta","pentagon","people","pepper","per","percent","percentage","perf","perfect","perform","performance","performing","performs","period","perm","permille","permissive","permutation","permutations","perp","perpendicular","persevering","person","personal","perspective","persuasion","peruse","peso","petri","pgbiel","pgf","phase","phenomenon","phi","phone","phones","physical","physics","pi","piano","pick","picker","picks","pickup","picture","pie","piece","pietro","pig","pilcrow","pile","pill","pin","pinata","pinch","pinched","pinching","pine","pineapple","pingpong","pink","pipeline","pirates","pisces","pistol","pizza","pl","placard","place","placed","placeholder","placeholders","placement","places","plain","plan","planck","planet","planned","planning","plans","plant","plaster","plate","platform","playback","playground","playing","playingcard","plead","pleading","please","pleasing","pleasure","pledge","plex","plot","plots","plotting","plug","plunger","plus","pm","png","pnum","pod","point","pointed","pointer","pointing","pointless","points","pole","police","policeofficer","policies","policy","polish","political","polo","polyglossia","polygon","polygons","pomodoro","poo","poodle","pop","popcorn","popper","popping","pops","popular","populated","pos","position","positional","positioned","positioning","positions","positive","possible","possibly","post","postal","postbox","pot","potable","potato","potential","potted","pouch","poultry","pound","pour","pouring","pouting","pow","power","powerful","powerplug","powers","pp","pr","practical","practice","practices","prayer","pre","prec","precede","preceded","precedence","precedes","preceding","precipitation","precisely","precision","predecessor","predefined","predefines","preface","prefer","preferred","prefix","prefixed","prefixes","pregnant","preliminaries","preliminary","premise","preparations","preprended","presence","present","presentation","pressing","pressure","pretty","pretzel","prevent","prevention","prevents","preview","previewed","previews","previous","previously","primarily","primary","prime","primitives","prince","princess","principled","principles","print","printer","println","prints","prior","priorities","prioritize","prioritized","privacy","private","probably","probing","problem","problematic","problems","proceed","process","processes","processing","procurement","produce","produced","produces","product","production","products","profiles","profit","program","programmatic","programmatically","programming","progress","progressing","prohibited","project","projector","projects","prokopov","promptly","proof","prop","proper","properly","properties","property","proportional","propose","prose","protection","protruding","prove","proven","provide","provided","provides","providing","psi","psychological","pt","public","publication","publish","published","publisher","puck","pump","pumpkin","punct","punctuation","pure","purple","purpose","purposes","purse","push","pushpin","put","puts","putting","puzzle","pwa","pythagoras","python","q","q1","q2","q3","qed","qjcg","qq","quad","quadrant","quadruple","quarter","quarto","quaternion","queries","query","quest","question","questioned","questions","quickly","quirks","quite","quo","quotation","quote","quotes","quotient","r","rabbit","raccoon","race","racing","racism","racquet","radians","radicand","radii","radio","radioactive","radius","radix","ragged","rail","railway","rain","rainbow","raise","raised","raisin","raising","ram","randomly","range","ranking","rapidly","rarely","rasmus","rass97","raster","rat","rate","rather","ratio","rationale","ratios","raw","ray","rays","razor","rb","rblb","rbx","rcx","re","reached","reacts","read","readable","real","realities","realize","realized","really","reason","receipt","receive","received","receiver","receives","receiving","recent","recognized","recognizes","recommend","recompilations","record","recording","recreational","rect","rectangle","rectangles","recurring","recursion","recycling","red","redact","redacted","redaction","redefine","redirection","reduce","reduced","reducing","redundant","reexports","ref","refer","reference","referenceable","referenced","references","referencing","refine","refined","reflect","refmark","reg","regarding","regardless","regex","region","regions","registered","regular","reject","rekindled","related","relation","relative","release","relevant","reliability","relief","relies","relieved","rely","rem","remain","remainder","remaining","remarks","remember","remind","reminder","removal","remove","removed","removes","rename","renamed","renaming","render","rendered","rendering","renewcommand","reordering","repeat","repeated","repeatedly","repeats","replace","replaced","replacement","replaces","replacing","repo","report","reports","repository","repr","representation","representations","represented","represents","reproduces","request","requested","require","required","requires","research","researchers","resend","reserves","reset","resolve","resolved","resort","respected","respective","respectively","responsive","rest","restart","restrict","restriction","restroom","result","resulting","results","resumes","retains","retrieve","return","returned","returns","reusable","reused","rev","revealed","revenue","reverse","reversed","reverting","review","reviewed","reviewer","revolve","revolving","rewind","rework","rex","rg","rgb","rhino","rhinoceros","rho","ribbon","rice","richards","richer","rickshaw","right","rightwards","rigorous","ring","ringbuoy","ringed","rl","roadmap","roasted","robot","rock","rocket","rofl","role","roll","rolled","roller","rollercoaster","rolling","roman","room","rooster","root","roots","rose","rosette","rotate","rotated","rotation","round","rounded","row","rowboat","rows","rr","rrr","rs","rt","rtl","rtlb","rtlt","rtrb","ru","ruble","ruby","rugby","ruin","rule","ruler","rules","run","runner","running","runs","rupee","rust","sa","sac","sad","safe","safety","safetypin","safetyvest","sagit","sagittarius","sail","sailboat","sake","salad","salt","salute","saluting","sam","same","sand","sandal","sandwich","sans","santa","sari","sash","sassy","satchel","satdish","satellite","satisfies","saucer","sauropod","save","saved","saving","savouring","saw","saxophone","say","scale","scaled","scales","scaling","scarf","scenarios","scheme","school","sciences","scientific","scifi","scissors","scooter","scope","scopes","score","scorpio","scorpion","scorpius","scratch","scream","screaming","screen","screenshot","screwdriver","script","scripting","scripts","scroll","scrolls","seal","search","searchable","searcher","searches","seat","sec","second","seconds","secret","sect","section","sections","security","see","seedling","seem","seen","sees","segment","segments","select","selected","selecting","selection","selectively","selector","selectors","selects","selfie","semi","semibold","semicircle","semicolon","semicolons","semidirect","sense","sent","sentences","separate","separated","separately","separates","separator","sequence","sequences","sequentially","series","serif","serious","server","service","servicemark","services","set","sets","settable","setting","settings","setup","seven","several","severity","sewing","sexism","sexual","shadow","shake","shaker","shakespeare","shall","shallow","shamrock","shape","shaped","shapes","share","shared","shark","sharp","sharper","shaved","sheep","sheet","shell","shield","shift","shin","shinto","ship","shiroku","shirt","shock","shocked","shoe","shoes","shoot","shooting","shopping","short","shortcake","shortcuts","shorter","shorthand","shorthands","shorts","shoshinsha","shouldn","show","showcase","showed","shower","showing","shown","shows","shrimp","shrine","shrink","shrug","shrunk","shuffle","shuku","shush","shuttlecock","side","sidebar","sides","sight","sigma","sign","signal","significance","significant","signify","signin","signs","silhouette","silly","silver","similar","similarly","simple","simpler","simplify","simply","simultaneously","sin","sinc","since","sine","single","sinh","sink","sinks","siren","sis","situ","six","sixteen","sixth","size","sized","sizes","sizing","skate","skateboard","skeptic","skewer","ski","skier","skiing","skills","skip","skipped","skipping","skips","skull","skunk","sl","slanted","slash","slashed","sled","sleep","sleeping","sleepy","sleuth","slice","slide","slider","slight","slightly","slot","sloth","slots","slow","small","smallcaps","smaller","smallest","smart","smarter","smartly","smartness","smartquote","smash","smcp","smile","smiling","smirk","smirking","smoking","snail","snake","snap","sneaker","sneeze","sneezing","snow","snowboarder","snowboarding","snowflake","snowman","soap","soccer","social","socks","soft","softball","software","soil","solid","solidus","solution","solutions","solve","somebody","something","sometimes","somewhat","somewhere","soon","sophisticated","sophistication","sort","sorted","sos","sound","sounds","soup","source","sources","south","space","spaced","spaces","spacing","spacings","spade","spaghetti","span","spanish","spanning","sparingly","spark","sparkle","sparkler","sparkles","sparkling","spatial","speak","speaker","speaking","special","specialized","specific","specification","specified","specifies","specifiying","specify","specifying","specimens","speech","speed","speedboat","speeds","spell","spheric","spherical","spider","spiderweb","spinach","spiral","splashing","splay","splayed","split","splits","spoked","sponge","sponsoring","sponsors","sponsorship","spool","spoon","sports","spot","spout","spouting","spread","spreading","springs","spy","sq","sqrt","square","squared","squares","squid","squiggle","squiggly","squint","src","srgb","ss","ss01","ss20","sscript","st","stabilizes","stable","stack","stacked","stadium","staff","stage","stamped","stand","standard","standing","stands","star","stark","stars","start","started","starting","starts","startup","state","stateful","statement","statements","states","static","statically","station","statue","status","stay","stays","stderr","stdin","steam","steaming","steamy","stem","step","stepped","stepping","steps","stethoscope","stick","still","stone","stop","stopwatch","store","stored","storm","str","straight","straw","strawberry","streamer","street","stretch","stretchable","stretched","stretching","stricken","strict","strictly","strike","strikethrough","string","strings","striped","stripped","stroke","stroked","strokes","stroking","strong","stronger","strongly","struck","structure","structured","structures","structuring","stuck","student","studio","study","stuffed","sty","style","styled","styles","styling","stylistic","sub","subcommands","subgroup","subheading","submapping","submissions","submit","submitting","subscript","subscripts","subsection","subsections","subsequent","subset","subslice","substituted","substring","substrings","subsubsection","subtest","subtraction","succ","succeed","succeeds","success","successor","suffer","suffices","suffix","suffixes","sugar","suggestions","suit","suitable","sum","summation","sums","sun","sunday","sunflower","sunglasses","sunny","sunrise","sunset","sup","super","superhero","superscript","superscripts","superset","supervillain","supervisor","supervisors","supplement","supplements","support","supported","supporting","supports","suppose","supposed","supset","sure","surf","surface","surfer","surfing","surprise","surrounded","surrounding","survey","sushi","suspend","suspension","suv","sv","svg","svgs","swan","swap","sweat","sweet","swimmer","swimming","swimsuit","swirl","switch","switches","switching","swords","sym","symbol","symbols","symmetry","synagogue","sync","synchronize","syntactic","syntactically","syntax","syntaxes","synthesis","synthesizing","synthetic","syringe","system","systems","tab","table","tables","tablex","tabloid","tabs","tabular","tabularx","tack","taco","tag","tagged","tags","tail","take","taken","takeoff","takeout","takes","taking","tale","tall","tamale","tan","tanabata","tangent","tangerine","tanh","tap","target","task","tasks","tau","taurus","taxi","tb","tdot","tea","teaching","teacup","teal","team","teams","teapot","tear","tearoff","tears","technical","technically","teddy","tedious","teeth","tel","telephone","telescope","television","tell","teller","telling","tellière","tells","temperature","template","templates","temple","ten","tengu","tennis","tent","tenth","term","terminates","terms","test","testing","tests","testtube","tetrahedron","tex","text","textbf","texts","texttt","textual","tg","thank","thanks","theme","themes","theorem","theorems","theory","therefore","theresa","therese","thermometer","theta","thick","thickness","thin","thing","things","think","thinking","third","thirty","thong","though","thought","thoughts","thread","threads","three","throne","through","throughout","throwing","thumb","thumbnails","thumbs","thunder","thus","ticket","tickets","tiers","tiger","tight","tighter","tightly","tikz","tilde","tile","time","timer","times","timing","tiny","tip","tips","tired","title","titled","tl","tlbr","tltr","tm","tnum","today","tofus","together","toggle","toilet","toiletpaper","toku","tokyo","tolerate","tomato","tombstone","toml","tongue","tons","tool","toolbar","toolbox","tooling","tools","tooltips","tooth","toothbrush","top","topic","topics","topography","torch","tornado","tortoise","total","totally","touch","towards","tower","toy","tr","track","trackball","tracker","tracking","tracks","tractor","trade","traditional","traffic","trafficlight","trailer","trailing","train","tram","tramway","transform","transformation","transformations","transformed","transgender","translate","translated","translations","transparency","transparent","trap","travel","traversed","tray","treated","tree","tremendous","trend","tri","triangle","triangular","tricks","trident","tried","tries","triggered","trim","trimmed","triple","triumph","troll","trolley","trolleybus","trophy","tropical","truck","true","trumpet","trunc","truncate","try","tsukimi","tt","ttb","tty","tube","tuesday","tulip","tumbler","tuned","tung","tungsten","turban","turkey","turkish","turn","turned","turning","turns","turnstile","turtle","tutorial","tuxedo","tv","tweak","tweet","twelve","twice","twisted","twitter","two","twohead","typ","typc","type","typefaces","types","typeset","typesetting","typical","typically","typing","typographic","typography","typst","typstapp","u","ua","ufo","uk","umbrella","unamused","unary","unbalanced","unbounded","unchanged","uncharacterized","unconventional","under","underbrace","underbraces","underbracket","underline","underlined","underover","underscore","underscores","understand","understanding","unequal","uneven","unexpected","unfortunately","unhappy","unicode","unicorn","unified","uniform","unintended","union","unique","uniquely","unit","units","universal","university","unix","unjustified","unknown","unless","unlike","unmatched","unmistakeable","unnamed","unnecessary","unordered","unpacking","until","unwieldy","up","update","updated","updates","upfront","upload","upon","upper","uppercase","upright","upside","upsilon","upwards","urgent","url","urls","urn","us","usage","usd","use","used","useful","user","users","uses","using","usual","usually","utc","utf","utility","utils","uu","v","v0","v23","val","valid","valuable","value","values","vampire","var","variable","variables","variant","variants","variety","various","ve","vec","vector","vectors","vehicle","veil","venue","verbatim","verbose","versatile","versatility","version","versions","vertex","vertical","vertically","vertices","vest","vfill","vi","via","vibrate","vibration","victory","video","videocassette","view","viewer","viewing","vim","violation","violin","virgo","visible","visit","visual","visualization","visualize","visually","vol","volcano","volleyball","voltage","volume","volumes","vomit","vomiting","vowel","vs","vv","w","waffle","wait","waiting","wall","wand","wane","waning","want","wanted","wants","warichu","warning","warnings","wastebasket","watch","watches","water","watermark","watermelon","waterpolo","wave","waves","waving","wavy","wax","waxing","way","ways","wc","weak","weary","weather","web","webassembly","website","wedding","wedge","week","weekday","weight","weightlifting","welcome","well","west","whale","wheel","wheelchair","when","where","whereas","wherever","whether","which","while","white","whitespace","whole","whose","wide","widely","widow","widows","width","widths","wiggly","wiki","wikipedia","wilted","wind","windchime","winding","window","wine","wings","wink","winking","wish","with","withheld","within","without","wizard","wj","wolf","woman","womans","women","womens","won","wonder","wood","woozy","word","words","work","workarounds","worker","working","works","world","worm","worried","worry","worship","worthwhile","would","wouldn","wow","wrap","wrapped","wrapping","wraps","wreath","wrench","wrestlers","wrestling","write","writing","written","wrong","wrong”","wrote","wry","ww","x","xcolor","xi","xmas","xml","xmp","xor","xray","xx","y","yaml","yang","yarn","yawn","yawning","year","yearly","years","yellow","yen","yes","yet","yield","yielding","yields","yin","yinyang","yml","yo","york","young","yoyo","yubi","yuryo","yy","z","zebra","zero","zeros","zeta","zh","zigzag","zip","zipped","zipper","zips","zodiac","zombie","zotero","zwj","zwnj","zws","zz","zzz","§","¨","¯","°","´","¶","ß","écriture","édition","ˇ","˘","˝","א","ركن","عربي","مثال","هذا","–","‖","“it","†","‡","•","€","←","→","∘","√","✓","✨","い","イ","ㄱ","가","🌏","🖂","🖃","🖄","🖅","🖆","😀","🥸","🧠"],"hits":[[2,3,4,7,27,84,183,198,229,236,248,252,274,389,459,463,499,543,549,587,602,622,624,626,634,665,667,669,674,689,694,696,698,720,723,742,756,758,800,801],[398],[800],[801],[781],[249],[801],[7],[14],[442],[603,624],[14],[184,222,223,384,414,486,508,544,549,559,613],[14],[1,2,3,4,5,7,8,9,13,14,27,32,38,84,103,155,166,178,182,183,193,201,205,206,216,218,224,225,230,237,238,241,243,248,252,260,262,273,274,275,277,279,280,282,285,298,299,300,327,329,331,334,337,340,355,356,418,420,422,426,441,444,448,449,452,475,523,571,575,582,587,599,604,606,607,613,617,618,621,622,623,624,626,627,629,631,632,633,634,643,654,658,660,665,666,667,668,669,678,682,686,689,706,708,723,729,731,733,737,756,758,770,774,800,801],[3,7,9,15,27,38,298,363,418,582,620,624,634,646,671,674,680,703,712,714,756,758,774,776,800,801],[4,19,214,215,269,377,402,445,478,538,543,544,625,703,756],[7,499],[444],[362,448,452,469,538,582],[4],[82],[17],[3,184,187,193,402,444,472,486,493,558,587,590,795],[801],[3,4,5,398,800],[3,27,172,235,493,617,660,801],[489],[764],[4,177,360,626,800],[4],[27,634,700,764],[4,5,800],[15,576,581,660,720,726,729,731],[5],[267,269,270,271,272,273],[726],[7,411,444,800],[17],[3,8,168,365,576,581,626,739,801],[18,364],[499],[626],[426,441,469,474,735,776,801],[371,431,448,449,582,765],[248,444],[4,5,800],[576,581],[27],[17],[626],[210,454,800],[450],[462],[510],[457,510],[2,7,402,442,483,485,800,801],[15],[756],[776],[3,216,459,543,800],[7,38],[4,5,20,377,402,450,472,474,483,486,493,557,626,800,801],[16],[7,180,543,546,551,557],[1,2,3,4,5,7,9,13,14,16,27,38,84,103,113,114,147,155,166,183,224,225,237,238,248,252,260,262,274,275,277,279,280,282,285,288,290,292,294,296,298,299,300,304,306,309,312,315,327,329,331,334,337,340,355,356,396,398,418,426,441,446,455,459,488,493,582,587,617,622,623,626,629,634,643,654,658,686,717,726,735,756,758,770,776,778,786,800,801],[4,134,177,230,402,549,706,708,723,770,801],[4,5,214,215,219,269],[499],[227],[747],[576],[8,134,510],[27],[172,472],[27,454,801,803],[16,216,222,223,229,231,234,235,450,452,467,558],[581,634,770,801],[803],[472],[789],[27,626,800],[362,764],[384],[765],[27],[184,499],[626],[4],[454,474],[5,448,449,455,582,800],[4],[764,801],[4,762],[16],[801],[228,515],[172,634,801],[4],[742,758],[4],[733],[801],[355],[379,506,549,663,789,800],[3,298,360],[16,178,624],[20,483,663],[803],[800],[184,195,241,243,384,467,538,543,557],[4,5,803],[7],[1,2,4,5,7,9,14,15,17,38,84,103,166,182,183,194,224,248,252,274,299,300,301,355,402,421,441,442,450,466,493,500,548,582,587,617,622,626,634,650,654,686,689,706,708,717,720,726,729,731,739,742,747,800,801],[168,362,449,483,610,626,801],[4,214],[499],[4],[272,476],[4,524,531,553,561,571],[225],[4],[2,426],[450,469],[235],[4,524,553],[626],[778],[532],[532],[532],[803],[355],[442,445,486,800],[601],[180,184,220,384,402],[587],[1,9,14,15,27,84,166,183,248,252,274,299,300,426,441,446,493,499,543,582,587,622,634,650,654,674,680,712,726,731,756,758,770,800,801],[187,379,398,486,756],[214],[776],[610],[489,544,562],[691],[447],[4],[800],[694,696,698],[531,561],[720],[448,452],[445,538],[624,800],[4,800],[147,179,184,362,445,469,488,543,558],[4],[587],[4,7,9,14,166,183,248,252,279,280,300,327,329,331,334,337,340,418,441,466,620,622,634,663,671,674,678,680,684,706,708,712,714,720,723,726,733,735,737,742,770,800,801],[4,5,7,215,285,538,544,610,762],[214,499,729,731],[4],[19,544],[641],[3],[27],[641],[16],[444],[444],[641],[800],[235],[475],[3],[16,216],[800],[180,193,194,218,241,242,273,558,663],[9,252,300,398,441,486,582,674,706,708,723],[363,549],[4,214],[402,467],[4],[641],[224],[14,15,756,758,801],[764,800],[459,463],[641],[641],[398],[360],[402,414,789],[2,9,84,166,180,579,582,622,660,691,739,756,758,776],[2,3],[214],[641],[16],[215,481,723],[641],[800],[235],[641],[641],[3],[2],[576],[14,38,39,426,747,801],[4,5,364,532,544,549,587,800],[214],[610],[364,365],[4],[764],[4],[3,446],[602,800],[147,362,363,371,402,414,445,450,452,472,476,485,789],[587],[576],[234,441,640,739,801],[5],[214],[678,733,737],[489],[14],[14],[700],[779],[376],[441],[441],[441],[441],[441],[441],[441,800],[441],[3,441],[441],[441],[441],[640],[641],[641],[800,801],[9,174,246,393,641,801],[51,641],[212],[2,3,4,9,63,155,254,326,328,332,334,336,338,340,342,371,372,543,582,587,640,641,800,801],[414],[84,288,663,801],[11],[2,219,284,288,289,467,483,486,663,664,800],[4,5,800],[610],[450],[398,626],[249,250,251,640,801],[251,801],[5,610,641,800],[632],[801],[3,214,215,402,420,592,606,765,801],[2,3,4,5,7,9,37,75,79,80,84,134,152,166,248,452,572,582,610,615,626,629,637,800,801,803],[9,37,248,637,640,801],[9],[802],[801],[641],[3],[7],[800],[239,402,483,486,545,550],[641],[547,801],[118],[116],[801],[801],[801],[4,8,596],[624],[665],[274,362,398,587,595,801,802],[474,800],[803],[2,446,802],[13,189,231,232,233,411,591,637,803],[617],[626,634,640],[251,640],[7],[3,213,214,801],[2,3,4,5,7,9,27,91,166,176,181,326,360,422,431,483,547,573,577,629,631,634,800,801],[4,5,38,75,84,119,134,218,280,377,579,607,631,801],[2,3,4,5,182,800],[5,9,19,508,639,662,801,803],[147,172,248,595],[147,182,351,483,800],[801],[613,641],[3,251,431],[641],[393,427,485,488,504,510,547],[1,215,219,372,537],[800],[504,801,802],[641],[641],[0,1,3,4,398,802],[172],[641],[237],[641],[641],[462],[641],[4,440,459,467,626,639,754,800,802],[8,248,583,801],[370,384,409,414,474,478,522,530,560,570],[222,223,224,226,548,801],[5,800],[5],[641],[2,3,4,8,9,27,42,147,163,182,237,252,258,259,396,456,582,587,618,626,629,634,800,801],[3,4,579,626,801,803],[573,577],[9,421],[641],[641],[641],[640,800],[641],[147,803],[801],[226,801],[800],[801],[641],[2,3,4,5,8,18,147,186,187,243,359,360,361,363,364,371,426,431,444,449,452,461,472,478,493,499,500,515,524,587,626,789,800,801],[2,3,186,248,274,298,355,476,640,801],[4],[3,7,186,226,248,360,426,449,461,468,500,801,802],[3,360,468,500],[360,426],[0,2,3,4,5,6,7,8,9,10,20,27,38,63,65,75,111,116,119,121,125,127,129,147,152,155,156,158,187,211,212,222,223,224,237,239,248,376,387,402,418,422,431,438,445,464,467,468,483,485,486,488,545,550,557,558,582,583,584,587,590,604,618,620,623,626,627,628,634,640,747,784,786,800,801,803],[212,305,326,801,802],[2,801],[186,362,628],[4,156,158,284,398,402,409,414,478,582,800,801],[640],[359],[1,3,360,489,490,492,800],[113,620,626],[800],[225,252,640,769,800],[801],[581],[2,3,4,5,9,134,136,139,170,174,246,320,343,397,458,573,577,729,731,739,800,801],[0,2,3,4,5,7,8,9,11,14,15,19,20,51,75,103,147,152,155,170,172,182,183,189,191,197,216,219,248,251,252,277,282,284,298,362,376,387,389,409,418,440,459,462,504,532,543,557,582,587,601,604,610,612,613,618,620,626,629,634,637,639,641,662,747,760,775,800,801,803],[4,279,280,536,640,641,801],[800],[317,342,800,801],[229],[543],[641],[0,131,229,230,620,800,801],[1,75,134,639],[801],[440,459,800],[2,3,27,75,147,168,172,248,467,488,582,629,634,639,800,801],[5],[5],[641],[576,641],[641],[2,9,402,483,486],[23,25,179,195,215,218,219,220,243,379,451,453,469,475,484,487,506,601,628],[640],[640],[641],[800],[800],[800],[800],[641],[396,418,582,626],[641],[802],[641],[189],[641],[641],[2,17,272,474,475,542,543,640,666,668,670,678,679,688,694,695,696,697,698,699,733,734,737,738,760,801],[277],[543],[641],[640],[641],[641],[17],[326,331,333,334,336,337,339,340,342],[7],[801],[2,3,4,9,114,147,210,538,613,800,803],[441],[3],[641],[641],[640,641],[1,2,4,5,7,9,11,40,41,81,86,87,90,93,98,106,118,119,120,121,122,123,131,138,146,147,155,156,168,398,457,543,557,582,584,612,618,619,628,634,643,646,650,655,658,664,707,709,790,794,796,798,800,801,803],[5,388,419,505,800,801],[4,5,10],[800],[634,800],[576,801],[8,10,18,185,228,284,388,419,505,602],[640],[1,2,3,4,5,7,75,226,595,613,800,801,802,803],[2,3,584,594,608,800],[3,5,8,75,462,587,595,800],[237],[2,3,611,616,638],[2,37,800],[641,801],[543,800],[3,148,250,801],[4,5,8,133,801,803],[3,4,5,8,75,106,108,110,112,124,126,149,155,198,202,203,207,208,228,229,230,238,251,420,612,617,619,626,755,800,803],[3,248,800],[455,629],[2,189,212,575,621,629],[640],[222,223,248],[640],[801],[21,222,223,364,445,789,800],[641],[360,801],[3,211,226,582,801],[9,582],[2,4,5,8,9,75,284,372,493,617,618,800,801],[640,641],[324],[665],[441],[324],[666,667,668],[324],[669,670,686],[248,493,537,801],[626],[324],[152],[2,3,4,5,9,147,152,160,163,210,248,402,420,431,440,459,582,612,618,623,800,801],[2,3,4,5,9,75,147,148,149,150,152,153,154,239,248,298,402,409,420,618,626,686,800,801],[641],[9],[641],[0,5,38,84,147,213,222,223,226,371,372,431,446,800,801,803],[402,459,489,493],[358],[4,5,7,9,49,50,61,63,64,73,74,84,85,86,87,88,91,92,93,94,96,97,99,101,102,103,109,110,111,112,113,114,115,120,122,123,125,127,128,129,130,132,133,134,142,143,144,147,153,238,248,298,300,389,402,403,500,539,543,548,552,582,626,628,770,773,784,786,788,789,795,797,801],[9,84,113,114,127,152,300,789,793,797,801],[573,577],[641],[2,3,7,37,249,250,251,624,640,641,800],[640],[640,641,802],[359],[5,795,800],[1],[641],[801],[641],[3,4,5,800],[3,152],[641],[640,801],[222,223],[222,223,640],[451,626,801],[788],[441,641],[801],[627],[667],[5],[523,571],[800],[147,643,646,650,674,689,726,729,731,733,739,801],[640,644,645],[801],[2,9],[7,9,86,87,88,136],[1,9,801],[3],[136,147,179,195,243],[576],[1],[411],[27],[640,641,801],[640,641],[197,640],[640],[641],[641],[640],[669],[686,801],[641],[641],[590,641],[282],[2,7,249,251,252,261,263,800,801],[253,613,627,784],[595,760],[7,252,254,255,256,257,258,259,801],[251,252,260,262,326,801],[803],[626,634],[795],[795],[641],[641],[802],[9],[641],[802],[1,3,4,5,9,576,580,581,586,795,797,800,801],[5,152,586,793,797,800,801],[4,5,12,177,178,193,194,226,227,234,235,241,242,392,402,403,425,440,443,445,461,462,468,493,500,509,546,551,557,575,581,590,591,610,621,624,641,755,800,801],[3,800,802],[801],[1],[802],[9],[641],[27,358,590,613,624,629,800,801,802],[2,4,7,8,12,189,226,251,284,393,418,427,510,515,524,549,553,562,581,582,584,587,590,591,595,604,612,800,801],[1],[183],[641],[2,3,4,7,8,9,37,75,83,147,187,212,213,214,215,230,248,351,402,472,514,799,800,801,803],[802],[641],[800],[426],[189,224,800],[426,542,800],[800],[641],[360],[440,468,489,492],[2,7,9,14,84,147,235,250,251,252,255,267,270,277,282,285,322,345,351,355,441,459,481,486,500,629,640,641,693,702,760,774,800,801],[441],[441],[441],[441],[764],[441],[441],[441],[441],[441],[441],[441],[441],[800],[641],[641],[2,3,4,6,170,201,206,641,801],[7,147,800],[3,362,366,380,447,454,582,626],[641],[641],[251],[7,38,172,191,248,640,775,801],[800],[184,801],[182,186],[641],[641],[226,600],[641],[641],[8],[641],[641],[641],[641],[641],[641],[641],[359],[802],[641],[641],[641],[640,641],[641],[641],[441],[641],[641],[641],[641],[641],[7,9,591,640,641],[640],[641],[641],[4,19],[7],[275,299,356,641],[4,8,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,703,705,715,718,756,758,776,778,801],[641],[641],[0,20,38,84,189,388,419,505,576,581,591,613,634,800,801,802],[178,184,194,200,202,205,207,220,222,223,242,379,476,789,801],[801],[184],[2,3,5,8,10,582,587,640,801,802],[38],[216],[641],[641],[641],[641],[641],[800],[641],[351,640],[800],[51],[641],[641],[641],[640],[641],[641],[641],[641],[641],[641],[5],[641],[2,3,8,147,362,614,800,803],[387,418,626,801],[641],[641],[641],[641],[1,2,3,4,5,160,173,248,256,257,280,543,577,582,584,595,607,626,628,631,800,801],[800],[0,641],[2,625,626,629],[629],[396,801],[2,3,426,800,803],[12,147,155,582,587,801],[2,4,8,454,582,641],[5],[641],[641],[38],[150],[1,7,8,9,155,187,211,228,255,326,330,331,333,335,337,339,341,371,373,377,384,392,411,425,509,587,620,626,634,639,656,662,800,801],[802],[2],[641],[134,472],[441],[640],[1,7,402,582,800],[640,800],[2,252,640,706,708,800,803],[173,388,419,505,801,802],[2,3,4,5,7,27,130,131,213,214,215,218,219,228,230,248,372,373,377,388,391,392,400,402,405,406,407,419,424,425,460,463,472,483,489,491,496,497,498,504,505,506,509,593,600,601,602,625,641,643,666,668,674,741,773,778,800,801],[543],[543],[641],[195,800],[544,547],[800],[800],[2,573,574,577,579,580,581,629],[2,573,574,800,801],[800,801],[2,572,573,575,576,577,578,579,580,581,629,800,801,802],[800],[641],[641],[641],[641],[226],[216,640,641,801,802],[411],[641],[641],[641],[641],[641],[7,9,14,640,801],[7,9,113,147,801],[7,9,113,147,800,801],[9],[264,671,801],[264,265,266,671],[641],[641],[641],[641],[2,5,634,756,758,800,801],[640],[641],[641],[14,15],[252,257,640,641],[8,21,214,414,543,546,551,557,640,641],[351],[2,7,388,419,466,505,641,800],[640],[168,169,466],[2,573],[2,4,5,7,8,9,147,184,186,187,248,277,278,279,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,384,387,392,418,425,459,463,509,582,587,610,789,800,801],[801],[362],[2,3,4,7,9,11,38,75,84,134,147,182,183,248,362,392,425,486,509,800,801],[362],[801],[641],[641],[641],[641],[641],[641],[641],[640],[5,8,21,147,170,210,467,543,544,549,556,558,641,760,768,801],[641],[641],[641],[641],[641],[3],[3,4,5,8,9,147,170,171,181,188,196,199,202,203,204,207,208,209,239,245,261,263,268,281,287,289,291,293,295,297,307,310,313,316,319,321,323,328,330,332,335,338,341,344,346,348,350,352,354,361,362,375,386,391,395,401,410,411,417,424,430,439,454,455,456,465,471,472,473,477,479,480,482,523,531,561,571,587,588,591,593,597,599,600,601,609,612,613,614,626,634,637,800,801],[800],[801],[4,214,322,351,800,802],[800],[641],[801],[641],[641],[641],[1,441,641,801],[641],[1,9,641],[797],[13,52,54,56,78,104,106,108,110,124,126,681,713],[756,758,789,793,797],[641],[641],[641],[362,367,381],[641],[134,510],[640],[0,2,4,27,28,69,71,162,165,210,360,411,436,437,452,485,556,582,610,641,760,800,802],[641],[3,7,223,251,252,255,257,259,360,435,437,444,445,448,449,450,452,453,476,481,490,557,558,582,595,640,789,800,801],[4,801],[170,197],[801],[42,44,45,88,90,94,99,472],[641],[641],[641],[641],[641],[2,3,4,5,184,376,377,378,379,380,381,382,383,384,385,386,398,442,472,476,481,560,610,640,641,762,789,800,801],[212,376,377,801],[641],[641],[252,259,640,641],[331,332,333,334,335,336,640],[5],[275,299,326,356,800],[337,338,339,340,341,342,640,801],[2,3,9,27,75,275,286,299,326,356,579,580,629,760,800,801],[641],[9],[274,276,641],[641],[5,7,9,172,173,362,396,397,398,443,457,458,461,462,466,595,640,800,801,802],[364,365,587,801],[227,640,801,803],[9,173,248,443,462,463,466,800,801],[641],[601],[251,640],[641],[641],[641],[441],[641],[641],[641],[802],[441],[641],[643],[365,640,641],[641],[641],[641],[640],[490],[641],[641],[641],[641],[641],[5,641,801,802],[801],[226,801,803],[0,1,5,800,801],[641],[0,147,610,641,801],[641],[1],[2,7,8,9,21,147,152,155,166,793,800,801,802],[641],[7,8,387,393,394,640,641,800,801],[2],[641],[641],[641],[641],[641],[441,444,641],[641],[641],[543],[641],[641],[2,5,641,801],[801,802],[43,46,47],[39,48],[801],[2,7,9,84,189,250,251,270,277,345,355,441,459,500,582,629,640,774,801],[441],[441],[441],[441],[441],[441],[641],[641],[641],[641],[414],[641],[2,248,353,801],[5,84,499,662,663,665,667,669,671,674,678,680,682,684,686,689,691,694,696,698,700,703,706,708,710,712,714,717,720,723,726,729,731,733,735,737,739,800,801],[387,662,663,664,665,666,667,668,669,670,671,678,679,684,685,686,691,694,695,696,697,698,699,700,703,704,710,711,714,720,723,733,734,735,736,737,738,801],[703],[121],[462],[801],[662],[2],[641],[2,3,4,5,7,8,75,147,152,155,210,248,252,418,582,610,611,613,626,628,638,641,800,801],[2,3,4,5,9,147,231,598,611,616,626,638,678,694,696,698,733,737,801],[2,353],[5,210,466,573,634],[2,3,5,9,147,248,298,573,582,628,634,800,801,802],[641],[641],[641],[267,269,270,271,272,273,801],[801],[641],[269],[641],[641],[641],[641],[641],[5,9,14,27,147,376,584,634,655,800,801],[641],[800,802],[222,223,543,640,641],[6,572,634],[802],[0,801],[234,640,641],[4,187,188,626],[641],[641],[641],[4,801,802],[2,493,532,587,589,590,591,593,620,622,800],[801],[152,153,154],[61],[61,801],[641],[446],[441,444,641],[641],[641],[241,640],[626],[640],[618],[251,640],[641],[641],[641],[38],[641],[441],[641],[641],[641],[0,2,3,4,5,7,9,27,28,274,276,440,483,486,582,614,618,626,629,634],[248,274,275,485,799,800,801],[641],[801],[641],[641],[230],[10],[2,7,37,147,248,277,351,483,572,640,800,801],[797],[626,634],[640],[640],[641],[2],[294,295,731],[284],[641],[4,402,493,499,500,801],[4,298,404,408,493,499,501,502,503,801],[640],[3,4,5,8,18,147,186,187,243,359,360,363,364,371,431,469,476,478,499,500,515,524,587,800],[4,186,277,359,801],[186,801],[16],[640],[641],[3,27,28,155,221,231,272,426,506,641,801],[641],[802],[641],[641],[462],[641],[2,3,4,8,155,213,214,446,658,800,801,802],[626,801],[801],[4,27,801,803],[446],[1,3,5,9,243,572,576,579,581,607,629,631,800,801],[1,4,5,6,607,631],[801],[2,3,7,9,219,618,781,782,784,788,801],[2,7,9,38,189,201,206,215,218,219,618,800,801],[641],[800],[802],[800],[1,9,76,134,158,532,595,626,640,641,681,713,800,802],[800],[640,641],[641],[641],[641],[641],[641],[641],[641],[640],[576,580,581,801],[641],[641],[440,641,795],[276,357,393,408,427,492,503,510,641,795,801],[641],[801],[641],[641],[1,8,210,426,612],[224,225],[3,4,5,747,800],[4,27],[641],[168],[641],[641],[641],[641],[641],[251,515,516,517,518,519,520,521,522,523,590,640,641],[640,641],[4],[9],[800],[251,640],[2],[641],[2,573,577,578,579,580,581,800,801,802],[2,581,631,801],[800],[2,573,577,580,581,629,800,801],[578],[2,573,577],[134,641],[641],[641,801],[641],[7,402,641],[2],[641,674,675],[641],[641],[641],[641],[2,3,800,802],[389,641],[641],[2],[446],[601],[221],[3,10],[1,801,802],[2,4,37,800,801],[612,801],[2,4,5,801],[231],[2,3,446],[641],[641],[641],[374,385,641,801],[641],[801],[641],[641],[640,641],[5,547],[544,547,549,641],[582],[228,802],[214,215,756,760],[641],[189,801],[801],[641],[641],[800],[641],[641],[640,641],[9,40,41,42],[9,38,49,801],[5],[21,742],[441],[640],[641],[641],[641],[641],[641],[2,3,5,6,7,9,11,182,184,185,186,224,225,248,251,466,590,628,629,634,654,655,656,760,776,779,780,781,800,801,803],[7,9,229,251],[9,38,50,201,202,203,206,207,208,781,801],[801],[671,672,673],[641],[641],[641],[499],[396],[641],[802],[466,485,488,801],[485,488],[9],[393,427,510,786],[3,9],[9],[152],[180,244],[641,802],[3,4,5,8,27,248,504,506,640,800,801],[3,5,21,22,23,24,25,26,177,193,217,241,366,367,380,381,447,499,543,742,746,762,763,764,765,769,801,802],[10,21,764,801],[2,4,355,396,397,398,400,403,406,494,497,499,500,801,802],[3,4,5,7,396,398,399,401,402,403,405,406,446,486,493,494,496,497,499,500,587,622,786,788,800,801,802],[1,2,5,501,532,573,612,800,802,803],[19,27,372,610,615,637,801],[231],[626,801],[127,129],[3,5,155,411,543],[156,158,358,634,640],[3,4,5,610,803],[3,5,800],[641],[6,548],[2,84,134,147,248,640],[800,801],[800,801],[2,248,298,800],[7],[7,801,802],[640],[1,2,3,7,8,9,37,587,590,691,700,800],[2,3,267],[504],[446],[0,226,800,802,803],[9,388,419,441,505],[803],[800],[647,648,651,652],[76,649,653,800,801],[629],[801],[641],[2],[9],[800,801],[801],[584,800],[800,801,802,803],[800],[634,801],[803],[640],[7],[2,3,447],[2,5],[4,6,8,75,537,587,624,626,634,800,801],[3,802],[801],[1,4,8,358,402,587,627,632,633,801],[4],[4,5],[27,158,641,743,744,745,746,763,766,767,768,769],[27,156,747,765],[2,4,640,800],[75],[800],[457],[0,6],[641],[9,634,642],[634,800],[9,387,634],[2,3,8,182,277,641,800,801],[641],[0,6,9,800],[222,223],[3],[134],[641],[3],[418],[800],[215],[9,643,644,786,800],[7,9],[8],[7,9,800],[5,800],[3,4,5,800],[641],[454],[493,801],[305,572,802],[8,75,155,556,800,801],[75,800,801],[800],[801],[641],[418,641],[641],[5],[803],[544],[463,466,800,801],[418],[75],[3,463,613,629,634],[658],[447,462],[9,250,581],[801],[9,770,784],[2,75,113,617,793],[640],[483,662],[2,84,134,155,387,572,741,800],[9],[75],[641,741],[2,9,393,427,510,800],[2,230],[640],[5,226,803],[2,4,9,147,211,229,248,284,317,342,387,418,445,493,537,557,558,640,789,793,797,800,801],[3,76,537],[362,376,398,467,468,517,518,525,526,554,555,564,565,610,611,801],[222,223,414,457,801],[1,5,9,61,587,620,622,640,801],[2,4,5,6,51,61,103,139,212,420,457,559,587,640,795,800,801],[2,3,4,5,6,7,8,9,10,75,76,77,79,82,83,147,170,171,173,174,175,181,186,188,191,196,197,199,204,209,239,245,246,247,248,251,259,261,263,266,268,273,274,276,280,281,284,286,287,289,291,293,295,297,298,300,303,305,307,308,310,311,313,314,316,317,319,321,323,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,344,346,348,350,352,354,355,357,359,360,361,362,369,374,375,376,383,385,386,387,388,389,393,395,396,397,401,402,408,409,410,411,412,413,414,415,416,417,418,419,427,430,431,439,440,443,454,455,456,458,465,466,467,468,469,470,471,472,473,474,477,478,482,485,488,489,492,493,500,502,503,505,510,513,515,521,523,524,529,531,537,543,548,552,553,559,561,562,569,571,575,576,581,582,586,588,590,591,594,597,603,604,607,609,611,614,615,616,617,620,621,624,625,626,629,631,634,638,658,760,795,800,801,802],[2,281,375,376,386,402,408,456,465,503,582,584,587,591,620,624,797,800,801],[186,189,638,801],[12,16],[802],[2,7,9,364,365],[596],[543,640],[459],[2],[147,517,518,564,565,800],[2,3,803],[802],[801],[4,7,9,251,284,285,389,547,548,641,800],[641],[641],[9],[463],[800],[634],[742,800],[741],[155,174,175,246,247,756,758,776,800],[5,756,757,758,759,777,780,782,789,793,797,801],[779,781],[640],[422],[641],[641],[641],[5,641],[9,686,687,688],[9,613,801],[640],[5,193,801],[801],[640,641],[641],[641],[641],[2,4,360,476,549,558,613],[368,382,558,568,640],[624],[184,224,226,227,587,591,634,801],[801],[226,582,764],[3,7,27,230,500,779,781,800,801],[577],[324,678],[324,694],[678,679,694,695],[447],[324],[324],[641],[2,3,4,581,582,620,628,801],[5,48,68,102,399,582,618,626,800,801,802],[613],[8,83,452,572,582,583,587,590,596,599,615,626,629,634,801],[83,572,582,615,626,634,801,802],[420,587,617,618,619,634],[3],[583],[641],[9],[441],[4,411,634,803],[537,641,800],[641],[641],[641],[641],[641],[308,311,314,317],[641],[801],[801],[641],[5],[7,641],[1,2,4,5,8,9,27,75,76,134,147,168,183,277,284,358,387,402,403,409,452,466,472,556,572,573,584,590,626,629,742,747,760,762,764,770,774,775,783,800,801],[1,5,9,27,147,456,604,629,800,803],[172,418,504,583,800,801],[4,147,800],[803],[183],[8],[641],[641],[641],[641],[8],[641],[641],[802],[271,572,640,641],[641],[641],[641],[641],[441,641],[641],[641],[641],[641],[2],[641],[801],[324],[800,802],[800],[786,787,788,801],[324,801],[3],[641],[641],[3,800],[640,641],[641],[800],[587,590],[641],[641],[5,275,299,356,640,800],[641],[3,4,8,9,27,115,170,177,186,193,197,241,360,396,397,411,426,458,461,559,572,582,610,626,634,747,754,755,800,801],[2,27,147,212,377,545,550,626,627,637,799,800,801],[641],[213],[802],[547,548,640,641],[544,548],[640,641],[641],[3,4,5,9,27,37,152,183,213,298,324,452,472,572,575,582,583,590,591,621,626,629,783,797,800,801,802],[800],[800],[501,629,802],[2,5,8,75,210,418,587,595,598,624,629,800,801],[27,599,801],[641],[641],[641],[640],[743],[641],[641],[493],[5,38,441,493,640,774,775,800,803],[441],[441],[441],[441],[441],[441],[441],[21],[441],[441],[801],[596,640,641],[641],[641],[147],[641],[8,447,641,801],[24,25,177],[24],[641],[189],[8,273,543,640,641,801],[4,801],[273,543,640],[389,543],[2,6,7,10,298,300,387,514,785,786,789,791,793,795,797,800,801],[27,28,172,576,580,581,747,754,755,801],[801],[27,28,29,30,31,32,33,34,35,36,747,748,749,750,751,752,753,754,755,793,801],[27,793],[641],[27,28,33,747,750,789],[640],[189,224,641],[8],[641],[658,801],[472],[4,626],[251],[641],[726,728],[801],[134],[641],[801],[641],[641],[228],[51,103,170,172,182,187,189,197,201,206,252,277,282,387,418,504,577,604,612,629,760,800],[398],[8,641,800],[641],[640],[2,3,4,5,12,28,42,44,75,79,81,88,90,120,122,136,138,147,186,213,234,235,248,285,320,343,376,426,445,462,531,537,556,561,571,575,596,612,620,621,662,747,800,801],[543,801],[3,5,72,74,162,165,543],[396],[3,5,8,9,27,37,147,279,280,298,402,582,629,800,801],[2,7,9,10,28,37,177,193,241,404,405,548,549,617,618,637,800,801],[2,4,8,9,20,27,37,147,403,404,405,406,407,494,495,496,497,498,543,617,618,639,662,800,801],[147],[5,9,582,640],[3,9,147,166,800,801],[324],[640],[17],[213,801],[5,800],[641],[803],[248,275,299,356,801],[275,299,356],[9,287,800],[275,284,285,299,356,640,788,800,801,802],[284,285,287,326,800,801],[641],[197,198,640,800],[9],[228,377,629],[284],[2,284],[13],[543],[641],[641],[147,582,628],[3,9,28,251,411,634,747,789,793,797,800],[559,582,611,616,638,800],[802],[624,801],[5,222,223,389,582,604,605,620,623,801],[641],[800],[803],[591],[222,223],[640],[427,453,801],[770,800],[9,512,543],[17,536,557],[3,6,7,504,506,508,513,800],[504],[641],[7,402,641],[0,1,573],[230],[3,182,213,214,215,389,506],[641],[641],[612,613,614],[612,613],[9],[9,113],[9,801],[324],[6],[2,4,5,8,20,61,63,147,177,193,241,272,273,277,366,367,368,369,370,380,381,382,383,457,501,519,520,521,522,527,528,529,530,545,546,550,551,560,566,567,568,569,570,573,582,595,615,620,626,637,754,793,801],[587,801],[590,801],[641],[587],[5,9,12,133,411,462,582,590,591,599,628,660,661,680,706,708,712,800,801],[388,402,419,505],[2,604,634,801],[2],[801],[446],[803],[801,802,803],[629],[21],[641],[641],[251],[251,640],[251,640],[801],[801],[267,269,640,641],[514,800],[2],[640],[640,641],[9,134,801],[3,5,9,63,134,152,789,793,795,797,801],[3,5,7,9,61,62,67,134,135,136,138,139,142,143,144,145,154,238,411,413,445,543,557,558,610,611,613,789,795,797,801,802],[641],[224],[639,640],[640],[742],[2,7,213,800],[5,800],[2,5,8,9,10,28,37,156,248,274,358,411,418,420,600,612,634,741,747,800,801,802],[640],[4],[800],[3,170,248,800],[800],[441],[27,726,728,765],[324],[248,640,786,800],[3,411,610,800],[441],[641],[641],[12,226,360,474,489,490,557,801],[629,641],[12,186,226,360,426,490],[2,3,4,5,8,147,182,210,248,388,419,452,505,582,598,610,628,637,639,800,801],[801],[191,546,551,557,625],[212,501,801],[228,231,800],[801],[2,84,801],[556],[641],[641],[9],[797],[641],[4,5,226,803],[3],[5,396,629],[232],[629,802,803],[9],[641],[641],[641],[641],[3],[2],[3,415,416,469,470,801],[4,8,9,27,28,29,184,187,188,204,209,248,260,262,305,306,326,422,452,582,587,626,634,649,653,742,747,754,778,800,801],[2,4,27,184,231,248,251,277,278,582,611,616,617,620,638,658,800],[582,784,801],[3,4,27,28,182,267,387,418,504,626,801],[582],[16,773],[218,219],[317,342],[274,276],[800],[537],[579,629],[402,800],[20,483,486],[2,3,640,800],[640],[402,558,756],[721,724],[641],[640],[641],[9,640],[691,722,725],[641],[641],[232],[641],[5,800,802],[0,2,376,573,595,774],[1,2,3,4,5,7,8,9,10,11,75,155,182,572,573,577,582,584,585,586,595,596,600,601,604,611,612,613,616,620,626,634,638,643,646,650,800,801],[0,6,8,9,37,75,147,177,193,241,248,272,273,366,367,368,369,370,380,381,382,383,384,443,493,494,495,496,497,498,501,519,520,521,522,527,528,529,530,545,546,550,551,560,566,567,568,569,570,573,582,587,615,626,637,754,801,802,803],[800],[6],[1,3,4,5,6,9,584,785,800,803],[641],[4],[582,801],[641],[224],[277,640,641,800,801],[641],[641],[226],[2,4,607,631],[641],[641],[2,3,9,37,248,251,267,274,355,418,543,640,641,800,801],[251],[640,801],[298,640,784,800,801],[472,543,640,641],[2,7,190,251,275,299,351,356,532,640,641,800,801],[641],[641],[298,598,640,641,729,730,800],[2],[640,641],[803],[4],[441],[801,802],[801],[8,641],[800],[514,543,800,801,802],[271],[641],[641],[641],[641],[641],[641],[641,801,802],[4],[641],[641],[641],[641],[641],[1,800],[191],[641],[641],[641],[641],[414,415,469,640],[414,416,469,470],[447],[4],[5,443],[2,3],[2,3,5,7,9,27,38,237,248,252,402,441,463,587,624,627,629,640,641,662,682,710,775,795,800,801,802],[441],[402],[441],[1,2,3,4,5,6,8,9,20,61,67,75,106,108,110,112,114,124,126,130,144,186,248,317,342,387,388,389,390,391,400,402,418,419,423,424,431,450,452,489,500,505,507,548,552,557,558,582,603,604,611,616,618,634,638,786,795,797,800,801],[641],[641],[9,803],[641],[2,3,641],[3,800],[4,5,7,37,418,612,800],[640,641,801],[21],[1,2,213,214,402,634,639,800],[422],[446],[446],[221,222,223,493,559],[559],[1,4],[801,802],[576,581,801],[1,2,4,800,801,802],[4,5,800],[640],[8,9,198,461,624,634],[447],[8,634,800],[801],[641],[641],[426,641,765],[641],[224],[9,13,14,27,38,166,213,251,402,403,463,500,573,617,801],[641],[629],[641],[576],[576],[3],[795],[2,3,8,9,20,75,76,114,147,155,162,165,269,271,402,474,476,582,583,584,590,613,620,622,626,627,629,631,632,633,640,760,775,795,800,801,802],[1,3,4,7,8,9,10,75,114,133,147,150,155,160,163,298,305,355,357,358,362,372,376,459,483,572,578,582,583,620,623,624,626,627,629,795,800,801,802],[626],[641],[641],[641],[641],[267],[640],[524,525,526,527,528,529,530,531,640],[640],[2,7,9,274,499,626,629,631,634,789,800],[3,216,640],[4,5,613,641,800,801],[9,182,801],[3,532,584,801],[5,785,801],[9,584],[641],[800],[446],[801],[801],[9,37,38,639,641,800,801,802],[9,641],[7,8,9,170,210,213,587,626,800],[7,170,197,213,214,800],[2,170,171,197,199,213,214],[2,170],[170,197],[5,11,40,41,61,84,86,87,93,120,122,134,147,172,182,397,458,626,640,641,707,709,797,800,801],[224,225,389,545,550,640],[3,4,237,238,582,604,800],[13,191,201,206,227,228,447,461],[187,230,232,233,236,237,800],[227,229,462],[2,170,182,197,800],[147,800],[2,4,75,84,134,760,800],[39],[803],[582],[8],[2,4,5,8,38,45,47,48,56,61,71,84,91,92,101,102,161,162,172,222,223,226,248,360,426,444,485,488,538,540,541,542,582,618,634,640,641,770,772,800,801,802],[9],[277],[7,55,461,540],[641,802],[1],[576],[27],[1],[634],[643,646,650],[227,800],[2,3,10,402,639,800],[7],[3,800],[189],[134,411,573,602,624],[581,595,598,599,600,601,602,603,624,641,797,801,802],[7,147,418,419,420,421,422,426,427,428,800,801,802],[113,800,801],[801],[418,419,420,421,425,428],[418,422,427,801],[800],[420,801],[641,783],[800,801],[447],[800],[800],[2,640,800],[802],[37,147,248,280,629,640,643,646,801],[640],[4,9,235,543,640,646,650,801],[9,643,800,801],[398],[398],[604,640,646,650,800],[2,7,248,251,267,277,278,279,280,281,305,324,326,371,459,572,629,800,801,802],[1,2,3,248,279,280,306,309,627,629,801],[640],[640],[3,9,48,102,216,226,402,618,624,640,800],[789,793,797,800],[40,41,42,45,79,83,86,87,88,93,94,99,136,634,643,645,646,649,650,653,656,801],[472,801],[801],[3,7,38,182,191,248,775,800,801],[7,800],[5,362,466],[1],[189,640],[2],[640],[640],[604,800,801,802],[441,641],[5,800],[640,641],[641],[641],[38],[180,244],[634,654,801],[628,654,655],[166,801],[9,626,634],[628,634],[3,4,8,84,274,393,427,488,510,537,548,582,595,629,680,800,801,803],[462],[681],[641],[403],[641],[197],[3,4],[1],[402,803],[2,4,5,7,8,182,800,801],[641],[559],[4,11,12,75,284,402,409,537,539,634],[2,3,4,5,7,8,9,11,12,13,14,15,16,17,18,19,20,27,37,38,75,82,84,134,147,152,155,166,168,170,172,173,174,176,177,178,179,180,182,183,184,185,186,187,189,191,192,193,194,195,197,198,200,201,205,206,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,226,227,228,229,231,234,235,236,237,238,240,241,242,243,244,246,248,249,250,252,260,262,264,267,269,270,271,272,273,274,275,277,279,280,282,285,288,290,292,294,296,298,299,300,301,304,306,309,312,315,318,322,324,327,329,331,334,337,340,345,347,349,351,353,355,356,359,360,362,363,364,365,371,376,377,379,384,387,388,389,393,396,398,402,409,411,414,418,419,420,421,422,426,427,431,440,442,444,445,446,447,448,449,450,452,454,455,457,459,462,466,467,469,472,474,475,476,478,481,483,485,486,488,489,493,499,500,504,505,506,508,510,515,524,532,538,543,544,549,553,556,557,558,559,562,573,577,579,580,581,582,584,587,590,591,595,596,598,599,600,601,602,603,604,606,607,608,610,612,613,615,617,620,622,623,624,625,626,629,631,634,637,640,641,643,646,650,654,656,658,660,663,665,667,669,671,674,678,680,682,684,686,689,691,694,696,698,700,703,706,708,710,712,714,717,720,723,726,729,731,733,735,737,739,742,747,754,756,758,760,762,764,765,770,774,776,779,781,783,786,789,791,793,795,797,800,801],[2,6,147,362,443,587],[222,223,389],[1],[248,376,445,461,557,558,801],[147],[658],[152,640],[5,641],[640,641],[640,641],[7,604],[47,48,101,102,516,517,518,563,564,565,772],[800],[9],[441],[450],[2,79,81,640,801],[801],[9,30,31,32,33,34,35,36,248,459,629,640],[9,801],[324,682,801],[370,384,522,530,560,570],[215,801],[523,571],[2,634,801],[2,9,15,19,75,800],[2,3,5,10,801],[499],[226,801],[622],[396],[785],[402],[10,582],[0,6,9],[448,491,573,595,627,801],[75,376,418,440,445,459,557,558,587,801],[641],[641],[2,3,800],[641],[682,683,717,719],[682,756,776],[308,311,314,317],[532,764,801,802],[801],[628],[801],[152,634],[634],[16,38,548,800],[2,7,8,9,38,147,155,264,282,288,289,290,291,292,293,294,295,296,297,303,305,633,774,775,800,801],[641],[2,7,9,84,248,282,305,775,800,801,802],[641],[195],[9,800,801],[179,180,195,243],[785],[641],[8,214],[214],[5,40,41,42,45,48,99,102,582,707,709,775],[47,101,776],[9],[214],[801],[396],[641],[641],[641],[641],[641],[641],[7,186,274,279,280,351,640,800,801],[444],[441],[9,37,641,801],[641],[641],[3,5,147,505,684,801],[23,25,479,480,640,802],[684,685],[2,3],[641],[640],[83,485,656],[801],[40,41,42,45,79,86,87,88,93,94,99,136,201,206,643,645,646,650,801],[402,803],[641],[641],[626],[641],[641],[212,801,802],[641],[201,206],[4,5,8,13,27,180,184,186,191,201,206,212,221,227,228,231,244,365,388,419,420,505,580,604,608,624,756,758,800],[4],[211,801],[3,8,214,215,641,801],[800],[8],[2,3,5],[178,242],[1,581,800],[800],[641],[402,801],[641],[447],[641],[641],[641],[147,187,228,229,230,232,233,234,235,236,237,238,800,802],[0,1,2,6,231,238,626,800,801,802,803],[801],[0,5,802],[641],[4,532,799,801],[641],[640],[641],[641],[800],[641],[641],[641],[641],[640],[454],[231],[5,7,9,37,75,77,78,79,80,81,134,151,166,398,488,626,629,641,801],[1,4,5,7,8,9,37,75,82,134,150,151,155,166,801,802],[418],[640],[2,493,532,572,587,588,589,590,591,592,594,620,622,627,629,632,633,640,800,801,802],[2,234,235,572,582,587,590,594,620,622,627,629,631,800,801],[1,2,5,8,9,166,533,573,574,584,641,655,786,787,788,789,790,791,792,793,794,795,796,797,798,800,801,802],[641],[641],[9],[1,2,9,184,785,789,797,800,801,803],[802],[4,147,177,184,217,222,223,362,363,364,366,380,384,402,414,444,445,447,454,499,519,527,544,545,546,549,550,551,556,557,566,625,742,762,764,789,800,801],[462,545,550,640,641],[625],[450,452,537],[641],[4,84,109,151,155,680,712],[150],[6,411,582,634,640,801],[1,3,4,800],[4,57,84,105,572,582,626,627,634,774,795,799,800,801],[626],[396],[211],[231],[641],[641],[4,9],[248,801],[641],[641],[641],[641],[641],[2,3,4,5,9,27,40,42,57,59,61,68,86,105,107,160,161,163,164,201,206,221,411,418,457,459,462,463,464,483,548,582,591,626,629,634,641,646,647,650,651,692,701,784,795,800,801,802],[641],[641],[641],[641],[1,2,3,234,402,404,440,443,456,462,515,523,524,537,553,562,571],[626,641],[2,4,801,802],[3,5,402,610,764,801],[801,802],[9,38,641,801],[641],[801],[641],[641],[641],[127,641],[641],[7,84,127,786],[2],[641],[641],[8,582],[8,626,800,801,802],[444],[15,677,678,679,683,690,694,695,696,697,698,699,705,711,719,725,728,733,734,736,737,738,756,757,800,801],[15,800,802],[15,658,758,776,789,793,797,801],[7,279,280,292,293,641,729],[284,758],[641],[640],[2,4,7,234,486,488,641,800,802],[641],[641],[2,3,4],[3],[641],[641],[641],[641,783],[641],[182],[641],[5],[641],[641],[116],[641],[118,641],[801],[118],[116],[441],[1,2,5,388,419,505,580,582],[2,3,8,14,18,27,147,172,387,418,504,604,629,800],[803],[2,9,16,17,21,61,155,365,445,488,543,557,558,604,632,634,747,795,800],[7,9,27,576,801],[641],[1,3,4,5,8,16,177,178,182,187,193,194,197,198,201,202,203,206,207,208,211,212,213,214,215,216,219,222,223,228,229,230,231,232,233,234,235,236,237,241,242,248,277,318,320,322,343,345,347,349,351,353,411,639,800,801,802],[800],[3,187,212,213,229,317,342,801,802],[591],[8,641],[441],[641],[641],[4,147,448,452,453,801],[3,4],[595,596,597,598,599,600,601,602,603,801],[595,596,601,602,603,801],[641],[0,1,2,3,4,5,7,8,9,10,20,27,38,52,57,58,59,60,61,62,63,64,66,67,70,75,76,78,83,84,104,105,107,109,113,118,119,121,123,125,134,147,150,152,155,168,173,177,182,183,185,186,187,191,193,202,203,207,208,212,213,222,223,224,226,228,229,234,235,241,248,252,272,273,277,280,284,305,306,308,309,311,314,317,320,351,360,366,367,368,369,370,376,377,380,381,382,383,384,389,393,398,402,411,426,427,431,438,442,443,445,452,459,461,462,466,469,476,493,494,495,496,497,498,501,510,514,519,520,521,522,527,528,529,530,543,545,546,548,550,551,557,558,560,566,567,568,569,570,572,573,575,579,581,582,587,595,599,604,607,611,613,615,616,617,620,621,624,626,627,629,631,634,637,638,640,641,642,644,658,681,713,742,754,762,774,775,784,791,793,795,797,799,800,801,802,803],[640],[260,262,282,326,362,575,590,595,621,800],[305,306,309,312,315,396,801],[9,801],[789],[455,467],[177],[641],[4,418],[641],[1,2,3,5,8,38,113,212,226,351,582],[1,2,3,4,8,27,28,29,152,573,581,582,747,800,801],[2,3],[2,5,8,532,573,634,800],[776],[1,2,3,4,27,747,754],[9,147],[271],[216,230,613,800],[2,801],[7,248,305,317,342,483,639,640,801],[3],[641],[641],[618],[803],[5,155,173,212],[488,642],[387,642,802],[641],[1,4,426,640,641,686,765,801],[641],[189,441,801],[7,237,238,248,282],[689,801],[2,4,7,20,237,282,283,284,377,402,800],[4,377,402,483,486,689,801],[20,377],[2,4,20,237,402,483,486,801,802],[347,801],[347],[222,223,641],[641],[640],[1,4,5,532,641,799,801],[641],[640,641],[641,800],[641],[0,447,641],[440],[641],[641],[641],[3,618,641],[641],[641],[641],[629],[462],[21],[641],[641],[641],[9,643],[27,420,422,640,641,747,800],[537],[2,3,4,7,8,12,20,21,27,37,38,75,76,83,147,152,155,167,170,177,189,193,213,214,215,219,224,226,227,241,272,273,279,317,342,360,364,366,367,368,369,370,380,381,382,383,384,388,392,396,411,418,419,420,425,443,448,452,461,463,493,494,495,496,497,498,501,505,509,519,520,521,522,527,528,529,530,543,545,546,548,550,551,557,559,560,566,567,568,569,570,573,575,577,582,583,587,588,590,591,592,594,595,596,604,606,610,611,613,615,616,621,624,626,627,628,629,631,634,637,638,643,747,760,776,800,801],[2,3,4,5,6,7,8,9,20,21,27,37,67,75,76,105,106,107,108,109,110,111,112,116,118,123,124,125,126,133,147,148,149,150,152,155,167,168,170,172,182,187,189,197,210,213,214,248,251,252,277,280,282,284,298,317,342,376,389,396,398,409,411,414,418,420,431,440,456,459,466,478,499,500,504,548,572,573,577,582,583,584,590,591,592,595,598,604,606,607,610,611,612,616,617,618,620,624,626,627,628,629,631,632,633,634,637,638,654,658,760,789,797,800,801,802],[801],[2,3,4,5,6,7,8,9,20,75,76,147,152,155,248,251,284,298,305,317,342,358,387,418,514,572,626,627,642,658,662,785,800,801,802],[147,396,802],[398],[641],[8,147,228,248,326,800,801],[21,155,226],[9],[3,27,187,212,377,501,514,596,624,627,629,637,764,800],[2,3,7,9,27,38,229,237,248,402,463,587,624,627,629,640,775,801,802],[441],[641],[801],[801],[641],[640],[228,593,602],[405,406,407,496,497,498,543],[641],[641],[324,691,801],[4,641],[641],[641],[801],[2,3,37,301,582,626,634,640,800],[459],[384],[801],[3,604,611,616,620,626,634,638,801],[168,626,773,801],[3,5,620,801],[801,802],[802],[641],[2,3],[800],[641],[1,2,5,226,279,280,360,548,582,629,634,747,800,801,802],[4,5,8,20,67,582,618],[27,800],[4,5,640,803],[532],[641],[4,8],[641],[2,532],[641],[640],[641],[641],[801,802],[1,2,501,532,573,800,802,803],[2,4,216,362,493,582,587,618,634,639,800],[2,4,5,9,68,105,107,109,111,123,125,133,148,150,168,197,202,203,207,208,219,238,420,447,448,474,537,546,548,551,557,582,610,611,618,619,620,634,765,800,801],[1,6,182,226,626,634,801],[2],[2,3,4,587],[2,3,587],[803],[641],[641],[76,801],[237,582],[641],[641],[641],[641],[641],[212,217,231,235,236,504],[180,211,212,214,215,216,221,222,223,229,230,244],[4,5,440,613,641,800,801],[0,641],[641],[641],[4,626,801],[641],[2,4,5,548],[641],[641],[641],[1,2,5,12,634,641,800],[803],[641],[0],[641],[2,4,5,7],[441],[801],[802],[1],[641],[398],[641],[9,38,40,41,42,49],[532],[800],[800],[249,251,640],[21,763],[762],[1,4,5,8,244,402],[9,640],[691],[2,320,640,800],[21,177,558,641,767],[9],[4,5,20,402,403,486,493,494,495,496,497,498,800,801,802],[493,801],[641],[9,641],[641],[641],[61,485],[282],[282],[61,799,801],[426,440,443,641],[641],[37,248,640],[641],[641],[626,634],[641],[641],[802],[576],[4,5,6,576,641,799,800,801],[4],[799,801],[189],[641],[5,398,400,402,405,406,407,486,496,497,498,800],[402,403,405,496,497,498],[641],[9,20,27,444,450,483,485,493,506,595,626,640,641,789,801],[640,641],[641],[402,610,640],[37,641],[641],[9],[641],[641],[641],[8,9,86,87,88,136,147,248,641,800],[641],[641],[576],[3],[641],[9,629,641,764],[801],[801,802],[641],[641],[5,610],[221],[221,464,504,508,801],[3],[147,284,582],[3,641],[803],[7],[640],[640],[640,641],[2,9,248,765,800,801],[629],[251,252,640,641],[641],[2],[2,573,574],[641,800],[800],[640],[4,5,450,451,596,626,786,800,801],[3,4,572],[1,2,3,4,5,7,8,9,147,155,187,362,575,582,604,605,606,607,608,609,621,623,624,626,627,629,631,632,633,634,760,795,800,801],[1,2,3,4,8,10,147,572,582,604,607,620,624,626,627,629,631,800,801],[641],[641],[641],[8],[641,803],[641],[75,640,641],[641],[422,641],[800],[641],[226,640,800,801],[641],[641],[641],[3,82,222,223,286,308,311,314,317,360,362,364,365,376,378,398,402,411,440,441,443,445,446,448,452,467,469,493,516,517,518,524,526,535,538,553,555,558,563,564,565,582,610,611,626,800,801],[641],[641],[7,9,17,38,75,182,184,409,411,467,500,584,599,613,658,660],[641],[27,785,801,803],[1,799,801],[641],[765],[640],[7,14,38,765],[640],[7,9,411,637,800,803],[640],[7,641,658,660,800],[641],[608,641,801],[409,410,801],[801],[802],[504],[172,246,610,640,641],[9,543],[185],[1,182,658,801],[0,230],[641],[641],[641],[641],[3],[624,626,802],[641],[641],[233],[624,802],[641],[396],[3],[233],[5,800],[641],[641],[802],[10,147,222,223,801],[641],[641],[324],[572],[9],[1],[5,800],[641],[641],[641],[800],[640,641],[641],[1,4,629],[4,5,360,493,515,800],[3,186,327,329,331,334,337,340,360,415,426,436,445,469,479,483,557,595,640,641],[277,359,479,489],[641],[641],[641],[641],[641],[641],[641],[641],[27,28,34,747,751],[641],[641],[75,801],[801],[1,2,3,4,5,6,8,20,27,75,147,177,193,213,214,227,228,241,273,279,368,369,370,382,383,384,420,446,448,462,484,487,493,499,500,501,502,519,520,521,522,527,528,529,530,537,543,545,546,550,551,556,557,558,559,560,566,567,568,569,570,582,592,596,604,606,607,617,618,624,631,742,747,754,800,801,803],[2,3,8,9,75,147,155,248,426,485,612,626,634,800],[5,800],[791,802],[612],[1,2,4,5,7,224,225,226,501,532,545,550,573,595,612,774,800,801,802,803],[641],[641],[800],[641],[641],[641],[694,695,696,697,698,699],[800],[640],[221,387,640,800],[227,461],[227],[224,227,461,640],[801,802],[214,229],[801],[3,7,641],[641],[641],[2,4],[441,641],[803],[640],[640],[641],[147,238,485],[248,801],[801],[2,582,583,635],[578],[634],[641],[576,581,801],[2,3,4,5,6,7,8,9,27,28,30,31,32,33,34,35,36,40,41,42,44,45,47,57,59,61,68,71,79,81,86,87,88,90,93,94,99,101,105,107,114,120,122,133,134,136,138,139,147,162,165,170,173,177,178,186,193,194,201,202,203,206,207,208,213,214,215,219,226,227,238,241,242,248,270,271,274,280,305,388,389,392,397,398,402,404,405,411,414,419,420,425,443,447,448,452,456,458,461,472,474,476,479,480,485,488,499,500,505,506,509,532,537,541,542,543,546,547,551,557,582,583,587,590,591,595,596,607,610,613,614,618,619,624,626,628,629,631,634,641,643,646,650,689,703,729,731,739,742,747,755,765,770,775,776,789,795,800,801,802,803],[7,114,172,186,448,468,797,801],[801],[801],[178,640],[227,634,800],[640],[2,3,376,379,431,454,493,532,533,534,535,536,537,587,588,590,620,640,800,801,802],[1,2,3,377,532,587,620,800,801],[4],[2,800],[147],[641],[446],[803],[499,802],[187,501,801,802],[472],[800],[7],[2],[5,7,9,166,641,800,801,802],[803],[2,3,240,634,800],[5,662],[800,801],[308,311,314,317],[227,462,802],[5,800,801],[801,802,803],[3],[1,2,3,4,5,6,7,8,9,10,19,20,21,27,28,37,38,39,51,57,59,61,63,75,76,84,85,86,87,88,103,111,113,123,125,128,129,133,134,135,136,142,143,147,152,155,166,169,170,173,177,180,182,183,184,185,186,187,189,193,197,200,204,205,209,210,211,212,213,214,215,216,219,221,224,226,228,237,239,241,244,248,254,255,274,298,305,306,309,312,315,318,320,322,324,343,345,347,349,351,353,355,358,359,372,377,388,393,396,398,402,408,409,411,418,419,426,427,431,440,442,445,454,455,457,459,461,462,463,466,467,468,469,483,485,486,493,501,505,508,510,514,517,518,532,537,543,548,557,558,564,565,572,573,577,578,579,580,582,584,587,594,595,596,598,604,607,608,610,611,612,613,614,615,616,618,620,622,623,624,626,627,629,631,634,637,638,639,640,641,643,646,650,655,658,662,703,706,708,747,756,758,760,762,764,765,775,776,778,785,786,788,789,793,795,797,800,801,802,803],[532],[803],[803],[641],[16],[7,9,166,251,472,580,582,595,620,622,629,800,801],[7,409,623,800,801],[6,8,572,627,801],[1,3,9,287,422,493,800,801],[46,100,162,165,676,677,771,803],[803],[641],[801],[4,411,634,800],[197,582,800],[4,197],[398],[640],[801],[390,391,423,424,459,463,464,504,507,508,603,624,800,801],[423,507,800],[387,418,463],[2],[508,624],[801],[604],[42,43,44,45,46,47,59,88,89,90,94,95,97,98,99,100,101,107,113,265,266,302,472,499,500,641,801],[27,134],[640],[3,212,252,800],[463,800],[11,12,604],[801],[38,84,113],[577],[4],[4,9,67,226,402,501,618,765,784],[431,445,558],[277],[9,801],[324,662],[803],[226],[411,472,610],[640,801],[2,3],[3],[2,3,641,800],[6,10,226,376,493,494,495,496,497,498,587,641],[224,225],[172],[801],[543],[557],[117,636],[117,634,636,801],[634],[9],[641],[800],[2,7,184,226,248,277,305,309,362,376,384,388,419,459,505,801,802],[493],[641,800,801],[800],[5,8,194,211,212],[4],[1,2,3,5,6,7,92,94,95,96,130,134,139,172,248,388,419,466,483,484,486,487,491,505,587,595,639,800,801],[2,5,11,134,140,141,472,634,658,800,801],[443,760,801],[142,143,801],[2,9,172,800,801],[147,184,222,223,360,362,363,369,383,384,402,414,493,502,521,529,559,569,789,801],[3,5,8,186,374,376,385,457,582,610,611,640,641,801,802],[800],[75],[802],[803],[803],[801],[3,476,624,634,801],[3,472],[1,800],[2,3,4,5,8,9,10,51,103,134,211,212,213,214,215,219,237,270,388,389,398,402,419,426,466,468,476,505,543,582,584,598,613,626,629,634,649,653,800,801],[3,4,5,576,800],[212],[447],[801],[803],[183,758,801],[14,15,30,31,32,33,34,35,36,39,59,60,85,108,135,214,230,403,459,582,613,673,677,678,680,685,689,690,692,693,694,696,698,701,702,712,716,719,722,725,726,728,729,730,731,732,733,737,739,740,758,759,782,800,801],[14,38,75,84,134,459,658,691,700,756,776,778,789,793,797,801],[640],[376,801,802],[7],[640,802],[422],[3,598],[166,572,655],[801],[167,803],[803],[173],[801],[398],[9,801],[3,27],[800],[2,9,248,678,694,696,698,733,737,770,800],[640],[640],[398],[7,8,582,607,613,629,631,776,800,801],[1],[9,387],[0,389],[2,3,4,5,8,187,582,604,607,613,620,626,629,631,634,799,800,801],[572,626,801],[402,800],[640,641],[801],[152],[801],[801],[270,271,640],[803],[0,4,803],[456],[801],[6],[800],[640],[3,168],[20,194],[641],[641],[5,801],[27,224,225,441],[212,532,801,802],[426,446,532,801,802],[189],[4,5,170,213,318,320,402,640,800,801,802],[4],[2,170,801],[2,5,7,61,86,87,88,89,93,95,98,105,106,107,108,110,112,118,123,124,126,130,137,147,387,389,390,391,394,395,418,423,424,428,429,430,468,489,504,506,507,508,511,512,624,800,801],[800],[2,5,7,9,84,102,109,111,116,119,121,125,128,129,131,132,387,388,389,392,393,418,419,420,425,427,489,490,491,493,505,509,510,618,800,801],[152],[9,38,84,134,801],[9],[801],[9],[9],[626],[641],[640,801],[801],[641],[152,409],[801],[641],[641,801],[641],[173],[641],[641],[441],[640],[152,409],[800],[4],[0,4,9,84,129,152,543,617,640,793],[9,11,38,75,84,134],[640],[801],[641],[641],[641],[441,641],[2,532],[2,3,379,431,532,587,620],[789,790],[641],[641],[641],[365,801],[801],[4,221,227,800,801,802],[4,173,221,461,462],[3],[3,4,5,173,187,221,227,398,450,452,459,461,800],[441],[3,248,264,277,640,673,800],[641],[641],[641],[641],[640],[641],[640],[641],[802],[641],[3],[641],[5,27,38,147,801],[523,571],[640],[5],[324],[228],[228,504],[3,9,133,134,136,137,138,139,140,145,146,573,577,578,582,583,613,634,635,641,746,801],[801],[639,641,801,802],[37],[641],[3,5,61,133,134,142,144,238,445,543,557,558,578,581,610,611,789,793,795,797,802],[3,4,5,8,9,134],[3,801],[441],[641],[2,3,7,9,76,147,234,557,587,590,591,620,622,629,634,801,802],[2,9,10,155,582,620,801],[641],[641],[641],[641],[641],[641],[640],[641],[641],[641],[641],[641],[1,2,3,4,5,134,212,230,277,582,800],[1,5],[10,19,185,461],[641],[641],[641],[641],[801],[37,251,640,641,800,801],[532,641],[2,7,8,155,532,577,582,583,613,626,627,629,630,632,633,641,760,761,800,801],[2,629],[776,800,801],[212],[2],[641],[641],[641],[4,634],[640],[640],[641],[641],[444],[12,183,185,189,224,226,227,360,575,591,621,791,800],[1,6,7,9,12,182,185,189,224,226,227,461,575,576,591,621,800,801,802,803],[1,10,27,800,801],[641],[640,801],[641],[3,4,402,409,587,640,641,801,803],[3,9,14,184,364,447,488,800,802],[485,488],[3,4,9,27,41,84,87,93,114,131,152,212,389,396,404,405,461,483,486,547,582,618,619,626,634,641,654,793],[4,147,213,214],[626,774],[0,510,799,800,801,802],[168,211,351,641,801],[9],[641],[641],[134,427],[396],[1,4,6,7,8,20,210,222,223,226,358,370,384,387,396,409,411,413,414,474,478,522,530,560,570,610,611,626,634,801,802],[226,401,411,801],[4,168,358,402,440,626],[640],[640],[700,801],[4],[3,7,388,419,460,463,505,765,800,801],[641],[641],[1,2,3,4,5,6,7,147,402,800],[2,3,4,5],[5,398,800,803],[1],[4,7,248,277,582,700],[441,641],[2,3,4,5,8,9,20,86,87,88,136,226,251,256,257,270,285,359,360,426,432,436,445,476,481,490,499,500,557,558,613,640,641,647,651,800,801],[641],[640,641],[641],[441],[800],[641],[5,9,39,85,134,135,626,654,800],[2,3,4,9,16,19,39,84,113,114,144,169,219,269,377,402,411,445,493,538,541,543,552,558,563,610,613,624,625,800,801],[4,10,38,277,539,543,552,610],[641],[641],[2,8,9,244,640,800],[1,2,3,4,5,7,8,9,27,84,113,134,147,152,173,183,186,248,277,300,353,402,411,459,469,476,582,599,610,626,629,634,637,747,783,786,789,791,793,795,797,800,801],[2,5,8,12,212,225,411,426,572,626,801],[2,4,5,9,228,231,248,317,342,393,440,441,640,641,800],[213],[317],[2,3,187,201,206,222,223,248,250,320,351,504,641,800],[2,3,4,5,7,8,9,155,279,315,362,372,376,387,389,418,459,582,604,605,623,624,627,628,632,633,641,800,801],[582],[641],[641],[324],[4,5,213,800,801],[641],[641],[800],[248,501,801,802],[641],[641],[5],[641],[277],[231],[231,504],[231,232,233,801],[214,640,641],[641],[22,23,544,549],[22],[641,783],[7,800],[0,2,4,5,8,9,10,38,75,84,147,152,168,226,231,248,308,311,314,317,393,396,427,466,510,572,581,582,622,626,627,629,632,633,634,774,800,801,802,803],[800],[803],[4],[248,324,801],[21],[324],[8,543,801],[627],[800],[15],[248,251,254,255,262,263,324,326],[324],[2,3,5,7,9,172,173,176,177,178,179,180,181,186,193,194,195,221,227,241,242,243,244,248,267,268,269,270,272,273,327,328,329,330,377,384,387,388,418,419,459,461,462,463,464,466,472,483,501,504,505,538,539,540,541,542,543,546,547,548,551,557,604,625,640,641,800,801],[7,172,173,461,801],[801],[3,462],[2,3,7,172,271,460,462,463,504,543,557,800,801],[234],[4,5,7,612,613,614,615,629,641,800,801],[641,800],[803],[7,595,612,615,629,801],[802],[4,5,213,800,801],[641],[641],[641],[641],[641],[640],[641],[1,2,3,4,5,6,7,8,9,147,157,159,212,248,387,388,389,392,393,394,418,427,428,489,504,505,508,509,510,511,512,544,572,598,620,622,799,800,801,802],[155,639,662,801,802],[7,10,573,595,598,599,600,801],[598],[2,3,7,9,147,248,389,393,510,800,801,802],[7,8],[801],[2],[641],[248,800,803],[641],[1,2,3,4,5,8,9,640,799,803],[641],[640],[802],[324,710,801],[234],[800,801],[797,800],[387,785,801],[9],[641],[155,582,599,615,626,634],[1,755,801],[27],[4,237],[803],[155,582,613,615,616,626,628,634,801],[83,155,582,599,612,613,615,616,626,628,629,633,634,801],[801],[641],[641],[324,703,801],[703,704,705,710,711,801],[9,604,605,640],[3],[641],[801],[1,7,9,27,573,577,640,641],[179,195,243],[2,3,4,8,78,210,228,305,388,419,505,581,582,587,634,637,641,800],[5,226],[3,4,5,629],[7,9,38,84,113,134,152,640,800],[7,9,38,84,134,152,393,427,466,510,801],[543],[3,4,5,168,187,362,363,365,448,449,450,452,466,582,610,620,624,626,800],[641],[459],[2,3,4,5,388,419,505,800],[641],[801],[641],[641],[641],[641,803],[174,194,640,641],[27,174,266,640,641,673,800],[174,175,222,223,234,320,800],[200,201,220,453,641],[640],[284,285,640,800,801],[800],[640],[640],[226,474,490,557],[640],[640],[641],[21,184,362,384,499,762],[640],[641],[641],[640,641],[641],[800],[251,640],[800],[5,800,801],[641],[744],[641,801],[641],[641],[641],[800],[641],[641],[641],[4,5,613,800],[2,4,5,182,277,444,573,582,800,801],[147],[641],[408,493],[2,4,9,168,182,221,224,225,305,388,419,493,505,508,532,587,634,639,800,801,802,803],[2,38,184,189,213,214,248,388,419,505,611,612,616,638,800],[1,5,624,800],[641],[640,800],[641],[641,801],[4,634,801],[634],[572,582,634,801,802],[444,800,802],[634],[27],[641],[485],[3,6,572,800],[38,634],[641],[641],[8],[305,457,576,581,583,641,801],[4,173,238,251,418,443,582,590,591,607,631,800,801],[2,3,4,5,7,8,37,38,248,403,446,626,775,800,801],[641],[5,9,84,111,134,474,617,641,781,800,801],[641],[112],[147,238,797],[797,801],[389],[801,803],[3,4,5,221,440,442,445,448,449,450,451,452,453,582,626,800,802],[3,445,467,610,800,802],[640,641,800],[185,800,802],[75,455],[8,387,389,391,801],[389,581,801],[0,1,2,3,4,5,7,8,9,38,75,147,184,185,186,277,388,419,466,505,595,634,760,800,801],[21,538,800],[641],[641],[641],[641],[641],[641],[248,298,299,300,800,801],[8,9,57,59,61,67,105,107,157,159,160,161,162,163,164,165,212,284,411,775,801,802],[61,285,801],[63,65,67,68,69,72,73,801],[284,801],[641],[620,799],[1,2,7,147,248,275,277,279,280,298,299,300,306,309,312,315,317,318,320,322,342,343,345,347,349,351,353,356,371,376,387,483,629,639,640,643,800,801,802],[1,2,7,248,277,282,483,640,800,801],[2,800],[800,801,802],[298,300,801],[641],[582,803],[4,324,677,706,800,801],[8,623,674,677,706,707,801],[86,87,88,136,250,389,409,411,447,462,472,629,658,705,800,801],[3,4,388,419,505,600,802],[2,573],[2,7,27,186],[411],[2,7,147,537,618,800],[501],[411,412,610,637,801],[411,431,640,801],[411,610],[2,641],[641],[641],[483,640,801],[641],[5,803],[641],[214,640,641,795],[803],[158],[641],[641],[641],[2,641],[2,641],[640,803],[803],[641],[641],[641],[641],[800],[801],[801],[231,504,801],[248,298],[641],[641],[641],[237],[634,643,645,649,653,801],[801],[4],[387,572],[3,572,584,800,801],[4,5,7,9,27,51,84,103,134,582,634,747,754,800,801],[2,3,4,7,9,38,147,152,155,580,582,626,634,774,801,802],[641],[641],[641],[641],[640,641,801],[640],[3,8,54,56,377,532,596,610,629,634,637,742,800,802],[624,626],[641],[641],[641],[641],[640],[16],[800],[5,7,324,676,708,800,801],[2,27,213,214],[4],[582],[641],[641],[641],[5,558,674,676,708,709,784],[800],[610,640],[27,28,35,431,747,752],[9,478,641],[478,479,480,548],[801],[801],[800,801,802],[543],[446],[8],[641],[581],[576,801],[640],[641,802],[324,801],[2,6,7,147,184,186,248,388,419,447,505,639,641,800,801],[3,4,802],[5,800],[2,640],[3,8,277,576,800,801],[402],[160,163,634,801],[2,9,27,800],[784],[27,37,248,783,784,801],[634],[9,147,582,801],[582,587],[7,9,37,147,166,248,628,641,662,800,801],[7,9,37,147,166,248,639,800,801],[532,587],[2,155,764,800],[27,32,789],[641],[641],[349,641,800,801],[641],[641],[182,349,658,800],[641],[27,28,31,747,749],[398],[641],[1,5,37,147,485,488,572,582,800],[641],[641],[641],[610,800],[641],[4,5],[641],[641],[641],[641],[641],[641],[641],[641,801],[641],[641],[2,4,5,228,414,417,800,801],[414,801],[3],[641],[418],[641],[640],[368,369,370,382,383,384,484,487,502,521,522,529,530,558,559,560,568,569,570,640],[641],[641],[801],[800],[640],[2,4,5,7,9,38,155,156,158,248,250,282,317,342,362,387,389,398,402,418,420,440,456,466,485,488,493,504,573,577,582,595,604,618,626,628,634,641,700,795,800,801,803],[2,7,9,640],[38,75,84,121,624,801],[640],[641],[641],[641],[641],[640,641],[641],[2,5,75,106,108,110,118,120,122,124,126,457,539,584,610,619,634,644,666,668,672,673,685,704,707,709,711,715,716,736,788,789,793,797,801],[48,102,516,517,518,563,564,565],[582],[183],[9,38,201,206,248,252,264,277,279,280,285,324,351,420,459,582,624,629,640,672,800,801],[2,640],[641],[641],[2,3,4,5,7,9,27,134,147,251,629,641,660,760,761,776,795,800],[641],[2,5,7,9,147,149,152,154,248,640,641,800,801,802],[2,214,639,801],[662],[398],[640],[800],[800],[398,641],[2,800,803],[2,3,7,228,248,710,800],[396],[641],[641],[3,801],[801],[8,21],[641],[801],[5],[643,650,801],[726,729,731],[411,802],[211,212,226,398],[641],[2,4,5,6,9,10,230,248,411,446,472,577,582,590,591,601,626,629,775,800,803],[2,3,800],[641],[2,3,84],[26],[9],[5,14,26,38,84,472,479,480,641,672,673,685,715,716,736,800],[282],[213,618,640,800],[640],[640],[641],[2,282,641,800],[8,9,127,389,420,624,640,800,801],[2,389,604,605,624,641,800],[641],[573,577,580,581],[641],[5,626,634,776],[0,2,3,4,5,6,7,8,27,109,111,113,128,132,139,148,277,444,456,466,573,582,625,634,641,747,800,801,802,803],[38],[800],[795],[441,641],[2,3,4,5,9,172,364,365,396,457,548,634,758,801],[641],[506,620],[641],[641],[641],[641],[801],[801],[248,274,351,640,800,801],[800],[640],[795],[641],[222,223,300,318,392,425,509,545,550,634,640,641,672,673,685,715,716,736,800,801],[5,9,11,27,30,31,32,33,34,35,36,57,58,59,60,61,62,75,105,106,107,108,501,541,542,546,551,557,575,610,621,623,624,625,629,658,660,789,797,800,801],[545,550],[9,623],[290,291,801],[3,9,147,170,187,189,201,206,213,215,248,306,309,388,419,505,582,595,608,612,639,640,800,802],[800],[284],[640,641],[801],[641],[4,147],[1,2,9,37,134,166,184,640,756,765,776,801],[3,5,84,170,187,193,197,212,377,403,411,461,501,514,532,559,584,595,599,610,641,658,747,764,797,801,803],[641],[573,577,628],[641],[576,581,595,640,641,801,802],[2,640],[2],[3,800],[211,234,235,801],[640],[640],[789,797],[283],[2,3,4,5,8,9,14,15,18,27,32,48,65,85,102,135,147,152,168,234,235,248,279,280,389,399,402,418,420,421,426,429,448,449,452,543,579,582,592,595,596,604,606,607,613,617,618,620,625,631,634,640,641,665,666,667,668,669,670,674,675,681,684,685,689,690,703,704,710,711,713,715,716,726,727,728,729,730,731,732,735,736,739,740,784,800,801],[2,4,7,418,427,428,575,582,587,595,604,621,624,800],[3,4,5,8,187,279,280,418,420,422,424,448,449,452,575,582,587,592,596,599,604,606,607,617,618,619,620,621,623,624,629,631,634,800,801,802],[618,801],[4,27,183,234,235,237,238,331,334,337,340,418,422,426,582,617,619,641,716,720,723,770,773,774,789,793,797,800,801],[3,582],[2,283],[10,662,663,801],[27,581],[801],[617],[641],[444],[14,228,629,640,641],[789,797],[226,789,797],[170,213],[213],[3,801],[800],[800],[160,163,376,801,803],[3,620,801],[3],[634],[641],[641],[14],[641],[84,499,712,801],[713],[641],[9],[0,1,2,3,4,5,6,7,8,9,10,11,15,18,19,20,26,27,28,30,31,32,33,34,35,36,37,38,39,40,41,42,44,45,47,48,49,50,51,59,61,63,65,68,69,71,72,73,75,76,82,83,84,85,86,87,88,90,91,92,94,99,101,102,103,107,113,114,130,134,135,136,138,140,141,142,143,144,146,147,150,152,155,156,157,158,159,160,161,162,163,164,165,167,168,169,170,172,178,186,187,194,195,197,201,206,210,211,212,213,214,215,216,218,219,222,223,224,226,234,235,237,238,242,248,250,251,267,269,270,276,277,281,286,288,289,290,291,298,300,302,303,305,315,317,326,342,351,353,357,359,371,375,376,377,378,384,386,387,388,389,390,391,392,396,398,399,400,402,408,411,415,416,418,419,422,423,424,425,426,440,441,442,443,445,446,449,450,452,454,456,459,461,462,463,464,465,466,467,468,469,470,472,475,476,481,485,486,488,489,493,500,503,504,505,506,507,508,509,513,531,532,534,535,539,543,544,546,548,551,552,557,558,561,571,572,573,575,576,581,582,584,585,587,588,590,591,594,595,601,603,604,605,610,611,612,613,615,617,618,620,621,622,624,626,627,628,629,634,636,637,640,641,649,653,655,658,660,662,663,665,667,669,678,682,683,684,686,689,691,694,696,698,700,703,705,706,707,708,709,710,716,718,719,720,721,722,723,724,725,726,728,733,735,737,739,741,747,748,749,750,751,752,753,754,761,770,771,772,774,784,786,793,795,797,799,800,801,802,803],[4,147,228,231,418,641,801],[4],[641],[641],[801,802],[2,61,177,178,180,194,241,242,540,755],[441],[210,231,585,588,634,800],[641],[640],[641],[641,801],[7,234,641,800],[641],[21,177,641],[641],[640],[640],[800],[47,71,101,147,402,531,561,571,613,614,626],[7],[1,2,3,4,5,6,8,9,20,27,28,37,38,75,79,83,86,87,88,136,147,157,159,177,189,193,194,198,222,223,241,248,251,358,364,365,388,396,398,411,418,419,440,445,456,457,461,463,472,483,485,486,493,494,495,496,497,498,505,531,532,557,559,561,571,576,581,582,591,595,611,613,616,620,624,626,628,634,638,641,649,653,747,754,789,793,797,800,801,802,803],[2,9,69,72,147,156,402,431,611,616,624,626,638,641],[641],[1,2,3,4,5,7,8,9,11,12,27,69,84,109,111,115,118,127,129,147,155,172,184,212,213,214,248,277,389,402,420,426,440,446,462,463,466,485,488,538,543,547,548,573,582,604,605,610,613,617,624,626,634,641,747,770,795,799,800,801],[27,572,626,634,800,802],[396,532],[641],[641],[641],[800],[2,3,4,5,8,9,27,68,71,75,83,109,114,147,160,162,163,165,170,197,213,215,227,248,377,403,443,463,541,542,543,546,551,557,573,578,582,583,584,624,627,628,634,637,654,800,801,802,803],[440,459],[234],[324,640,801],[248,324,640,801],[637,801],[1,2,4,640,641,801,803],[3],[182,189,640,801],[2],[187,228,229,230,231,232,233,234,235,236,237,238,800],[38],[803],[801],[801],[3,5,7,9,38,75,84,134,152,324,325,326,360,543,640,800,801],[7,9,324,800,801],[641],[641],[173],[403,800],[271],[641],[800,801,802],[462,800],[462],[186,426,624,800,801],[2,5,8,9,75,147,182,252,326,331,333,334,336,337,339,340,342,489,515,524,553,562,587,634,649,653,776,800,801],[582,634,726,765],[3,802],[21,641],[641],[427],[27,37,128,134,142,143,211,408,445,493,557,558,618,634,800,801,802],[801],[800],[224,225,545,550,800],[444],[468,476,481,542],[109,111,161,164,414,640],[801],[624],[641],[801],[800],[641],[1,2,3,4,8,9,11,27,83,115,147,157,159,213,224,226,239,248,387,388,402,418,419,438,467,505,582,590,620,626,629,784,799,800,801,802,803],[3,4,5,629],[5,7,9,30,31,32,33,34,35,36,362,396],[641],[4],[641],[493,500,610,611,640],[155,224,472,594,604,608,620,621,622,623,624,625,634,801,802],[594,604,608],[620,801],[2,3,7,9,75,226,282,402,409,581,582,584,626,634,643,646,650,658,800,801],[1],[184,370,384,522,530,560,570],[248,634,640,802],[6,7,9,38,75,84,134,176,181,221,267,268,271,329,334,340,372,373,406,407,426,436,437,438,454,497,498,504,579,640,641,801],[334],[801],[340],[801],[221,801],[641],[472],[455,641],[176,177,178,179,180,329],[801],[587,776,801],[4,254,255,426,590,629],[271],[0,6,7,9],[641],[2,3,4,5,7,9,147,248,365,440,459,582,610,616,634,797,800,801,802],[4],[641],[641],[7,347,353,579,640,641,795],[641,800,802],[800,802],[369,383,431,439,502,521,529,559,569,641,800],[27],[27,184,384,431,432,433,434,435,436,437,438,800],[641],[641],[1,2,3,4,5,147,227,267,269,270,271,272,273,277,358,360,362,364,365,396,398,440,442,443,444,445,446,447,448,449,450,452,454,455,456,457,458,462,463,467,468,469,486,538,572,579,582,583,595,596,610,613,620,625,626,631,641,800,801,802,803],[396,443,457,582,800,801],[641],[3,4,37,362,398,440,447,448,456,582,583,587,595,613,641,801,803],[273,543],[641],[641],[2,9,139,140,141,144,145,146,800],[640],[228,284],[3,9,113,134,135,144,801],[641],[641],[641],[641],[641],[641],[2,3,5,800,801],[2],[656,657,801],[656],[1,2,3,4,5,441,455,641,800],[641],[641],[1,800],[3,4,5,7,173,187,221,227,388,398,419,450,452,459,462,463,505,800,801],[641],[2,3,4,7,172,173,221,371,376,459,462,463,464,465,466,483,485,488,800,801],[3,377,387,418,461,462,463,493,795,800],[640],[800],[2,3,4,5,12,147,384,388,419,472,479,480,505,604,610,613,614,618,620,624,770,776,801],[3,5,6,8,12,118,147,402,438,493,801],[7,466,486,795,800],[640],[422,467,468,517,518,525,526,554,555,564,565,624],[2,3,4,9,84,134,147,275,282,299,356,800,801],[282,640],[2,7,84],[641],[641],[641],[795],[183,801],[756,758,786,795],[801],[801],[9,801],[800],[2,3,6,27,136,138,170,183,187,197,248,251,267,387,418,607,613,631,641,662,689,739,800,801],[641],[640],[7],[5,8,167,182,582,626,634],[618],[0,73,195,224,326,626,628,634,801],[501,641],[2,5,9,15,75,147,155,248,389,411,582,626,634,644,770],[2,4,5,8,9,75,280,499,500,591,607,631,800],[641],[4,5,634],[3,48,102,210,575,621,800,801],[641],[193,801],[5],[2,5,9,533,543,544,545,546,547,548,573,574,787,790,792,794,796,798,801,802],[543,545,801],[4,9,29,38,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,68,69,70,72,73,74,420,543,582,592,604,606,617,618,619,801],[38,224,227,543,801,802],[641],[641],[641],[2,3,532,584,585,764,800,801,802],[1,800,801],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641,783],[641],[641],[641],[640],[640],[641,803],[641],[431,596,624,626,640,801,802],[18,640],[2],[629],[359],[800],[629,801],[641],[9],[4,27,398,800,801],[714,801],[640],[801],[714],[716],[640],[640],[641],[641],[641,803],[800],[9],[2],[640],[641],[501],[800],[427,543],[396],[279,280,640],[613,641],[641],[3],[1],[7,248,252,271,272,493,640,641,662,801],[641],[2,641],[802],[581],[641],[641],[641],[75,641],[800],[641],[640],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[224,225,532,587],[573,577],[641],[641],[641],[801],[641],[4,7,226,248,454,467,468,469,471,523,531,561,571,641,800,801],[68,268,396,454,467,468,469,470,610],[3,168],[801],[461,801],[10,155,489,726,728],[2,3,27,389,791,800],[454,800,802],[640],[641],[27,802],[4],[454],[641],[641],[641],[803],[641],[641],[641],[641],[641],[641],[5,147,193,226,626,803],[221,228,462],[0],[803],[214,229],[800],[800],[514,802],[641],[641],[4,5,418,634,640],[27],[2,3,4,532,801],[235],[641],[7,538,539,547,548,552,640,779,780,781,800,801,803],[641],[15],[270,640,641,800],[803],[8,16,248,542,544,547,548,549,613,641,776,801],[641],[641],[641],[803],[803],[641],[803],[641],[800],[543,548,549,550,551,552,801],[543,550,801],[802],[641],[641],[9,93],[641],[641],[641],[3],[800],[408],[152,153,617],[48,59,102,107,147,178,194,242,467,468,615,626,634,641,801],[2,147,149,152,153,248,431,612,770,800],[254,255],[222,223,254,255,801],[414],[14,459,619,704,711],[9,27,226,360,490,611,616,638,800,802],[16,802],[641,801,803],[641],[641],[641],[641],[641],[446],[641],[641],[641],[640,641],[641],[641],[641],[717,801],[683,717,718,719],[5,8,9],[641],[312,426],[640],[324],[0],[634],[800],[641],[148,447,800],[640],[7,640,801],[2,8,248],[9,372,373,406,407,436,437,438,445,497,498,557,558,800],[640],[248,298,595,801],[2],[269,285],[15],[372],[8,214,324,543,800],[324],[582],[201,206,596,800],[211,426,581],[5,248,619,640,641,800],[4,800,801],[617,618],[641],[604],[396],[802],[418],[800],[3,801],[3,134,136,641,797,801],[441],[446],[3],[3,800],[641],[3,384,800,801],[801],[801],[1,2,4,742,764,801,802,803],[2],[800,801],[1,3,4,5,6,216,626,634,760,801],[5,629,801],[440,459],[212],[640],[802],[641],[641],[800],[3],[3,7,402,800],[447,641,742],[182],[641],[1,456,620],[802],[802],[211],[803],[802],[9],[641],[4,5],[634],[398],[459,634],[396,800],[626,634,800],[211,224,225,662],[444],[2,75,147,182,462,643,646,650,659,775,800,801],[3,7,11],[2,26,109,111,441,629,640,641,656],[121,510,640,801,803],[447],[624],[801],[499],[801],[9],[418],[1,10,800],[803],[8],[641],[0,2,3,4,5,8,396,800,801,802],[641],[9,801,802],[581],[803],[488,640],[640],[800,802],[764,801],[3,8,147,156,440,456,459,493,801,802],[8,147,215,219,226,237,447,452,461,462,463,801],[235,640],[799,801],[2,3],[801],[543],[277,582,629,640],[579],[2,4,5,75,248,403,610,800,802,803],[4,8,75,398,491,637],[2,7,9,10,21,38,147,194,284,610,615,637,800,801],[27,403,800],[640],[576],[801],[641,803],[576],[4,800],[795,797],[5],[641],[641],[641],[640],[3,226,640,801],[147,800],[5,21,641],[5,6],[3,658],[641],[91,147],[641],[2,3,4,5,493,597,641,800],[3,801],[3,800],[641],[802],[629],[800],[2,532,640,803],[499],[499],[499],[640],[800],[640],[37,251,483,640,801],[686],[251,640,801],[640,641],[441],[640],[83,615,626,801],[83,155,572,582,613,615,626,627,628,634,801,802],[640,641],[8,9,640,641],[640],[5,800],[3,184],[802],[38,800],[720,801],[640],[7,38,189,190,191,640,801],[2,189,191,224,248,800,801],[720,721,722],[7,37,38,248,488,640,641,801],[641],[641],[641],[641],[803],[641],[17,678,694,696,698,733,737],[302,303,305],[558],[641],[641],[147,184,248,362,368,382,384,402,493,515,516,517,518,558,568,590,801],[778],[4,462],[641],[641],[641],[641],[641,682,717],[205,206,451,641],[441],[641],[641],[168],[2,442,466,469,474,680,712,762,770,771,772,800],[801],[446],[213],[800],[581],[532],[641],[2],[219,800],[18,19,20,215,279,280,523,571,610,640,800,801],[582],[756,801],[2,7,182,183,184,186,238,384,590,775,791,800,801,802],[641],[641],[641],[640],[640],[182],[182],[0,610,640,801,803],[582],[189],[178,194,242,582,634,786,789,791,793,795,797,801],[5,800],[4,15,193,626,641,801],[802],[626],[595],[2,800],[2,8],[641],[800],[3],[641],[3,8,420,610,616,624,634],[5],[398,604,629],[248],[2,248],[6],[801],[641],[640],[641],[7,16,19,82,147,222,223,360,366,367,368,369,370,380,381,382,383,402,414,445,489,519,520,521,522,527,528,529,530,545,550,553,556,557,558,559,566,567,568,569,570,640,800],[366,367,368,369,370,380,381,382,383,384,519,520,521,522,527,528,529,530,545,550,553,554,555,556,557,558,559,560,561,566,567,568,569,570,640,800],[800,801],[803],[802],[641],[8,21,147,193,197,217,241,273,543,557,558,598,641,760,766,774,800],[409],[193],[193],[3,8,800],[801],[446,640],[628,801],[463],[800],[801],[7,493,577,613,629,631,760,800,801],[8,9,147,376,493,626,754,800],[0,2,3,6,7,147,472,573,576,578,579,581,613,629,631,640,800,801],[2,493,629,801,802],[280,573,607,629,630,631,760,801],[2,280,577,581,595,607,627,629,631,801],[572],[155],[801],[801],[640],[641],[801],[186,590],[8,38,61,155,774,775],[225,398],[802],[641],[4,5,8,38,155,187,214,308,311,314,317,548,633,774,775,800],[455],[629],[4,5,147,582,800,801],[19,640],[2,3,4,16,19,178,194,216,219,242,269,286,360,402,467,468,483,486,517,518,525,526,539,548,552,554,555,558,564,565,613,624,800,801,802],[624,801],[10,37,162,165,192],[801],[641],[800,802],[641],[800],[723,801],[801],[4,9,723,724,725,800],[4,20,114,364,398,402,483,486,800],[595],[4,147,634],[641],[641],[801],[2,93,97,98,145,801,803],[146,282,624,626,801],[69,72],[801],[801],[802],[4,440,459,764,800],[2,4,182,200,205,543,584,585,618,800],[201,206],[800],[226],[9,72,472,473,600,641,801],[389,404,405,617,618,619],[69,72],[472],[2,3,8,38,65,67,506,634,774,801],[618,800,801],[65,67,800,801],[65],[5,9],[803],[2,3,4,532,800],[1],[800],[27,75,658,801],[15,27,75,658,659,801],[649,653],[144,618,786,795],[27],[5,742],[802],[4,213],[3,801],[75,628,801],[800],[396,398],[4,629,800],[801],[2],[582,596,801],[610,626,634],[2,626,627,634,801],[212,654],[467,541,542],[3,27,147,440,441,629,800,801,803],[2,3,27,185,548,610],[402],[4,8,9,222,223,438,445,557,558,582,626],[641],[8],[308,311,314,317],[641],[2,3,75,147,173,182,228,582,626,627,628,634,774,786,800,801],[5,9,65,69,73,83,152,166,532,613,634],[9,19,221,228,581,587,622,629,634,786,800,801],[9],[184],[89,137,411,626,800,801],[2,3,7,8,38,44,67,81,82,90,93,97,106,108,110,114,120,122,124,126,128,132,138,139,145,147,280,591,607,611,616,624,631,634,638],[61,63,83,113,611,616,634,638,729,731,739,791],[5,9,30,31,32,33,34,35,36,42,49,50,57,59,61,63,65,69,73,79,86,87,88,105,107,109,113,123,125,136,142,143,144,148,150,153,154,160,163,411,499,500,582,634,660,689,739,754,789,797,800,801],[1,5,800],[4,5],[84,128,640],[396],[200,499],[128,640],[640,641],[800],[2,3,4,5],[803],[455],[641],[641],[641],[802],[641],[184],[4,21,402,444,447,454,742,764,765,800],[641],[641],[2,640],[641],[641],[444],[501,801],[641],[2,3,4,5,8,9,20,147,226,251,254,255,258,259,270,277,285,359,360,426,434,436,445,449,452,467,472,476,490,499,500,557,558,626,634,640,641,648,652,789,800,801],[640,641],[396],[640,641],[641],[641],[640],[802],[641],[641],[641],[641],[641],[604],[641],[641],[641],[641],[641],[3,320,343,582],[641],[641],[301,302,303,304,305,584,735,736,795,801],[300,801],[641],[641],[17,272,454,474,475,476,477,801],[474,476,640],[17,272,475,476],[2,282,296,297,368,382,543,558,568,641,726,727,729,730,731,732,800,801],[640,801],[5,298,404,407,408,493,495,498,499,500,641,786,800,802],[641],[4,5,298,300,402,403,404,405,407,486,495,496,498,786],[248,351,640],[640],[774],[640],[226,490,801],[640],[640],[640],[801],[640],[802],[641],[801],[3,4,5,7,8,75,210,372,418,545,550,575,584,587,595,612,621,629,634,774,800,801,802],[641],[3,4,5,7,8,75,76,147,155,158,210,248,362,440,459,584,587,598,637,774,800,801,802,803],[1,4,801],[641],[641],[226,447,800],[640],[182],[641],[441],[641],[803],[641],[641],[641],[641],[641],[641],[641],[641],[641],[229,641],[641],[641],[444],[2,4,5,7,9,27,84,128,132,134,147,162,165,168,229,298,360,371,402,411,426,445,543,547,587,590,595,626,634,800,801,802],[641],[641],[641],[211,213,214,229,234,235,345,801],[641],[641],[641],[641],[641],[641],[641],[459],[641],[641],[4,800],[2],[3,4],[641],[641],[641],[573,577,582,634],[18,284,285,478,481,482,800,801],[18],[285,641],[285,479,480,800,801],[641],[801],[613],[641],[0,398,803],[1],[797],[641],[641],[4,8,9,75,147,800,801],[4,147,801],[641],[641],[641],[641],[8],[800],[641],[801],[2],[641],[312,315,426,640,801],[3,4,5,6,7,8,9,11,37,38,75,84,113,134,147,152,166,248,466,800,801,802],[226,251,254,255,260,261],[641],[801],[641],[3,52,58,60,62,64,66,70,104,184,212,572,626,801,802,803],[801],[106,108],[57,59,61,63,105,107],[641],[324],[2,3,4,6,27,28,36,147,315,371,418,483,548,582,624,626,641,646,648,650,652,693,702,747,753,800],[800],[454,641],[640],[2,3,4,5,572,604,606,623,626,629,640,799,800,801,802],[180,244,582,604,607,631,801],[802],[2,3,4,7,8,20,37,63,75,147,177,193,241,272,273,277,359,366,367,368,369,370,380,381,382,383,384,494,495,496,497,498,501,519,520,521,522,527,528,529,530,545,546,550,551,560,566,567,568,569,570,582,587,595,607,612,615,620,626,631,634,637,641,643,774,776,800,801,803],[641],[2],[2,3],[409,414,626,634],[8],[800],[2,8,156,234,248,587,800],[8,37,800],[4,155,187],[158,161,164,248],[3,4],[4,8,147,150,151,155,160,163,583,620,626,627,632,633,774,801,802],[8,147,155,156,157,158,159,162,165,801,802],[213,214,215,784],[641],[640],[214],[640],[9,248,298,640,801],[9,298,801],[640],[2,168,634],[2],[9],[3,5,184,248,277,278,362,398,506,587,801,802],[2,5,9,84,134,147,248,298,388,419,505,784],[587],[788],[130,131,506,600,601,801],[2,7,38,84,168,211,387,418,504,617,618,706,707,708,709,770,797,800],[7,38,182,248,775,797],[595],[1,156,158],[3,4,5,8,194,211,212,343,345],[641],[4,5,226,803],[640,803],[640],[803],[1,2,3,4,5,7,8,18,75,76,120,122,147,173,177,179,186,187,189,191,193,194,197,198,200,205,210,211,212,214,216,217,218,219,221,222,223,224,226,227,228,229,230,231,234,235,238,241,248,267,269,270,271,272,273,275,277,279,280,299,353,356,359,360,362,363,364,365,371,388,389,392,396,398,402,411,418,419,420,422,425,426,431,440,441,442,443,444,445,446,447,448,449,450,452,454,455,459,461,462,463,467,469,472,476,478,500,505,506,508,509,515,524,538,543,546,551,558,575,580,581,582,584,587,590,591,595,596,598,600,601,602,603,604,606,607,620,621,623,624,625,626,629,631,634,637,640,755,760,774,789,800,801,802,803],[2,230,238,445,557,558,582,634,800,801],[3,147,801],[3,4,12,170,224,226,227,228,229,231,232,233,236,237,501,556,590,620,624,801,802],[4,801,802],[3],[582,641],[155,800],[172],[641],[803],[803],[4],[641],[641],[9],[2,3,578],[641],[641],[641,801],[641],[2,10,377,801],[1,5,587,590,800,801,803],[801],[641],[543],[543],[641],[641],[450,800],[640,641,801],[641],[202,207,220,379],[640,641],[641],[641],[441],[641],[641],[641],[641],[641],[641],[641],[641],[2,9,27,388,419,505,640,801],[641],[7,801,802],[179,195,243,800],[7,248,371],[800,801],[641],[641],[3],[2,3,4,5,7,8,75,76,147,155,170,183,184,187,197,248,267,362,371,372,459,463,485,572,573,575,587,598,599,612,621,629,634,760,774,800,801,802],[803],[2],[641],[801],[2,3,9,155,614,629,800],[2,9,212,587,634,801],[641],[641],[443],[641],[2,201,206],[641],[641],[641],[641],[2,3,8,9,86,87,88,136,147,277,431,432,433,434,435,557,558,563,634],[2],[69,71,431,438,439,445,485,557],[359],[640,801],[1,5,9,18,27,418,472,640,641,800,802],[641],[396],[7],[213,214],[801],[2,277,604,800],[641],[634],[21,363],[134,147,212,634,800,801],[2,3,213,800],[2,7,84,462,488,581,634,641,800],[0,210,596,801],[267],[2,170,172,197,388,419,505,547,626,634,800],[158],[324,733],[324,801],[4,5,134,211,213,800,802],[696,697,733,734],[2,4,5,7,9,75,116,127,172,186,191,231,248,282,396,402,403,445,446,456,466,500,578,610,640,784,786,788,800,801,802],[324,696],[152],[147,801],[641],[441],[3],[582,618,640,641,765],[426],[640],[1,3,4,5,10,16,114,203,208,216,222,223,228,229,231,284,285,286,305,306,307,309,310,312,313,315,316,362,370,376,384,400,402,403,411,412,441,445,493,522,530,531,557,558,559,560,561,562,563,564,565,570,571,610,611,637,801],[4,20,376,377,398,402,403,414,468,515,524,553,562,800,801],[3,4,305,376,402,403,404,405,494,495,801],[402,494,495,801,802],[641],[641],[641],[641],[641],[641],[641],[800],[582,641],[397,458],[421],[9,180,195,244],[641],[641],[801],[213],[236,237,282,504,640,800,801],[236],[641],[641],[641],[641],[641],[45,47,99,101,641],[641],[641],[641],[221,634,641],[641],[641],[641],[629],[3,4,184,187,188,212,626,640,641,800,801],[4,5,8,187,450,626,800,801,802],[14,114,200,205,312],[315,459],[7,12,189,191,224,254,255,800,801],[801,802],[2,254,255,800],[191],[7,189,191,224],[640],[187],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[641],[5,803],[641],[640,641],[641],[629],[2],[543],[640],[3],[800],[398],[7],[3,5,9,13,212,590,634,801,802],[8,187,229],[800],[573,577],[2,573,641,800,803],[9,800,801],[3],[133],[132,801],[641],[640,641],[3],[641],[1,2,447,641,655,800,801],[573,577],[640,641],[2,3,4,7,20,21,27,215,218,219,248,277,364,387,400,402,411,424,463,472,475,483,486,506,595,601,604,625,640,760,764,800,801,803],[388,419,505,602,800],[2,800,803],[3,219,371,372,373,388,391,392,419,425,431,459,460,463,474,476,483,484,485,486,487,488,489,491,504,505,509,543,557,595,639,800,801],[483,485,486,488],[640,641],[641],[7,269,504,802],[801],[269],[232],[641],[641],[641],[5,641],[641],[640],[641],[641],[641],[2,3,7,10,134,147,248,298,582,800],[10],[2,7,9,21,76,155,228,230,235,590,622,742,799,801],[774],[2,3,4,5,8,9,14,27,28,42,51,53,55,57,59,61,63,65,73,77,79,88,94,97,103,136,186,211,280,402,431,493,552,591,607,610,612,631,703,726,764,800],[27],[624],[2,3,4,5,27,152,182,402,403,584,590,591,604,747,764,800],[4,5,10,27,147,431,543,587,624,784,801],[485],[641],[641],[641],[431],[802],[640],[640],[641],[641],[641],[641],[641],[641],[641],[0,4,9,38,73,74,183,774,800],[73],[641],[641],[803],[803],[803],[641],[641],[641],[640,800],[641],[641],[5,152],[248],[641],[641],[640],[279,280,304,493,735],[2,3,9,27,75,300,304,305,442,467,476,543,562,563,564,565,566,567,568,569,570,571,579,629,640,641,735,736,742,762,764,789,800],[640,641],[801],[641],[640],[2,640,800],[641],[4],[21,764],[640],[230],[230],[315],[205],[626],[658],[474,489,492,543,557],[490],[641],[641],[803],[783],[213,641],[3,37,231,441],[641],[359],[596,640,641],[800],[4,197,641,800],[1,2,4,7,45,46,48,54,61,71,99,100,102,117,147,164,165,186,226,248,360,387,421,426,485,488,539,540,543,547,573,582,604,770,771,800,801],[1,2,5,8,800,802],[6,14,32,277,389,418,499,500,504,577,604,605,624,800,803],[6,7,27,53,466,582,604,612,801],[803],[5,83,582,599,615,626,628,634,635,636,800,801],[634],[4,5,441,800],[9],[634,801],[801],[134],[641],[641],[801],[476],[8,9],[801],[801],[641],[641],[641],[640],[2,418,532,582,762,770,773,800,801],[582],[582,800],[1,582],[641],[641],[0,3,5,8,9,193,248,362,409,414,452,461,582,623,634,797,800,801,803],[641,802],[640,641,800],[641],[9,14,15,634,641,747],[27,747],[641],[617,634,776,779,781,801],[4,547,641],[641],[641],[641],[444],[215,537,800],[801],[537],[215],[193],[640],[640,704,711],[192,193,194,195,196],[192],[2,3,5,7,8,9,29,38,39,40,41,44,45,47,48,49,50,51,53,54,55,56,57,58,59,61,63,65,67,68,69,71,72,73,75,134,155,169,175,247,543,582,583,590,595,613,614,617,629,633,634,654,655,658,659,661,760,765,774,775,776,777,778,779,780,781,784,791,792,795,797,800,801],[2,7,38,67,134,238,248,658,756,758,784,786,789,793,795,797,801,803],[499],[786],[177,180,193,241,273,367,381,414,467,501,520,528,538,543,544,546,549,551,556,557,558,567,640,641,800,801,802],[640,641],[501,801],[557],[1,7,197,198,214,627,654,760,789,800],[9],[197,199,214],[351,640],[3,9,572,604,802],[786,789,793,795,797],[2,3],[572],[641],[3],[641],[7],[641],[800],[1,2,3,4,5,6,7,8,10,170,213,214,234,306,309,312,315,318,319,320,321,322,323,343,344,345,346,347,348,349,350,351,352,353,354,402,411,418,420,462,576,580,581,610,612,637,638,639,800,801,802,803],[239,612,760,801],[1,2,3,4,5,8,9,305,317,411,413,610,637,638,800,801],[1,3,4,6,7,8,75,147,155,167,584,587,637,774,800,801,802],[229,230],[2,166,200,201,251,305,308,311,312,314,315,317,606,800,801],[801],[640],[2],[797],[3],[4],[800],[2,200,201,202,203,204,251,252,800],[202,203],[4,604,606,623,800],[4,582],[800],[627,640],[99],[8,617],[45],[49,50],[800],[801],[9,19],[640],[640],[640],[4,5],[373],[641],[452],[617],[618],[3,800],[3,5,801],[640,641],[251],[2,9,20,119,183,248,252,260,273,277,285,306,309,312,315,371,640,800,801],[2,640],[119],[641],[27],[641],[641],[789],[641],[641],[324],[5,205,206,420,595],[641],[2,205,206,207,208,209,252,420,595,800],[2,207,208,251,305,308,311,312,314,315,317,800,801],[640],[641],[3,4],[4],[280,579,587,590,591,607,629,631,801],[801],[12,27,187,248,377,398,800,801,802,803],[27,155,251,485,532,590,627,756,774,801,803],[800,801],[2,7,8,9,16,17,21,147,185,248,578,800,801],[2,459],[800],[640],[472,532],[640],[640],[641],[641],[641],[4,5],[2,801],[2],[641],[641],[641],[641],[801],[2,3,376,493,532,800,801,802],[801],[641],[9],[641],[641],[641],[641],[641],[641],[4,418,582,800],[229,800],[800],[641],[2,7,37,248,351,640,800,801],[2,7,9,37,248,274,298,355,506,618,619,639,640,641,783,784,800,801,802],[2,3,7,37,38,248,351,387,420,617,618,619,639,640,641,800,801],[9],[641],[801],[802],[7,800,802],[284],[1,2,3,5,6,7,9,51,75,103,134,170,172,182,185,189,197,248,251,252,277,282,298,387,393,418,427,466,504,510,573,577,578,579,604,612,629,658,760,774,800,801],[166,183,802],[802],[187],[202,203,207,208],[641],[0,2,3,8,634,655,800,801,802],[587,800],[38,801],[2,7,9,147,408,493,499,500,503,587,590,620,622,641,786,793,800,801,802],[2,147,178,194,242,493,499,587,620,622,793,801],[501],[441],[641],[235],[800],[640,801],[641],[182,183,795,801],[802],[185,795,797,801],[640],[2,4,5,8,147,152,241,288,289,290,291,298,302,303,305,376,398,402,436,437,438,446,454,613,801],[2],[641],[641],[1,2,3,4,5,177,193,241,372,373,406,407,497,498,531,547,561,571,582,800,801],[801],[178,242],[641],[641],[324,737],[641],[698,699,737,738],[641],[324,698],[641],[620,622,627,630,633,742,801],[8],[1,2,7,147,800],[640],[641],[641],[640],[251],[641],[3],[641],[21],[4,5],[4,802],[641],[641],[641],[641],[2,3],[9],[641],[3],[641],[613],[641],[641],[641],[3],[641],[4,582],[441],[3,10,582],[2,3,789],[1,4,5,634,800,801,802],[4,5,800,803],[180,641],[38,641],[641],[641],[641],[418],[5,7,267,504,505,508,509,510,511,512,513,800,801],[543],[3,7,38,504,505,506,508,511,800,801,803],[110,124,126,172,634,641,643,803],[532,587,600],[398,801],[641],[493],[510,800],[1,2,3,4,5,7,8,9,10,12,61,147,167,168,169,170,173,174,175,176,177,179,182,183,184,186,187,188,189,192,193,194,195,197,200,201,204,205,206,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,231,234,235,236,237,238,239,240,241,243,246,247,248,277,309,317,324,325,342,359,360,362,376,384,387,388,402,411,419,426,444,447,450,452,454,455,459,461,462,466,472,476,505,536,559,575,582,591,598,610,612,613,621,626,639,654,760,765,774,775,789,791,795,800,801,802],[800],[168,462],[800],[629,800],[324,801],[803],[803],[177,802],[802],[488,582,629],[582],[457],[2,411,640,803],[5,800],[4],[641],[640],[483,801],[177,193,214,241,273,543,801],[214,483,640,801],[2,3,4,5,402,411,631,637],[2,3,4,5,9,38,147,224,253,572,573,582,800,801],[2,641,800,803],[641],[483,501,624,640,641],[426,641],[641],[4,582,797],[641,800],[5,803],[641],[801],[5,9,182,184,459,548,613,640,641,747,765],[359],[0,2,9,21,75,147,184,192,193,196,212,226,236,351,393,396,427,510,544,582,583,617,626,629,760,800,801],[2,3,4,443,595,596],[641],[641],[802],[641],[641],[5,8,248,582,626,775],[641],[641],[803],[379,620,641],[388,392,419,425,505,509,559,800],[800],[7,9,641],[800],[249,251,640,801],[641],[2,3,4,5,9,27,28,147,360,446,582,611,616,626,634,638,658,747,793,801,803],[641],[626,628,634,640],[587],[640,641],[505],[801],[641],[3,4,5,9,152,572,575,581,584,585,604,609,620,621,622,624,625,626,793,795,797,800,801],[626],[252,256,640,641],[640],[640],[641],[235],[5,8,27,179,747,754,800,801],[212],[4,5,9,38,75,84,134,228,402,641,802],[641],[641],[641],[641],[641],[803],[641],[641],[793,794,801],[641],[801],[0],[4,801],[641],[802],[0,800],[801],[641],[641],[2,3,4,7,8,194,222,251,252,254,256,258,270,360,389,433,437,445,448,449,450,451,467,476,490,557,558,559,604,613,623,624,626,628,640,641,800,801],[4,172,803],[799],[2,3],[641],[641],[640],[2,4,389,582],[228],[226],[5,186,398,426,800,803],[641],[5],[252,258,640,641],[402,403,494,495,587,641],[641],[803],[215,218,219,802],[147,402,493],[641],[441,641],[801],[641],[641],[641],[9,84,147,172,248,800,801],[641],[641],[641],[6,8,201,206,800],[8,481],[801],[111],[641],[800,803],[2],[801],[802],[764],[641],[582,634,641,801],[801],[641],[800],[641,801],[5],[641],[640],[277,640,641],[641],[4],[641],[3],[201,206,211,800],[443],[38,69,71,183],[71],[251,640,641,801],[641],[641],[641],[641],[641],[641],[641],[3,4,5,8,9,13,27,72,105,107,109,123,125,162,165,173,184,187,201,202,203,206,207,208,221,227,229,232,233,236,237,244,248,270,271,324,364,388,397,398,419,420,422,444,450,452,458,459,472,485,486,488,505,506,544,587,624,640,644,756,758,800],[641],[739,801],[690,739,740],[3,4,168,205,462,590,591,626,634,800],[641],[640],[489,490],[801],[641],[789],[641],[641],[173],[4,5,800],[4,5,800],[641],[641],[640],[2,4,5,237,282,607,631,801],[3,612,640],[228,231],[170,189,224,543,632],[640],[640,641,801],[0,1,2,4,5,6,800],[641],[641],[4],[7],[641],[4,624,626,775],[641],[5,803],[0,2,3,4,5,8,9,13,27,114,118,131,144,182,271,284,360,402,418,426,504,539,548,552,558,573,582,626,634,639,640,641,643,646,650,691,700,720,723,770,784,800,801,802],[640],[5,7,9,166,185,634,643,646,650,656,800,801],[185,186],[2,3,4,5,7,8,9,10,11,12,13,15,19,27,75,84,134,147,152,155,162,165,234,248,377,411,543,552,582,590,591,610,611,613,620,622,624,626,660,661,747,754,774,795,800,801,802,803],[342],[2,6,7,9,10,119,121,155,741,800,801,802],[2,7,248,456,800],[0,1,2,3,147,454,629,800,802,803],[10,185],[182,213,222,223,452,591,634,800],[2,3,431,629,800],[1,201,202,203,206,207,208,463],[179,803],[0,1,2,3,4,5,6,7,8,9,10,12,14,15,16,17,21,37,38,75,134,147,155,173,185,189,201,206,211,212,213,214,215,222,223,224,226,248,251,284,324,402,450,454,462,501,510,532,572,573,582,595,604,613,626,628,629,634,654,655,706,708,747,764,765,775,784,789,793,797,799,800,801,802,803],[5,803],[7,38,249,640,781],[801],[641],[441],[641],[641],[7,9,801],[801],[604],[729,731,739],[396],[600],[327,331,337,641,801,803],[331],[801],[337],[179,240,241,242,243,244,245,327,612,800],[800],[326],[9,252,801],[2,170,800],[3,455,800],[396],[114],[641,801],[801],[4,27],[194,641],[7,37,38,50,639,776,779,781,800,801],[641],[641,802],[558,641,801],[801],[640],[803],[2],[3,216,789],[16,17,216],[641],[2],[801],[172],[396,641,801],[61],[800],[285],[800],[7,147],[801],[800],[801],[8,47,101,114,211,404,800,801],[2],[1,2,3,4,5,7,9,114,183,212,398,402,485,582,620,623,624,626,634,637,640,641,731,732,800,801],[84,582,634,801,803],[139,634],[583,634],[634],[2,801],[800],[27,234,246,265,640,672],[222,223,246,247,351],[213,318],[641],[640],[604,640,641],[446],[612,613,614,800],[237],[641],[2,4,5,7,226,440,441,444,582,634,800,803],[7],[398],[0,1,2,3,4,5,6,7,8,9,19,27,134,147,155,168,170,182,183,193,197,215,219,224,248,252,275,282,298,299,356,388,418,419,440,443,483,501,504,505,506,508,543,573,582,587,590,595,610,626,634,641,775,799,800,801,803],[2,3,4,5,6,7,9,10,27,29,76,83,86,87,88,136,147,155,156,158,182,186,210,213,222,223,227,232,234,235,248,267,285,305,312,315,362,372,376,389,396,398,402,440,454,457,459,462,466,493,499,500,557,575,577,584,598,599,618,620,621,629,631,640,654,774,800,801,803],[3,5,7,8,9,147,173,194,210,362,384,409,466,472,590,610,615,618,637,742,800],[7,799,800,801,802],[799,800,801],[2,3,14,15,211,392,425,509,800],[2,3,4,5,6,9,27,37,38,84,116,134,155,166,184,213,214,282,360,393,427,463,510,543,587,591,613,618,629,634,747,800,801,803],[168,629],[426,800],[755],[38,39,801],[38],[166],[640],[2,4,20,298,300,472,486,488,587,640,641,800],[801],[801],[582],[2,613,775,789,793,797,801],[0],[2,3,5,9,10,11,12,27,42,44,75,79,81,88,90,91,92,94,96,97,103,104,113,114,116,117,118,130,134,136,138,139,141,145,147,152,155,216,230,269,288,289,371,388,402,419,445,459,462,505,582,611,616,632,634,636,638,646,647,648,650,651,652,658,659,660,661,663,664,666,668,670,674,675,676,677,681,682,690,704,711,713,717,727,730,732,736,740,756,757,758,759,776,777,780,782,797,800,801],[3,5,9,10,13,75,84,85,113,134,143,144,147,150,151,226,238,284,360,402,490,582,628,632,634,639,643,646,649,650,653,657,658,662,706,707,708,709,741,797,800,801,802],[641],[801],[2,3,4,5,7,9,75,152,800,801,802],[2,3,9,248,582,634,800,801],[640,784],[2,37,248,317,342,784],[9,147,210,398],[2,3,224],[2,4,5,803],[2,248,355,356,801],[2,355,357,532,800,801],[801],[641],[641],[4],[2,182,248,775,800,801],[800],[1,38],[803],[27,147,213,215,384,626,793,801,802],[7],[548],[3,275,299,356,360,416,437,445,470,480,486,557,593,640,641,801],[359,387,418,480,489,504,640,801],[548,552],[641],[800],[801],[624,801],[641],[641],[641],[641],[641],[802],[585,641],[641],[801],[803],[641],[641],[11,584],[37,573],[359,426,504,532],[514,802],[2,387,514],[221,228,359,462],[640],[641],[641],[641],[640],[801],[641],[641],[801],[641,658],[640],[8,640,801],[641],[3],[5],[4],[641],[641],[641],[2,3,4,5,8,9,27,213,214,215,219,237,411,452,506,547,582,590,604,613,626,629,634,742,800,801,803],[2,476],[4],[802],[147,641],[212,802],[641],[641,801],[801],[3,422,641],[454],[641],[641],[640,641],[641],[641],[640,641],[641],[641],[1,3,4,5,8,28,213,226,248,462,582,596,629,634,641,800],[9,147,155,210,358,548,747,803],[641],[397,455,458,472,485,486,488,506,587,800],[641],[789],[75,613,641,800,801,802],[802],[4],[641],[641],[27],[27,32],[4,5,187,197,198,214,215,641,795,800,801],[641],[0,1,411,637,799,801,803],[4,187,234,284,402,587,634,801],[640,641],[641],[641],[641],[1,2,3,5,8,9,11,27,75,147,182,210,211,212,213,214,215,226,227,228,230,234,235,237,248,362,364,393,396,411,427,462,463,466,468,472,485,504,510,531,556,559,561,571,575,581,582,618,621,623,645,658,678,694,696,698,733,737,784,800,801,803],[2,4,5,8,9,10,114,150,155,183,184,491,540,543,620,622,627,632,633,634,800,801,802,803],[2,9,184],[2,15,19,75],[9,13,27,28,51,53,55,72,76,77,103,123,125,134,158,162,165,173,180,184,190,191,201,206,212,221,227,228,229,231,232,233,236,237,244,278,308,311,314,317,326,365,374,385,388,419,422,444,461,505,547,580,594,608,618,626,680,712,789,793,797,800],[2,3,4,5,7,8,9,10,27,37,75,89,95,98,105,107,109,111,115,137,152,155,180,222,223,224,226,230,234,239,244,248,250,251,253,268,302,388,389,402,413,419,421,426,445,468,490,505,542,543,557,558,572,582,604,610,617,623,634,707,709,747,795,800,801],[2,3,7,8,9,27,147,210,226,284,285,298,362,409,414,618,624,764,800,803],[21,147,414,499,640,641],[7,74,172,409],[2,3,4,5,8,14,18,47,61,101,269,462,508,628,789,793,797,800,801],[3,150,412,659,661,664,666,668,670,679,685,695,697,699,704,711,734,736,738],[248,388,392,419,425,505,509,610,800],[800],[801],[800],[2,3,4,7,16,19,82,215,219,227,235,267,269,270,271,272,273,363,364,377,379,402,411,440,441,442,445,462,467,472,476,489,516,517,518,524,525,532,534,553,554,558,563,564,565,587,610,611,626,637,640,789,800,801],[235,377,801],[640],[224,225,545,550],[224,225,545,550],[641],[641],[641],[545,550],[585,641,802],[641],[641],[641],[641],[8,590,643,776],[0,1,2,3,4,5,6,7,8,9,10,11,14,16,19,27,32,37,38,40,41,42,45,48,53,54,55,56,61,63,65,67,75,76,79,83,84,86,87,88,93,94,99,102,109,111,113,114,115,117,128,132,134,136,147,148,152,155,156,166,168,180,182,183,184,191,194,210,213,219,226,234,235,237,244,248,251,252,274,275,277,279,280,284,298,299,300,331,334,337,340,355,356,362,364,372,387,388,389,398,402,403,411,413,418,419,421,445,446,447,456,461,476,489,493,504,505,506,515,516,517,518,524,543,547,553,556,558,562,563,564,565,572,573,575,582,583,584,587,595,604,610,611,612,613,615,619,621,624,626,627,629,634,637,638,639,640,641,643,646,650,655,656,657,658,678,694,696,698,733,737,747,774,776,783,784,785,789,793,795,797,800,801,802,803],[641],[2,3,4,5,6,7,75,147,155,182,248,277,305,317,342,377,466,584,628,634,640,800,801,802],[5,7,8,9,147,186,248,370,384,409,414,459,474,478,515,522,524,530,553,560,562,570,613,618,640,641,800,801,803],[800],[640],[641,800],[641],[641],[641],[641],[640],[3],[641],[641],[0,27,170,195,197,220,595,626,634,640,802],[3,168,169,219,431,626],[2,3,4,5,7,8,9,10,27,147,359,532,577,580,620,634,775,797,800,801,802],[800],[641],[8],[2,3,119,121,170,197,248,573,577,579,580,581,618,629,760,774,797,800,801],[9,38,182,184,446,454,467,599,641,801],[641],[641],[641],[641],[462],[2,4,5,9,27,147,180,244,269,362,472,476,582,620,624,634,775,800,803],[582],[641],[2,3,5,27,38,84,254,255],[5,7,286,584,641],[3,4,7,8],[800],[640],[641],[641],[641],[1,2,3,4,5,7,8,9,51,75,103,147,172,248,277,622,626,629,641,775,800,801],[1,2,3,4,9,147,226,362,582,641,800,801,802,803],[3,8,18,37,84,147,152,640,801],[656,801],[581],[4,5,9],[641],[640],[2,3,7,9,14,18,184,186,222,223,248,267,269,273,274,275,282,285,288,290,292,294,296,301,304,306,309,312,315,324,349,371,384,431,436,442,445,474,478,479,488,500,557,613,634,640,641,660,686,687,762,800,801,802],[800],[640],[641],[795,796,800],[801],[640,801],[641],[640],[3,7,9,27,184,248,274,349,371,384,437,445,480,488,500,557,587,613,622,640,686,688,800,801],[797,798,801],[641],[641],[641],[641],[4,27,28,30,454,510,747,748],[200],[398,604],[21,558,641,745,789],[640,641],[623],[3,114,187,402,501,514,629,793,800,803],[3,9,134,629],[9,11],[3,9,168,626,800],[641],[641],[573,574,801],[641],[444],[0,5],[641],[641],[641],[640],[349,371,640],[641],[14,27,38,84,236,499,500,545,550,582,640,705,801],[801],[640,801],[800,801],[640],[9,114,641,801],[115],[641],[114],[641],[641],[800],[640],[640],[640],[640],[641],[618],[251],[251],[789],[251],[618],[229],[441],[441],[251],[251],[251],[618],[360],[211,212,226],[360],[211,212,226],[617],[618],[581],[618],[618],[389],[499],[251],[251,624,640],[251],[801],[4],[5],[618],[618],[618],[618],[599],[783],[783],[783],[783],[783],[641],[455,800],[800]]} \ No newline at end of file diff --git a/static/scripts/docs.js b/static/scripts/docs.js index b0e00d861921..5efafdec5f67 100644 --- a/static/scripts/docs.js +++ b/static/scripts/docs.js @@ -1 +1 @@ -const hoverQuery=window.matchMedia("(hover: hover)");let isHover=hoverQuery.matches;hoverQuery.addEventListener("change",t=>{isHover=t.matches});const hasTransitionEnd="ontransitionend"in window,prefersReducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)").matches,collapseFactory=(t,n,s)=>(o,e)=>{n.removeEventListener("transitionend",s),e&&(n.style.maxHeight=`${o}px`),window.requestAnimationFrame(()=>{n.style.pointerEvents="none",n.style.userSelect="none",n.style.maxHeight="0px",n.style.opacity="0"}),t.setAttribute("aria-expanded","false")},expandFactory=(t,n)=>{const s=()=>{n.style.maxHeight="none"};return{expand:(o,e)=>{hasTransitionEnd&&!prefersReducedMotion&&e?(n.addEventListener("transitionend",s,{once:!0}),n.style.maxHeight=`${o}px`,n.style.pointerEvents="auto",n.style.userSelect="auto",n.style.opacity="1"):s(),t.setAttribute("aria-expanded","true")},handler:s}},toggleFactory=(t,n)=>{const{expand:s,handler:o}=expandFactory(t,n),e=collapseFactory(t,n,o);return{toggle:l=>{t.getAttribute("aria-expanded")==="true"?e(l,!0):s(l,!0)},expand:s,collapse:e}};function setUpAccordeon(t){const n=Array.from(t.children),s=n.some(e=>e.querySelector("li > a[aria-current]"));let o=n.filter(e=>e.tagName==="LI").reduce((e,l)=>{const r=l.getElementsByTagName("button"),c=l.getElementsByTagName("ul"),a=l.getElementsByTagName("a");if(r.length===0||c.length===0)return e;const u=c[0];return e.push({button:r[0],child:u,target:l,anchor:a.length>0?a[0]:null}),e},[]);return o.length===0||(o.forEach(e=>{const l=setUpAccordeon(e.child),r=e.anchor.getAttribute("aria-current")==="page";setUpSingleAccordeon(e.target,e.button,e.child,l||r,!1)}),t.classList.add("animated")),s}function setUpSingleAccordeon(t,n,s,o,e=!1){const{toggle:l,expand:r,collapse:c}=toggleFactory(t,s);s.style.overflow="visible hidden";let a=s.offsetHeight;o?r(a,!1):c(a,!1),n.addEventListener("click",u=>{e&&u.preventDefault(),l(a)})}function isElementInViewport(t){const n=t.getBoundingClientRect();return n.top>=0&&n.left>=0&&n.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&n.right<=(window.innerWidth||document.documentElement.clientWidth)}function setUpOnPageNavigation(t){const n=Array.from(t.querySelectorAll("li[data-assoc]")).reduce((o,e)=>{const l=e.getAttribute("data-assoc"),r=e.getElementsByTagName("a"),c=document.getElementById(l);return c&&r.length>0&&o.push({item:e,assoc:c,anchor:r[0]}),o},[]),s=()=>{const o=n.find(e=>isElementInViewport(e.assoc));o&&(n.forEach(e=>e.item.removeAttribute("aria-current")),o.item.setAttribute("aria-current","true"))};s(),window.addEventListener("scroll",s),window.addEventListener("resize",s)}function setUpTooltip(t){const n=t.querySelector("svg"),s=t.querySelector("div[role='tooltip']");let o=!1;const e=n.getElementsByTagName("title")[0];let l=e.textContent,r=0;const c=256,a=()=>{const m=window.innerWidth,d=n.getBoundingClientRect();d.left+c/2>m?(s.style.left=`${m-c-d.left-32}px`,s.classList.add("mobile")):d.left-c/2<0?(s.style.left=`${-d.left+32}px`,s.classList.add("mobile")):(s.style.left="-120px",s.classList.remove("mobile")),o=!0,e.innerHTML="",s.style.display="block",window.requestAnimationFrame(()=>{s.style.opacity="1"}),r=Date.now()},u=()=>{e.innerHTML=l,o=!1;const m=()=>{s.style.display="none"};hasTransitionEnd&&!prefersReducedMotion?s.addEventListener("transitionend",m,{once:!0}):m(),window.requestAnimationFrame(()=>{s.style.opacity="0",hasTransitionEnd&&!prefersReducedMotion&&s.removeEventListener("transitionend",m)})};n.addEventListener("click",()=>{isHover||(o&&Date.now()-r>100?u():a())}),n.addEventListener("mouseenter",m=>{m.preventDefault(),a()}),n.addEventListener("mousemove",m=>{o&&m.preventDefault()}),n.addEventListener("focus",a),n.addEventListener("blur",u),n.addEventListener("mouseleave",u),window.addEventListener("click",m=>{o&&!t.contains(m.target)&&u()}),window.addEventListener("mouseleave",u),window.addEventListener("keydown",m=>{o&&m.key==="Escape"&&u()})}function setUpCollapsingSidebar(t){const n=document.querySelector("button.hamburger"),s=t.querySelector("button.close");t.classList.add("mobile-hidden"),t.style.opacity="1";const o=c=>{t.classList.contains("mobile-hidden")||t.contains(c.target)||(l(),c.preventDefault())},e=()=>{t.classList.add("mobile-hidden"),t.style.transform="translateX(0)"},l=()=>{window.removeEventListener("click",o),hasTransitionEnd&&!prefersReducedMotion?(t.style.transform="translateX(-100%)",t.addEventListener("transitionend",e,{once:!0})):e()},r=()=>{t.removeEventListener("transitionend",e),t.style.transform="translateX(-100%)",t.classList.remove("mobile-hidden"),requestAnimationFrame(()=>{window.addEventListener("click",o),t.style.transform="translateX(0)"})};n.addEventListener("click",r),s.addEventListener("click",l)}function setUpSymbolFlyout(){const t=document.querySelector("main > .symbol-grid"),n=document.getElementById("flyout-template"),s=document.getElementById("flyout-sym-row");if(!t||!n||!s)return;if(!("content"in document.createElement("template"))){console.warn("Browser does not support template elements");return}const o=n.content.firstElementChild.cloneNode(!0);o.style.display="none",t.appendChild(o);const e=o.querySelector(".info button"),l=o.querySelector(".info button .sym"),r=o.querySelector(".sym-name code"),c=o.querySelector(".info .unic-name"),a=o.querySelector(".info .codepoint span"),u=o.querySelector(".info .accent"),m=o.querySelector(".info .accent img"),d=o.querySelector(".variants-box"),y=o.querySelector(".variants-box .symbol-grid"),h=o.querySelector(".shorthand"),f=o.querySelector(".shorthand code"),p=o.querySelector(".sym-name .copy"),w=o.querySelector(".shorthand .copy"),N=o.querySelector(".codepoint .copy"),M="/assets/icons/16-close.svg",R="/assets/icons/16-check.svg";let v;const C=i=>{if("clipboard"in navigator){navigator.clipboard.writeText(i);return}else{const g=document.createElement("input");g.value=i,document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g)}},x=()=>{const i=document.getElementById(v);i&&(i.ariaHasPopup="false"),v=void 0,o.style.display="none",window.removeEventListener("click",A);for(const{target:g,listener:S}of k)g.removeEventListener("click",S)},A=i=>{v!==void 0&&v!==i.target.id&&!o.contains(i.target)&&(x(),i.preventDefault())};let k=[];const T=i=>{i.ariaHasPopup="true",v=i.id,o.style.display="block";const g=i.id.replace(/^symbol-/,""),S=i.dataset.unicName,H=parseInt(i.dataset.codepoint,10),B=i.dataset.accent!=null,$=i.dataset.alternates?i.dataset.alternates.split(" "):[],b=i.dataset.shorthand,F=String.fromCodePoint(H);C(F);let E=H.toString(16).toUpperCase();E.length<4&&(E="0".repeat(4-E.length)+E),l.textContent=F,r.textContent=g,c.textContent=S,a.textContent=E,u.style.display=B?"block":"none",m.src=B?R:M,m.setAttribute("alt",B?"Yes":"No"),h.style.display=b&&b.length>0?"block":"none",f.textContent=b;let W=()=>{C(g)};if(p.addEventListener("click",W),k.push({target:p,listener:W}),b&&b.length>0){let L=()=>{C(b)};w.addEventListener("click",L),k.push({target:w,listener:L})}let P=()=>{C("\\u{"+E+"}")};N.addEventListener("click",P),k.push({target:N,listener:P});const U=$.map(L=>{const I=s.content.firstElementChild.cloneNode(!0),X=I.querySelector(".sym"),V=I.querySelector("button"),q=document.getElementById(`symbol-${L}`);if(q)X.textContent=String.fromCodePoint(parseInt(q.dataset.codepoint,10));else return null;return V.addEventListener("click",j=>{T(q),q.scrollIntoView(),j.preventDefault()}),I}).filter(L=>L!=null);d.style.display=U.length>0?"block":"none",y.replaceChildren(...U);let D=i.offsetLeft-12;const O=i.offsetTop-12;i.getBoundingClientRect().left+408>window.innerWidth&&(D=Math.max(8,window.innerWidth-t.getBoundingClientRect().left-424)),o.style.left=`${D}px`,o.style.top=`${O}px`};e.addEventListener("click",x),window.addEventListener("keydown",i=>{i.key==="Escape"&&v!==void 0&&(x(),i.preventDefault())});for(let i=0;i{T(g),S.preventDefault()})}window.requestAnimationFrame(()=>{window.removeEventListener("click",A),window.addEventListener("click",A,{capture:!0})})}function setUpSymbolSearch(){const t=document.querySelector("main > .symbol-grid"),n=document.getElementById("symbol-search");if(!t||!n)return;const s=Array.from(t.children).filter(a=>a.tagName==="LI"),o=s.map(a=>({name:a.id.replace(/^symbol-/,""),unicName:a.dataset.unicName,symbol:String.fromCodePoint(parseInt(a.dataset.codepoint,10)),shorthand:a.dataset.shorthand})),e=new Fuse(o,{keys:[{name:"symbol",weight:.95},{name:"name",weight:.9},{name:"unicName",weight:.7},{name:"shorthand",weight:.5}],threshold:.3,includeScore:!0}),l=()=>{if(n.value.length===0){s.forEach(u=>u.style.display="block");return}const a=e.search(n.value).map(u=>u.item.name);s.forEach(u=>{a.includes(u.id.replace(/^symbol-/,""))?u.style.display="block":u.style.display="none"})};n.addEventListener("input",l),n.addEventListener("keydown",l);const c=new URLSearchParams(window.location.search).get("query");c&&(n.value=c),l()}async function setUpSearch(t,n){const s=new AbortController,o=setTimeout(()=>s.abort(),1e4),e=await fetch("/assets/search.json?bust=20230520",{signal:s.signal}).then(r=>r.ok?r.json():null).catch(r=>(console.error(r),null));if(clearTimeout(o),!e)return;const l=()=>{let r=[],c=[];const a=t.value,u=t.value.toLowerCase().split(/[!-/:-@[-`{-~\s]/g).filter(d=>d.length>0);function m(d){if(r.includes(d))return;const y=e.items[d];if(c[d]=score(y,a),r.length<10){r.push(d);return}let h=0;for(let f=0;fc[r[h]]){r[h]=d;return}}for(const d of u){let y=0,h=e.words.length-1;for(;y0&&e.words[f].startsWith(d);)f--;for(f++;fc[y]-c[d]),n.replaceChildren(...r.map(d=>{const y=e.items[d];let h=y.route;y.kind=="Symbols"&&(h+="?query="+a);const f=document.createElement("li"),p=document.createElement("a"),w=document.createElement("span");return p.href=h,p.textContent=y.title,w.classList.add("type"),w.textContent=y.kind,p.appendChild(w),f.appendChild(p),f})),n.classList.toggle("hidden",r.length===0)};t.addEventListener("keydown",l),t.addEventListener("keyup",l),l()}const FACTORS={Type:1,Function:.9,Parameter:.8,Method:.7,Symbols:.6,Chapter:.5,Category:.5};function score(t,n){return(FACTORS[t.kind.split(" ")[0]]||.4)*Math.max(stringScore(t.title,n),t.keywords?stringScore(t.keywords,n):0)}function stringScore(t,n){const s=simplify(t),o=simplify(n);return s.includes(o)?100-t.length:0}function simplify(t){return t.toLowerCase().replaceAll(/[!-/:-@[-`{-~\s]/g,"")}document.addEventListener("DOMContentLoaded",()=>{for(const e of document.querySelectorAll("nav.folding > ul"))setUpAccordeon(e);for(const e of document.querySelectorAll(".folding-example")){const l=e.querySelector("button"),r=e.querySelector(".folding");setUpSingleAccordeon(e,l,r,!1)}const t=document.querySelector("#page-overview > ul");t&&setUpOnPageNavigation(t),setUpCollapsingSidebar(document.querySelector("nav.folding"));for(const e of document.querySelectorAll("div.tooltip-context"))setUpTooltip(e);const n=document.querySelector(".page-end-buttons a.previous"),s=document.querySelector(".page-end-buttons a.next");window.addEventListener("keydown",e=>{document.querySelectorAll("textarea:focus, input:focus").length>0||(e.key==="ArrowLeft"&&n?window.location.href=n.href:e.key==="ArrowRight"&&s&&(window.location.href=s.href))});for(const e of document.querySelectorAll(".previewed-code > pre"))e.clientWidth{setUpSymbolFlyout(),setUpSymbolSearch()};window.requestIdleCallback?window.requestIdleCallback(o):o()}); +const hoverQuery=window.matchMedia("(hover: hover)");let isHover=hoverQuery.matches;hoverQuery.addEventListener("change",t=>{isHover=t.matches});const hasTransitionEnd="ontransitionend"in window,prefersReducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)").matches,collapseFactory=(t,n,s)=>(o,e)=>{n.removeEventListener("transitionend",s),e&&(n.style.maxHeight=`${o}px`),window.requestAnimationFrame(()=>{n.style.pointerEvents="none",n.style.userSelect="none",n.style.maxHeight="0px",n.style.opacity="0"}),t.setAttribute("aria-expanded","false")},expandFactory=(t,n)=>{const s=()=>{n.style.maxHeight="none"};return{expand:(o,e)=>{hasTransitionEnd&&!prefersReducedMotion&&e?(n.addEventListener("transitionend",s,{once:!0}),n.style.maxHeight=`${o}px`,n.style.pointerEvents="auto",n.style.userSelect="auto",n.style.opacity="1"):s(),t.setAttribute("aria-expanded","true")},handler:s}},toggleFactory=(t,n)=>{const{expand:s,handler:o}=expandFactory(t,n),e=collapseFactory(t,n,o);return{toggle:l=>{t.getAttribute("aria-expanded")==="true"?e(l,!0):s(l,!0)},expand:s,collapse:e}};function setUpAccordeon(t){const n=Array.from(t.children),s=n.some(e=>e.querySelector("li > a[aria-current]"));let o=n.filter(e=>e.tagName==="LI").reduce((e,l)=>{const r=l.getElementsByTagName("button"),c=l.getElementsByTagName("ul"),a=l.getElementsByTagName("a");if(r.length===0||c.length===0)return e;const u=c[0];return e.push({button:r[0],child:u,target:l,anchor:a.length>0?a[0]:null}),e},[]);return o.length===0||(o.forEach(e=>{const l=setUpAccordeon(e.child),r=e.anchor.getAttribute("aria-current")==="page";setUpSingleAccordeon(e.target,e.button,e.child,l||r,!1)}),t.classList.add("animated")),s}function setUpSingleAccordeon(t,n,s,o,e=!1){const{toggle:l,expand:r,collapse:c}=toggleFactory(t,s);s.style.overflow="visible hidden";let a=s.offsetHeight;o?r(a,!1):c(a,!1),n.addEventListener("click",u=>{e&&u.preventDefault(),l(a)})}function isElementInViewport(t){const n=t.getBoundingClientRect();return n.top>=0&&n.left>=0&&n.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&n.right<=(window.innerWidth||document.documentElement.clientWidth)}function setUpOnPageNavigation(t){const n=Array.from(t.querySelectorAll("li[data-assoc]")).reduce((o,e)=>{const l=e.getAttribute("data-assoc"),r=e.getElementsByTagName("a"),c=document.getElementById(l);return c&&r.length>0&&o.push({item:e,assoc:c,anchor:r[0]}),o},[]),s=()=>{const o=n.find(e=>isElementInViewport(e.assoc));o&&(n.forEach(e=>e.item.removeAttribute("aria-current")),o.item.setAttribute("aria-current","true"))};s(),window.addEventListener("scroll",s),window.addEventListener("resize",s)}function setUpTooltip(t){const n=t.querySelector("svg"),s=t.querySelector("div[role='tooltip']");let o=!1;const e=n.getElementsByTagName("title")[0];let l=e.textContent,r=0;const c=256,a=()=>{const m=window.innerWidth,d=n.getBoundingClientRect();d.left+c/2>m?(s.style.left=`${m-c-d.left-32}px`,s.classList.add("mobile")):d.left-c/2<0?(s.style.left=`${-d.left+32}px`,s.classList.add("mobile")):(s.style.left="-120px",s.classList.remove("mobile")),o=!0,e.innerHTML="",s.style.display="block",window.requestAnimationFrame(()=>{s.style.opacity="1"}),r=Date.now()},u=()=>{e.innerHTML=l,o=!1;const m=()=>{s.style.display="none"};hasTransitionEnd&&!prefersReducedMotion?s.addEventListener("transitionend",m,{once:!0}):m(),window.requestAnimationFrame(()=>{s.style.opacity="0",hasTransitionEnd&&!prefersReducedMotion&&s.removeEventListener("transitionend",m)})};n.addEventListener("click",()=>{isHover||(o&&Date.now()-r>100?u():a())}),n.addEventListener("mouseenter",m=>{m.preventDefault(),a()}),n.addEventListener("mousemove",m=>{o&&m.preventDefault()}),n.addEventListener("focus",a),n.addEventListener("blur",u),n.addEventListener("mouseleave",u),window.addEventListener("click",m=>{o&&!t.contains(m.target)&&u()}),window.addEventListener("mouseleave",u),window.addEventListener("keydown",m=>{o&&m.key==="Escape"&&u()})}function setUpCollapsingSidebar(t){const n=document.querySelector("button.hamburger"),s=t.querySelector("button.close");t.classList.add("mobile-hidden"),t.style.opacity="1";const o=c=>{t.classList.contains("mobile-hidden")||t.contains(c.target)||(l(),c.preventDefault())},e=()=>{t.classList.add("mobile-hidden"),t.style.transform="translateX(0)"},l=()=>{window.removeEventListener("click",o),hasTransitionEnd&&!prefersReducedMotion?(t.style.transform="translateX(-100%)",t.addEventListener("transitionend",e,{once:!0})):e()},r=()=>{t.removeEventListener("transitionend",e),t.style.transform="translateX(-100%)",t.classList.remove("mobile-hidden"),requestAnimationFrame(()=>{window.addEventListener("click",o),t.style.transform="translateX(0)"})};n.addEventListener("click",r),s.addEventListener("click",l)}function setUpSymbolFlyout(){const t=document.querySelector("main > .symbol-grid"),n=document.getElementById("flyout-template"),s=document.getElementById("flyout-sym-row");if(!t||!n||!s)return;if(!("content"in document.createElement("template"))){console.warn("Browser does not support template elements");return}const o=n.content.firstElementChild.cloneNode(!0);o.style.display="none",t.appendChild(o);const e=o.querySelector(".info button"),l=o.querySelector(".info button .sym"),r=o.querySelector(".sym-name code"),c=o.querySelector(".info .unic-name"),a=o.querySelector(".info .codepoint span"),u=o.querySelector(".info .accent"),m=o.querySelector(".info .accent img"),d=o.querySelector(".variants-box"),y=o.querySelector(".variants-box .symbol-grid"),h=o.querySelector(".shorthand"),f=o.querySelector(".shorthand code"),p=o.querySelector(".sym-name .copy"),w=o.querySelector(".shorthand .copy"),N=o.querySelector(".codepoint .copy"),M="/assets/icons/16-close.svg",R="/assets/icons/16-check.svg";let v;const C=i=>{if("clipboard"in navigator){navigator.clipboard.writeText(i);return}else{const g=document.createElement("input");g.value=i,document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g)}},x=()=>{const i=document.getElementById(v);i&&(i.ariaHasPopup="false"),v=void 0,o.style.display="none",window.removeEventListener("click",A);for(const{target:g,listener:S}of k)g.removeEventListener("click",S)},A=i=>{v!==void 0&&v!==i.target.id&&!o.contains(i.target)&&(x(),i.preventDefault())};let k=[];const T=i=>{i.ariaHasPopup="true",v=i.id,o.style.display="block";const g=i.id.replace(/^symbol-/,""),S=i.dataset.unicName,H=parseInt(i.dataset.codepoint,10),B=i.dataset.accent!=null,$=i.dataset.alternates?i.dataset.alternates.split(" "):[],b=i.dataset.shorthand,F=String.fromCodePoint(H);C(F);let E=H.toString(16).toUpperCase();E.length<4&&(E="0".repeat(4-E.length)+E),l.textContent=F,r.textContent=g,c.textContent=S,a.textContent=E,u.style.display=B?"block":"none",m.src=B?R:M,m.setAttribute("alt",B?"Yes":"No"),h.style.display=b&&b.length>0?"block":"none",f.textContent=b;let W=()=>{C(g)};if(p.addEventListener("click",W),k.push({target:p,listener:W}),b&&b.length>0){let L=()=>{C(b)};w.addEventListener("click",L),k.push({target:w,listener:L})}let P=()=>{C("\\u{"+E+"}")};N.addEventListener("click",P),k.push({target:N,listener:P});const U=$.map(L=>{const I=s.content.firstElementChild.cloneNode(!0),X=I.querySelector(".sym"),V=I.querySelector("button"),q=document.getElementById(`symbol-${L}`);if(q)X.textContent=String.fromCodePoint(parseInt(q.dataset.codepoint,10));else return null;return V.addEventListener("click",j=>{T(q),q.scrollIntoView(),j.preventDefault()}),I}).filter(L=>L!=null);d.style.display=U.length>0?"block":"none",y.replaceChildren(...U);let D=i.offsetLeft-12;const O=i.offsetTop-12;i.getBoundingClientRect().left+408>window.innerWidth&&(D=Math.max(8,window.innerWidth-t.getBoundingClientRect().left-424)),o.style.left=`${D}px`,o.style.top=`${O}px`};e.addEventListener("click",x),window.addEventListener("keydown",i=>{i.key==="Escape"&&v!==void 0&&(x(),i.preventDefault())});for(let i=0;i{T(g),S.preventDefault()})}window.requestAnimationFrame(()=>{window.removeEventListener("click",A),window.addEventListener("click",A,{capture:!0})})}function setUpSymbolSearch(){const t=document.querySelector("main > .symbol-grid"),n=document.getElementById("symbol-search");if(!t||!n)return;const s=Array.from(t.children).filter(a=>a.tagName==="LI"),o=s.map(a=>({name:a.id.replace(/^symbol-/,""),unicName:a.dataset.unicName,symbol:String.fromCodePoint(parseInt(a.dataset.codepoint,10)),shorthand:a.dataset.shorthand})),e=new Fuse(o,{keys:[{name:"symbol",weight:.95},{name:"name",weight:.9},{name:"unicName",weight:.7},{name:"shorthand",weight:.5}],threshold:.3,includeScore:!0}),l=()=>{if(n.value.length===0){s.forEach(u=>u.style.display="block");return}const a=e.search(n.value).map(u=>u.item.name);s.forEach(u=>{a.includes(u.id.replace(/^symbol-/,""))?u.style.display="block":u.style.display="none"})};n.addEventListener("input",l),n.addEventListener("keydown",l);const c=new URLSearchParams(window.location.search).get("query");c&&(n.value=c),l()}async function setUpSearch(t,n){const s=new AbortController,o=setTimeout(()=>s.abort(),1e4),e=await fetch("/assets/search-cn.json?bust=20230520",{signal:s.signal}).then(r=>r.ok?r.json():null).catch(r=>(console.error(r),null));if(clearTimeout(o),!e)return;const l=()=>{let r=[],c=[];const a=t.value,u=t.value.toLowerCase().split(/[!-/:-@[-`{-~\s]/g).filter(d=>d.length>0);function m(d){if(r.includes(d))return;const y=e.items[d];if(c[d]=score(y,a),r.length<10){r.push(d);return}let h=0;for(let f=0;fc[r[h]]){r[h]=d;return}}for(const d of u){let y=0,h=e.words.length-1;for(;y0&&e.words[f].startsWith(d);)f--;for(f++;fc[y]-c[d]),n.replaceChildren(...r.map(d=>{const y=e.items[d];let h=y.route;y.kind=="Symbols"&&(h+="?query="+a);const f=document.createElement("li"),p=document.createElement("a"),w=document.createElement("span");return p.href=h,p.textContent=y.title,w.classList.add("type"),w.textContent=y.kind,p.appendChild(w),f.appendChild(p),f})),n.classList.toggle("hidden",r.length===0)};t.addEventListener("keydown",l),t.addEventListener("keyup",l),l()}const FACTORS={Type:1,Function:.9,Parameter:.8,Method:.7,Symbols:.6,Chapter:.5,Category:.5};function score(t,n){return(FACTORS[t.kind.split(" ")[0]]||.4)*Math.max(stringScore(t.title,n),t.keywords?stringScore(t.keywords,n):0)}function stringScore(t,n){const s=simplify(t),o=simplify(n);return s.includes(o)?100-t.length:0}function simplify(t){return t.toLowerCase().replaceAll(/[!-/:-@[-`{-~\s]/g,"")}document.addEventListener("DOMContentLoaded",()=>{for(const e of document.querySelectorAll("nav.folding > ul"))setUpAccordeon(e);for(const e of document.querySelectorAll(".folding-example")){const l=e.querySelector("button"),r=e.querySelector(".folding");setUpSingleAccordeon(e,l,r,!1)}const t=document.querySelector("#page-overview > ul");t&&setUpOnPageNavigation(t),setUpCollapsingSidebar(document.querySelector("nav.folding"));for(const e of document.querySelectorAll("div.tooltip-context"))setUpTooltip(e);const n=document.querySelector(".page-end-buttons a.previous"),s=document.querySelector(".page-end-buttons a.next");window.addEventListener("keydown",e=>{document.querySelectorAll("textarea:focus, input:focus").length>0||(e.key==="ArrowLeft"&&n?window.location.href=n.href:e.key==="ArrowRight"&&s&&(window.location.href=s.href))});for(const e of document.querySelectorAll(".previewed-code > pre"))e.clientWidth{setUpSymbolFlyout(),setUpSymbolSearch()};window.requestIdleCallback?window.requestIdleCallback(o):o()}); diff --git a/static/styles/docs.css b/static/styles/docs.css index 178ded9ad5ac..35f51e569c7b 100644 --- a/static/styles/docs.css +++ b/static/styles/docs.css @@ -1 +1 @@ -@font-face{font-display:swap;font-family:Cascadia Mono;font-weight:700;src:local("CascadiaMono-Bold"),url(/assets/fonts/CascadiaMono-Bold.woff2) format("woff2"),url(/assets/fonts/CascadiaMono-Bold.woff) format("woff"),url(/assets/fonts/CascadiaMono-Bold.ttf) format("truetype")}@font-face{font-display:swap;font-family:NewComputerModernMath;font-weight:400;src:local("NewComputerModernMath-Regular"),local("NewComputerModernMath"),url(/assets/fonts/NewCMMath-Regular.woff2) format("woff2"),url(/assets/fonts/NewCMMath-Regular.woff) format("woff"),url(/assets/fonts/NewCMMath-Regular.otf) format("truetype")}body.docs{font-size:16px}body.docs>.main-grid{max-width:unset;padding:32px}h3{font-size:19px}h1 small,h2 small{color:#565565;display:inline-flex;font-size:14px;font-style:italic;gap:8px}h1 small{transform:translateY(-4px)}h2 small{transform:translateY(-2px)}h1 code,h2 code,h3 code,h4 code{font-size:unset}h3 small,h4 small{color:#565565;display:inline-flex;font-size:12px;font-style:italic;gap:4px}h3 small svg{margin-bottom:-1px}h2,h3,h4{-webkit-margin-before:32px;align-items:baseline;display:flex;flex-wrap:wrap;font-weight:600;gap:8px 32px;margin-block-start:32px}h2{gap:8px}h2+h3{-webkit-margin-before:0;margin-block-start:0}h2 .additional-info,h3 .additional-info,h4 .additional-info{align-items:baseline;display:flex;gap:4px 12px}h2 .additional-info .pill+.pill,h3 .additional-info .pill+.pill,h4 .additional-info .pill+.pill{-webkit-margin-start:0;margin-inline-start:0}h2 .additional-info>div>small,h3 .additional-info>div>small,h4 .additional-info>div>small{font-style:normal}h3 code+.pill,h4 code+.pill{-webkit-margin-start:16px;margin-inline-start:16px}:not(h2)+.method-head{-webkit-margin-before:48px;margin-block-start:48px}kbd{background-color:#eee;border:1px solid #b4b4b4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.2),inset 0 2px 0 0 hsla(0,0%,100%,.7);display:inline-block;font-size:.85em;line-height:1;padding:2px 4px;white-space:nowrap}main table thead{border-bottom:1px solid #bdbfcc;font-weight:600;text-align:left}main table td,main table th{padding:4px 8px}main table{border-collapse:collapse;margin-block:16px;width:100%}.relative{overflow-x:auto;position:relative;width:100%}main>img,main>p>img{margin-block:8px;max-width:100%}p>code{white-space:nowrap}li p+ol,li p+ul{-webkit-margin-before:-.5rem;margin-block-start:-.5rem}ul ul{-webkit-padding-start:24px;padding-inline-start:24px}.code-definition{overflow-x:auto;white-space:nowrap}main>pre{margin-block:24px}nav .title-row svg{color:#239dad}nav>button.close{background:none;border:none;position:absolute;right:8px;top:24px}button.hamburger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-radius:4px;box-sizing:content-box;display:none;height:16px;padding:8px;width:16px}header>div>.logo-box{align-items:center;display:flex!important;gap:32px;text-decoration:none}header>div>.logo-box span,nav .title-row span{color:#565565;display:block;font-size:18px;padding-bottom:4px}#page-overview{align-self:start;box-sizing:border-box;color:#565565;font-weight:600;margin-top:64px;max-height:calc(100vh - 24px);overflow:hidden auto;position:-webkit-sticky;position:sticky;top:24px}nav.folding{-webkit-padding-end:4px;padding-inline-end:4px}nav.folding .title-row{display:none}nav.folding ul a{border-radius:6px;display:block;padding:2.5px 16px 2.5px 8px}nav.folding li{position:relative}nav.folding li>button{background:#fdfdfd;border:0;border-radius:5px;display:block;height:24px;padding:4px;position:absolute;right:1px;top:1px;width:24px}nav.folding li[aria-expanded=true]>button{background:#eff0f3}nav.folding li li:last-child{-webkit-margin-after:8px;margin-block-end:8px}nav.folding>ul>li>ul>li:last-child{-webkit-margin-after:12px;margin-block-end:12px}@media (hover:hover){nav.folding li>button{display:none}}nav.folding ul.animated,nav.folding ul.animated ul{transition:max-height .2s ease,opacity .2s ease}@media (prefers-reduced-motion){nav.folding.animated{transition:none}}nav.folding li>button:hover{background:#e4e5ea}nav.folding li>a:focus-visible,nav.folding li>button:focus-visible{outline:2px solid #007aff80}nav.folding li>button:active{background:#d7d9e0}nav.folding li:hover>button,nav.folding li>button:focus{display:block}nav.folding li.root:has(a:active)>button,nav.folding li.root:has(a:focus)>button{display:block}nav.folding li[aria-expanded=true]>button{display:block;transform:rotate(90deg)}nav.folding li[aria-expanded=true]>a{background:#eff0f3}nav.folding a[aria-current=page]{color:#11566c;font-weight:600;position:relative}nav.folding a[aria-current=page]:after{background:#11566c;border-radius:50%;content:"";height:4px;margin-block:auto;position:absolute;right:10px;top:11px;width:4px}nav.folding .category{color:#565565;font-size:10px;font-weight:600;padding:8px 8px 0;text-transform:uppercase}nav.folding .category,nav.folding a{-webkit-margin-after:4px;margin-block-end:4px}nav.folding>ul>li>a{-webkit-margin-after:12px;margin-block-end:12px}.search{border-radius:4px;display:flex;position:relative}.search>img{left:8px;position:absolute;top:7px}.search>input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fdfdfd;border:1px solid #bdbfcc;border-radius:4px;box-sizing:border-box;color:inherit;font-family:inherit;font-size:14px;line-height:1.5;padding:4px 0 4px 28px;width:100%}.search>input::-webkit-search-cancel-button{display:none}.search>input:focus{box-shadow:inset 0 0 0 2px #007aff;outline:none}.search>input:focus,.search>input:focus-visible{box-shadow:none}.search>input:focus-visible{box-shadow:inset 0 0 0 2px #007aff;outline:none}#page-overview{-webkit-padding-start:4px;padding-inline-start:4px}#page-overview strong{text-decoration:underline;text-transform:uppercase}#page-overview ul,nav.folding ul{-webkit-padding-start:16px;list-style:none;padding-inline-start:16px}#page-overview>ul,nav.folding>ul{-webkit-padding-start:0;padding-inline-start:0}#page-overview>ul>li{-webkit-margin-after:4px;margin-block-end:4px}#page-overview li[aria-current=true]>a{color:#11566c}.main-grid{display:grid;gap:36px;grid-template-columns:minmax(auto,184px) minmax(auto,800px) minmax(auto,144px);justify-content:center}.no-outline .main-grid{grid-template-columns:minmax(auto,184px) minmax(auto,800px)}h1{align-items:baseline;display:flex;gap:16px}h1 .pill{border-radius:12px;font-size:34px;padding:4px 12px}.show-pill{background:#004dc6;border-radius:4px;color:#fdfdfd;font-size:12px;font-weight:400;margin-top:1.19em;padding:2px 8px}.info-box{background:#e8f9ff;border:1px solid #007aff;border-radius:6px;padding:12px 16px 8px}.info-box:before{-webkit-margin-after:8px;color:#001666;content:"Info";display:block;font-size:14px;font-weight:600;margin-block-end:8px;text-align:left;text-transform:uppercase}.breadcrumbs{align-items:center;display:flex;gap:4px;list-style:none;padding:0;text-decoration:none}.breadcrumbs>*{display:block}.breadcrumbs .root{background:#eff0f3;border-radius:6px;box-sizing:border-box;display:block;display:flex;height:24px;padding:4px;width:24px}.breadcrumbs a:link{color:inherit;text-decoration:inherit}.breadcrumbs a:active,.breadcrumbs a:focus,.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .root:has(a:focus),.breadcrumbs .root:hover{background:#e4e5ea}.breadcrumbs .root:has(a:active){background:#d7d9e0}.breadcrumbs li>img{margin-bottom:-3px}.tooltip-context{position:relative}div[role=tooltip]{background:#eff0f3;border-radius:6px;box-shadow:0 4px 12px rgba(89,85,101,.2),0 4px 24px rgba(89,85,101,.3);box-sizing:border-box;color:#19181f;display:none;font-size:14px;font-style:normal;font-weight:400;left:-120px;opacity:0;padding:12px;position:absolute;top:26px;transition:opacity .1s ease;width:256px;z-index:1}h2 div[role=tooltip]{top:36px}div[role=tooltip]:not(.mobile):after{border:8px solid transparent;border-bottom-color:#eff0f3;border-top:0;content:"";height:0;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:0;width:0}main>ul{-webkit-padding-start:40px;margin-block:16px;padding-block:0;padding-inline-start:40px}.arguments{margin-left:1.235em;margin-block:4px}.arguments a{color:inherit!important;text-decoration:none}.arguments .overview-param{display:block}.arguments>:not(:last-child){-webkit-margin-after:4px;margin-block-end:4px}.single-arg .arguments{display:inline;margin-left:0;margin-block:0}.single-arg .arguments .overview-param{align-items:baseline;display:inline-flex;flex-wrap:wrap;gap:4px;margin-inline:2px}.single-arg .arguments .pill+.pill{-webkit-margin-start:0;margin-inline-start:0}.pill{border-radius:4px;display:inline-block;font-family:Cascadia Mono,Courier New,Courier,monospace;font-size:14px;font-weight:400;padding:2px 4px;white-space:nowrap}a.pill{color:inherit!important;text-decoration:none!important}.pill+.pill{-webkit-margin-start:4px;margin-inline-start:4px}.pill-con{background:#a6ebe6}.pill-bool{background:#ffedc1}.pill-str{background:#d1ffe2}.pill-kw{background:#ffcbc4}.pill-num{background:#e7d9ff}.pill-obj{background:#eff0f3}.pill-fn{background:#f9dfff}.pill-lbl{background:#a6eaff}.pill-col{background:#7cd5ff;background:linear-gradient(83deg,#7cd5ff,#a6fbca 33%,#fff37c 66%,#ffa49d)}.type-args li p{-webkit-margin-before:0;margin-block-start:0}.type-args li p:last-child{-webkit-margin-after:0;margin-block-end:0}.subgridded li:before,.type-args li:before{-webkit-padding-end:.52em;content:"–";padding-inline-end:.52em}.type-args-multiple{padding-top:0!important}.type-args-multiple>code{font-size:14px;line-height:1.3;white-space:nowrap}main>ul>li::marker{content:"– "}@supports (grid-template-columns:subgrid){.subgridded,.type-args{-webkit-padding-start:32px;display:grid;padding-inline-start:32px;padding:0}.type-args{-webkit-padding-start:8px;column-gap:4px;grid-template-columns:28px minmax(64px,-webkit-min-content) auto;grid-template-columns:28px minmax(64px,min-content) auto;padding-inline-start:8px}.subgridded{column-gap:8px;grid-template-columns:28px minmax(80px,-webkit-min-content) auto;grid-template-columns:28px minmax(80px,min-content) auto}.subgridded li,.type-args li{align-items:baseline;display:grid;grid-column:1/4;grid-template-columns:subgrid}.subgridded li{margin-block:2px}.type-args li>*{grid-column:2/4}.type-args .break-box{align-items:baseline;display:grid;grid-template-columns:subgrid}.subgridded li:before,.type-args li:before{grid-column:1;text-align:right}.type-args li .break-box>:nth-child(2){grid-column:2}.subgridded li>:nth-child(2){grid-column:3}.type-args li .break-box>:first-child{-webkit-margin-end:8px;grid-column:1;margin-inline-end:8px}.subgridded li>:first-child{-webkit-margin-end:8px;grid-column:2;margin-inline-end:8px}}@supports not (grid-template-columns:subgrid){.subgridded,.type-args{-webkit-padding-start:18px;padding-inline-start:18px}.type-args li .break-box>:first-child{min-width:96px}.subgridded li>:first-child{min-width:80px}.subgridded li:before,.type-args li:before{-webkit-padding-end:12px;content:"–";padding-inline-end:12px}.type-args li{display:flex}.subgridded li,.type-args li .break-box{align-items:baseline;display:flex;gap:4px 16px}.type-args .multiple{display:list-item}.type-args .multiple:before{content:none}.subgridded li{gap:12px}.type-args li:not(:last-child){-webkit-margin-after:8px;margin-block-end:8px}}.folding-example button{-webkit-padding-start:0;background:none;border:none;color:#565565;display:flex;gap:8px;padding-inline-start:0}.folding-example button img{transition:transform .2s ease}.folding-example[aria-expanded=true] button img{transform:rotate(90deg)}.folding{margin:6px -12px -12px;opacity:1;padding:12px;transition:max-height .2s ease,opacity .2s ease}.search-results{border-bottom:1px solid #565565;padding-bottom:16px}.search-results:before{-webkit-margin-start:8px;-webkit-margin-after:16px;color:#565565;content:"Results";display:block;font-weight:600;margin-block-end:16px;margin-inline-start:8px}.search-results .type{-webkit-margin-start:8px;color:#565565;font-size:12px;font-weight:600;margin-inline-start:8px;text-transform:uppercase}.search-results a{-webkit-margin-after:4px!important;margin-block-end:4px!important}dl{-webkit-padding-start:32px;margin-block:16px;padding-inline-start:32px}dt code{font-size:19px}dt code+.pill{-webkit-margin-start:32px;margin-inline-start:32px}dd,dt{-webkit-margin-after:16px;margin-block-end:16px;margin-inline:0}.docs-overview .page-end-buttons{display:none}.doc-categories{display:flex;flex-wrap:wrap;gap:12px;margin-block:32px}.doc-categories>a{border:1px solid #bdbfcc;border-radius:6px;box-sizing:border-box;color:inherit!important;flex-basis:0;flex-grow:1;min-width:280px;padding:24px;text-align:center;text-decoration:none}.doc-categories img{display:block;height:40px;margin-inline:auto;width:40px}.doc-categories strong{-webkit-margin-before:12px;display:block;margin-block-start:12px}.doc-categories p{-webkit-margin-after:0;margin-block-end:0;margin-inline:auto;max-width:280px}.doc-categories a:active strong,.doc-categories a:hover strong{text-decoration:underline}.doc-categories a:focus,.doc-categories a:hover{background:#eff0f3}.doc-categories a:active{background:#e4e5ea}.symbol-hint{align-items:center;display:flex;flex-wrap:wrap}.symbol-grid,.symbol-hint{justify-content:space-between}.symbol-grid{display:grid;gap:16px;grid-auto-rows:80px;grid-template-columns:repeat(auto-fill,80px);list-style:none;padding-inline:0;position:relative;width:100%}.symbol-grid li{display:block;margin:0}.symbol-grid li::marker{content:"";display:none}.symbol-flyout button:not(.copy),.symbol-grid button:not(.copy){align-items:center;background:#eff0f3;border:0;box-shadow:0 2px 8px rgba(89,85,101,.2);display:flex;flex-direction:column;height:100%;justify-content:center;overflow:hidden;padding:8px;width:100%}.symbol-flyout button:not(.copy):hover,.symbol-grid button:hover{background:#e4e5ea}.symbol-flyout .sym,.symbol-grid .sym{font-family:HK Grotesk,Inter,NewComputerModernMath,Latin Modern Math,Cambria Math,Noto Sans,Symbol,Segoe UI Symbol,Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,Twemoji,sans-serif;font-size:28px;margin-bottom:2px;margin-top:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.symbol-flyout .sym{margin:0}.emoji .symbol-flyout .sym,.symbol-grid.emoji .sym{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,Twemoji,HK Grotesk,Inter,NewComputerModernMath,Latin Modern Math,Cambria Math,Noto Sans,Symbol,Segoe UI Symbol,sans-serif}.symbol-flyout button>code,.symbol-grid button>code{word-wrap:anywhere;font-size:12px;margin-top:auto;text-overflow:ellipsis;white-space:normal}.symbol-flyout{background:#e4e5ea;border-radius:8px;box-shadow:0 4px 12px rgba(89,85,101,.2),0 4px 24px rgba(89,85,101,.3);box-sizing:border-box;max-width:80vw;padding:12px;position:absolute;width:400px;z-index:2}.symbol-flyout button:not(.copy){box-shadow:none}.symbol-flyout button.main{flex-shrink:0;height:80px;width:80px}.symbol-flyout button.main:hover{background:#eff0f3}.symbol-flyout h3{display:block;margin-block:0 8px}.symbol-flyout p{margin-block:4px 0}.symbol-flyout h4{margin-block:16px 8px}.symbol-flyout .symbol-grid button .sym{font-size:18px}.symbol-flyout .symbol-grid{gap:8px;grid-auto-rows:32px;grid-template-columns:repeat(auto-fill,32px);margin-block:0}.symbol-flyout button.copy{-webkit-margin-start:2px;background:none;border:0;box-shadow:none;display:inline-block;margin-inline-start:2px;padding:2px;position:relative;top:1px;width:unset}.info{display:flex;gap:16px}.info .accent{align-items:center;display:flex;gap:4px}.contribs{-webkit-padding-start:8px;display:flex;flex-wrap:wrap;list-style:none;padding-inline-start:8px}.contribs li{-webkit-margin-start:-8px;display:block;margin:0;margin-inline-start:-8px;transform:scale(1);transform-origin:bottom center;transition:transform .2s ease-in}.contribs li:hover{transform:scale(1.5)}.contribs img{border-radius:100%;box-shadow:0 1px 4px rgba(86,85,101,.2);height:32px;width:32px}@media screen and (max-width:1024px){#page-overview{display:none}.main-grid{display:grid;gap:28px;grid-template-columns:minmax(auto,184px) minmax(auto,784px);justify-content:center}}@media screen and (max-width:660px){header>div>.logo-box span{display:none}.main-grid{padding-inline:24px}.type-args li .break-box{flex-wrap:wrap}}@media screen and (max-width:600px){header>div>.logo-box{display:none!important}.main-grid,button.hamburger{display:block}main{padding-inline:0}nav.folding .title-row{display:block;padding:8px}nav.folding{background:#fdfdfd;bottom:0;box-shadow:0 4px 12px rgba(89,85,101,.2),0 4px 24px rgba(89,85,101,.3);display:block;left:0;max-height:100vh;opacity:0;overflow:hidden auto;padding:24px;position:fixed;top:0;transition:transform .2s ease;width:min(184px,calc(100vw - 48px));z-index:8}@media (prefers-reduced-motion:reduce){nav.folding{transition:none}}nav.mobile-hidden{display:none}h2 small,h3 small{align-items:center}h2 small svg,h3 small svg{margin-bottom:-2px;margin-left:-2px;padding:4px}h2 .additional-info,h3 .additional-info{flex-wrap:wrap}.breadcrumbs{overflow-x:auto}}@media screen and (max-width:365px){body.docs>.main-grid{max-width:unset;padding:12px}@supports (grid-template-columns:subgrid){.type-args li>*{grid-column:2/4!important}.type-args li .break-box>*{grid-column:1/3!important}.type-args .pill{justify-self:start}}.subgridded{-webkit-padding-start:32px;display:block;padding-inline-start:32px}.subgridded li{display:list-item}.subgridded li:before{content:none}.subgridded li>:first-child{min-width:unset}.subgridded li>:not(:first-child){-webkit-margin-start:12px;margin-inline-start:12px}} \ No newline at end of file +@font-face{font-display:swap;font-family:Cascadia Mono;font-weight:700;src:local("CascadiaMono-Bold"),url(/assets/fonts/CascadiaMono-Bold.woff2) format("woff2"),url(/assets/fonts/CascadiaMono-Bold.woff) format("woff"),url(/assets/fonts/CascadiaMono-Bold.ttf) format("truetype")}@font-face{font-display:swap;font-family:NewComputerModernMath;font-weight:400;src:local("NewComputerModernMath-Regular"),local("NewComputerModernMath"),url(/assets/fonts/NewCMMath-Regular.woff2) format("woff2"),url(/assets/fonts/NewCMMath-Regular.woff) format("woff"),url(/assets/fonts/NewCMMath-Regular.otf) format("truetype")}body.docs{font-size:16px}body.docs>.main-grid{max-width:unset;padding:32px}h3{font-size:19px}h1 small,h2 small{color:#565565;display:inline-flex;font-size:14px;font-style:italic;gap:8px}h1 small{transform:translateY(-4px)}h2 small{transform:translateY(-2px)}h1 code,h2 code,h3 code,h4 code{font-size:unset}h3 small,h4 small{color:#565565;display:inline-flex;font-size:12px;font-style:italic;gap:4px}h3 small svg{margin-bottom:-1px}h2,h3,h4{-webkit-margin-before:32px;align-items:baseline;display:flex;flex-wrap:wrap;font-weight:600;gap:8px 32px;margin-block-start:32px}h2{gap:8px}h2+h3{-webkit-margin-before:0;margin-block-start:0}h2 .additional-info,h3 .additional-info,h4 .additional-info{align-items:baseline;display:flex;gap:4px 12px}h2 .additional-info .pill+.pill,h3 .additional-info .pill+.pill,h4 .additional-info .pill+.pill{-webkit-margin-start:0;margin-inline-start:0}h2 .additional-info>div>small,h3 .additional-info>div>small,h4 .additional-info>div>small{font-style:normal}h3 code+.pill,h4 code+.pill{-webkit-margin-start:16px;margin-inline-start:16px}:not(h2)+.method-head{-webkit-margin-before:48px;margin-block-start:48px}kbd{background-color:#eee;border:1px solid #b4b4b4;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.2),inset 0 2px 0 0 hsla(0,0%,100%,.7);display:inline-block;font-size:.85em;line-height:1;padding:2px 4px;white-space:nowrap}main table thead{border-bottom:1px solid #bdbfcc;font-weight:600;text-align:left}main table td,main table th{padding:4px 8px}main table{border-collapse:collapse;margin-block:16px;width:100%}.relative{overflow-x:auto;position:relative;width:100%}main>img,main>p>img{margin-block:8px;max-width:100%}p>code{white-space:nowrap}li p+ol,li p+ul{-webkit-margin-before:-.5rem;margin-block-start:-.5rem}ul ul{-webkit-padding-start:24px;padding-inline-start:24px}.code-definition{overflow-x:auto;white-space:nowrap}main>pre{margin-block:24px}nav .title-row svg{color:#239dad}nav>button.close{background:none;border:none;position:absolute;right:8px;top:24px}button.hamburger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-radius:4px;box-sizing:content-box;display:none;height:16px;padding:8px;width:16px}header>div>.logo-box{align-items:center;display:flex!important;gap:32px;text-decoration:none}header>div>.logo-box span,nav .title-row span{color:#565565;display:block;font-size:18px;padding-bottom:4px}#page-overview{align-self:start;box-sizing:border-box;color:#565565;font-weight:600;margin-top:64px;max-height:calc(100vh - 24px);overflow:hidden auto;position:-webkit-sticky;position:sticky;top:24px}nav.folding{-webkit-padding-end:4px;padding-inline-end:4px}nav.folding .title-row{display:none}nav.folding ul a{border-radius:6px;display:block;padding:2.5px 16px 2.5px 8px}nav.folding li{position:relative}nav.folding li>button{background:#fdfdfd;border:0;border-radius:5px;display:block;height:24px;padding:4px;position:absolute;right:1px;top:1px;width:24px}nav.folding li[aria-expanded=true]>button{background:#eff0f3}nav.folding li li:last-child{-webkit-margin-after:8px;margin-block-end:8px}nav.folding>ul>li>ul>li:last-child{-webkit-margin-after:12px;margin-block-end:12px}@media (hover:hover){nav.folding li>button{display:none}}nav.folding ul.animated,nav.folding ul.animated ul{transition:max-height .2s ease,opacity .2s ease}@media (prefers-reduced-motion){nav.folding.animated{transition:none}}nav.folding li>button:hover{background:#e4e5ea}nav.folding li>a:focus-visible,nav.folding li>button:focus-visible{outline:2px solid #007aff80}nav.folding li>button:active{background:#d7d9e0}nav.folding li:hover>button,nav.folding li>button:focus{display:block}nav.folding li.root:has(a:active)>button,nav.folding li.root:has(a:focus)>button{display:block}nav.folding li[aria-expanded=true]>button{display:block;transform:rotate(90deg)}nav.folding li[aria-expanded=true]>a{background:#eff0f3}nav.folding a[aria-current=page]{color:#11566c;font-weight:600;position:relative}nav.folding a[aria-current=page]:after{background:#11566c;border-radius:50%;content:"";height:4px;margin-block:auto;position:absolute;right:10px;top:11px;width:4px}nav.folding .category{color:#565565;font-size:10px;font-weight:600;padding:8px 8px 0;text-transform:uppercase}nav.folding .category,nav.folding a{-webkit-margin-after:4px;margin-block-end:4px}nav.folding>ul>li>a{-webkit-margin-after:12px;margin-block-end:12px}.search{border-radius:4px;display:flex;position:relative}.search>img{left:8px;position:absolute;top:7px}.search>input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fdfdfd;border:1px solid #bdbfcc;border-radius:4px;box-sizing:border-box;color:inherit;font-family:inherit;font-size:14px;line-height:1.5;padding:4px 0 4px 28px;width:100%}.search>input::-webkit-search-cancel-button{display:none}.search>input:focus{box-shadow:inset 0 0 0 2px #007aff;outline:none}.search>input:focus,.search>input:focus-visible{box-shadow:none}.search>input:focus-visible{box-shadow:inset 0 0 0 2px #007aff;outline:none}#page-overview{-webkit-padding-start:4px;padding-inline-start:4px}#page-overview strong{text-decoration:underline;text-transform:uppercase}#page-overview ul,nav.folding ul{-webkit-padding-start:16px;list-style:none;padding-inline-start:16px}#page-overview>ul,nav.folding>ul{-webkit-padding-start:0;padding-inline-start:0}#page-overview>ul>li{-webkit-margin-after:4px;margin-block-end:4px}#page-overview li[aria-current=true]>a{color:#11566c}.main-grid{display:grid;gap:36px;grid-template-columns:minmax(auto,184px) minmax(auto,800px) minmax(auto,144px);justify-content:center}.no-outline .main-grid{grid-template-columns:minmax(auto,184px) minmax(auto,800px)}h1{align-items:baseline;display:flex;gap:16px}h1 .pill{border-radius:12px;font-size:34px;padding:4px 12px}.show-pill{background:#004dc6;border-radius:4px;color:#fdfdfd;font-size:12px;font-weight:400;margin-top:1.19em;padding:2px 8px}.info-box{background:#e8f9ff;border:1px solid #007aff;border-radius:6px;padding:12px 16px 8px}.info-box:before{-webkit-margin-after:8px;color:#001666;content:"Info";display:block;font-size:14px;font-weight:600;margin-block-end:8px;text-align:left;text-transform:uppercase}.breadcrumbs{align-items:center;display:flex;gap:4px;list-style:none;padding:0;text-decoration:none}.breadcrumbs>*{display:block}.breadcrumbs .root{background:#eff0f3;border-radius:6px;box-sizing:border-box;display:block;display:flex;height:24px;padding:4px;width:24px}.breadcrumbs a:link{color:inherit;text-decoration:inherit}.breadcrumbs a:active,.breadcrumbs a:focus,.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .root:has(a:focus),.breadcrumbs .root:hover{background:#e4e5ea}.breadcrumbs .root:has(a:active){background:#d7d9e0}.breadcrumbs li>img{margin-bottom:-3px}.tooltip-context{position:relative}div[role=tooltip]{background:#eff0f3;border-radius:6px;box-shadow:0 4px 12px rgba(89,85,101,.2),0 4px 24px rgba(89,85,101,.3);box-sizing:border-box;color:#19181f;display:none;font-size:14px;font-style:normal;font-weight:400;left:-120px;opacity:0;padding:12px;position:absolute;top:26px;transition:opacity .1s ease;width:256px;z-index:1}h2 div[role=tooltip]{top:36px}div[role=tooltip]:not(.mobile):after{border:8px solid transparent;border-bottom-color:#eff0f3;border-top:0;content:"";height:0;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:0;width:0}main>ul{-webkit-padding-start:40px;margin-block:16px;padding-block:0;padding-inline-start:40px}.arguments{margin-left:1.235em;margin-block:4px}.arguments a{color:inherit!important;text-decoration:none}.arguments .overview-param{display:block}.arguments>:not(:last-child){-webkit-margin-after:4px;margin-block-end:4px}.single-arg .arguments{display:inline;margin-left:0;margin-block:0}.single-arg .arguments .overview-param{align-items:baseline;display:inline-flex;flex-wrap:wrap;gap:4px;margin-inline:2px}.single-arg .arguments .pill+.pill{-webkit-margin-start:0;margin-inline-start:0}.pill{border-radius:4px;display:inline-block;font-family:Cascadia Mono,Courier New,Courier,monospace;font-size:14px;font-weight:400;padding:2px 4px;white-space:nowrap}a.pill{color:inherit!important;text-decoration:none!important}.pill+.pill{-webkit-margin-start:4px;margin-inline-start:4px}.pill-con{background:#a6ebe6}.pill-bool{background:#ffedc1}.pill-str{background:#d1ffe2}.pill-kw{background:#ffcbc4}.pill-num{background:#e7d9ff}.pill-obj{background:#eff0f3}.pill-fn{background:#f9dfff}.pill-lbl{background:#a6eaff}.pill-col{background:#7cd5ff;background:linear-gradient(83deg,#7cd5ff,#a6fbca 33%,#fff37c 66%,#ffa49d)}.type-args li p{-webkit-margin-before:0;margin-block-start:0}.type-args li p:last-child{-webkit-margin-after:0;margin-block-end:0}.subgridded li:before,.type-args li:before{-webkit-padding-end:.52em;content:"–";padding-inline-end:.52em}.type-args-multiple{padding-top:0!important}.type-args-multiple>code{font-size:14px;line-height:1.3;white-space:nowrap}main>ul>li::marker{content:"– "}@supports (grid-template-columns:subgrid){.subgridded,.type-args{-webkit-padding-start:32px;display:grid;padding-inline-start:32px;padding:0}.type-args{-webkit-padding-start:8px;column-gap:4px;grid-template-columns:28px minmax(64px,-webkit-min-content) auto;grid-template-columns:28px minmax(64px,min-content) auto;padding-inline-start:8px}.subgridded{column-gap:8px;grid-template-columns:28px minmax(80px,-webkit-min-content) auto;grid-template-columns:28px minmax(80px,min-content) auto}.subgridded li,.type-args li{align-items:baseline;display:grid;grid-column:1/4;grid-template-columns:subgrid}.subgridded li{margin-block:2px}.type-args li>*{grid-column:2/4}.type-args .break-box{align-items:baseline;display:grid;grid-template-columns:subgrid}.subgridded li:before,.type-args li:before{grid-column:1;text-align:right}.type-args li .break-box>:nth-child(2){grid-column:2}.subgridded li>:nth-child(2){grid-column:3}.type-args li .break-box>:first-child{-webkit-margin-end:8px;grid-column:1;margin-inline-end:8px}.subgridded li>:first-child{-webkit-margin-end:8px;grid-column:2;margin-inline-end:8px}}@supports not (grid-template-columns:subgrid){.subgridded,.type-args{-webkit-padding-start:18px;padding-inline-start:18px}.type-args li .break-box>:first-child{min-width:96px}.subgridded li>:first-child{min-width:80px}.subgridded li:before,.type-args li:before{-webkit-padding-end:12px;content:"–";padding-inline-end:12px}.type-args li{display:flex}.subgridded li,.type-args li .break-box{align-items:baseline;display:flex;gap:4px 16px}.type-args .multiple{display:list-item}.type-args .multiple:before{content:none}.subgridded li{gap:12px}.type-args li:not(:last-child){-webkit-margin-after:8px;margin-block-end:8px}}.folding-example button{-webkit-padding-start:0;background:none;border:none;color:#565565;display:flex;gap:8px;padding-inline-start:0}.folding-example button img{transition:transform .2s ease}.folding-example[aria-expanded=true] button img{transform:rotate(90deg)}.folding{margin:6px -12px -12px;opacity:1;padding:12px;transition:max-height .2s ease,opacity .2s ease}.search-results{border-bottom:1px solid #565565;padding-bottom:16px}.search-results:before{-webkit-margin-start:8px;-webkit-margin-after:16px;color:#565565;content:"结果";display:block;font-weight:600;margin-block-end:16px;margin-inline-start:8px}.search-results .type{-webkit-margin-start:8px;color:#565565;font-size:12px;font-weight:600;margin-inline-start:8px;text-transform:uppercase}.search-results a{-webkit-margin-after:4px!important;margin-block-end:4px!important}dl{-webkit-padding-start:32px;margin-block:16px;padding-inline-start:32px}dt code{font-size:19px}dt code+.pill{-webkit-margin-start:32px;margin-inline-start:32px}dd,dt{-webkit-margin-after:16px;margin-block-end:16px;margin-inline:0}.docs-overview .page-end-buttons{display:none}.doc-categories{display:flex;flex-wrap:wrap;gap:12px;margin-block:32px}.doc-categories>a{border:1px solid #bdbfcc;border-radius:6px;box-sizing:border-box;color:inherit!important;flex-basis:0;flex-grow:1;min-width:280px;padding:24px;text-align:center;text-decoration:none}.doc-categories img{display:block;height:40px;margin-inline:auto;width:40px}.doc-categories strong{-webkit-margin-before:12px;display:block;margin-block-start:12px}.doc-categories p{-webkit-margin-after:0;margin-block-end:0;margin-inline:auto;max-width:280px}.doc-categories a:active strong,.doc-categories a:hover strong{text-decoration:underline}.doc-categories a:focus,.doc-categories a:hover{background:#eff0f3}.doc-categories a:active{background:#e4e5ea}.symbol-hint{align-items:center;display:flex;flex-wrap:wrap}.symbol-grid,.symbol-hint{justify-content:space-between}.symbol-grid{display:grid;gap:16px;grid-auto-rows:80px;grid-template-columns:repeat(auto-fill,80px);list-style:none;padding-inline:0;position:relative;width:100%}.symbol-grid li{display:block;margin:0}.symbol-grid li::marker{content:"";display:none}.symbol-flyout button:not(.copy),.symbol-grid button:not(.copy){align-items:center;background:#eff0f3;border:0;box-shadow:0 2px 8px rgba(89,85,101,.2);display:flex;flex-direction:column;height:100%;justify-content:center;overflow:hidden;padding:8px;width:100%}.symbol-flyout button:not(.copy):hover,.symbol-grid button:hover{background:#e4e5ea}.symbol-flyout .sym,.symbol-grid .sym{font-family:HK Grotesk,Inter,NewComputerModernMath,Latin Modern Math,Cambria Math,Noto Sans,Symbol,Segoe UI Symbol,Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,Twemoji,sans-serif;font-size:28px;margin-bottom:2px;margin-top:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.symbol-flyout .sym{margin:0}.emoji .symbol-flyout .sym,.symbol-grid.emoji .sym{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,Twemoji,HK Grotesk,Inter,NewComputerModernMath,Latin Modern Math,Cambria Math,Noto Sans,Symbol,Segoe UI Symbol,sans-serif}.symbol-flyout button>code,.symbol-grid button>code{word-wrap:anywhere;font-size:12px;margin-top:auto;text-overflow:ellipsis;white-space:normal}.symbol-flyout{background:#e4e5ea;border-radius:8px;box-shadow:0 4px 12px rgba(89,85,101,.2),0 4px 24px rgba(89,85,101,.3);box-sizing:border-box;max-width:80vw;padding:12px;position:absolute;width:400px;z-index:2}.symbol-flyout button:not(.copy){box-shadow:none}.symbol-flyout button.main{flex-shrink:0;height:80px;width:80px}.symbol-flyout button.main:hover{background:#eff0f3}.symbol-flyout h3{display:block;margin-block:0 8px}.symbol-flyout p{margin-block:4px 0}.symbol-flyout h4{margin-block:16px 8px}.symbol-flyout .symbol-grid button .sym{font-size:18px}.symbol-flyout .symbol-grid{gap:8px;grid-auto-rows:32px;grid-template-columns:repeat(auto-fill,32px);margin-block:0}.symbol-flyout button.copy{-webkit-margin-start:2px;background:none;border:0;box-shadow:none;display:inline-block;margin-inline-start:2px;padding:2px;position:relative;top:1px;width:unset}.info{display:flex;gap:16px}.info .accent{align-items:center;display:flex;gap:4px}.contribs{-webkit-padding-start:8px;display:flex;flex-wrap:wrap;list-style:none;padding-inline-start:8px}.contribs li{-webkit-margin-start:-8px;display:block;margin:0;margin-inline-start:-8px;transform:scale(1);transform-origin:bottom center;transition:transform .2s ease-in}.contribs li:hover{transform:scale(1.5)}.contribs img{border-radius:100%;box-shadow:0 1px 4px rgba(86,85,101,.2);height:32px;width:32px}@media screen and (max-width:1024px){#page-overview{display:none}.main-grid{display:grid;gap:28px;grid-template-columns:minmax(auto,184px) minmax(auto,784px);justify-content:center}}@media screen and (max-width:660px){header>div>.logo-box span{display:none}.main-grid{padding-inline:24px}.type-args li .break-box{flex-wrap:wrap}}@media screen and (max-width:600px){header>div>.logo-box{display:none!important}.main-grid,button.hamburger{display:block}main{padding-inline:0}nav.folding .title-row{display:block;padding:8px}nav.folding{background:#fdfdfd;bottom:0;box-shadow:0 4px 12px rgba(89,85,101,.2),0 4px 24px rgba(89,85,101,.3);display:block;left:0;max-height:100vh;opacity:0;overflow:hidden auto;padding:24px;position:fixed;top:0;transition:transform .2s ease;width:min(184px,calc(100vw - 48px));z-index:8}@media (prefers-reduced-motion:reduce){nav.folding{transition:none}}nav.mobile-hidden{display:none}h2 small,h3 small{align-items:center}h2 small svg,h3 small svg{margin-bottom:-2px;margin-left:-2px;padding:4px}h2 .additional-info,h3 .additional-info{flex-wrap:wrap}.breadcrumbs{overflow-x:auto}}@media screen and (max-width:365px){body.docs>.main-grid{max-width:unset;padding:12px}@supports (grid-template-columns:subgrid){.type-args li>*{grid-column:2/4!important}.type-args li .break-box>*{grid-column:1/3!important}.type-args .pill{justify-self:start}}.subgridded{-webkit-padding-start:32px;display:block;padding-inline-start:32px}.subgridded li{display:list-item}.subgridded li:before{content:none}.subgridded li>:first-child{min-width:unset}.subgridded li>:not(:first-child){-webkit-margin-start:12px;margin-inline-start:12px}} \ No newline at end of file diff --git a/templates/base_template.html b/templates/base_template.html index 10c34f59c52c..bbee017e91b1 100644 --- a/templates/base_template.html +++ b/templates/base_template.html @@ -33,6 +33,39 @@ + @@ -86,8 +119,8 @@ Typst 中文文档 - +