From 66de90437f64e532a51297dc233c57c2cda9a124 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 27 Mar 2023 20:23:37 +0200 Subject: [PATCH] Update fibonacci example and add `round` function --- README.md | 10 +++++----- docs/src/general/changelog.md | 3 ++- library/src/math/delimited.rs | 18 ++++++++++++++++++ library/src/math/mod.rs | 1 + tests/ref/math/numbering.png | Bin 14196 -> 14195 bytes tests/typ/math/numbering.typ | 2 +- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 132a92cd0..0c1e95fd7 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ A [gentle introduction][tutorial] to Typst is available in our documentation. However, if you want to see the power of Typst encapsulated in one image, here it is:

- Example + Example

@@ -78,13 +78,13 @@ Let's dissect what's going on: = Fibonacci sequence The Fibonacci sequence is defined through the - _recurrence relation_ $F_n = F_(n-1) + F_(n-2)$. - It can also be expressed in closed form: + recurrence relation $F_n = F_(n-1) + F_(n-2)$. + It can also be expressed in _closed form:_ - $ F_n = floor(1 / sqrt(5) phi.alt^n), quad + $ F_n = round(1 / sqrt(5) phi.alt^n), quad phi.alt = (1 + sqrt(5)) / 2 $ - #let count = 10 + #let count = 8 #let nums = range(1, count + 1) #let fib(n) = ( if n <= 2 { 1 } diff --git a/docs/src/general/changelog.md b/docs/src/general/changelog.md index ecb23efea..be1cdc370 100644 --- a/docs/src/general/changelog.md +++ b/docs/src/general/changelog.md @@ -18,11 +18,12 @@ description: | - Fixed [matrices]($func/mat) with explicit delimiter - Fixed build of CLI if `git` is not installed - Links in bibliographies are now affected by link styling - `[#counter(..).update(0)]` - Added support for disabling [matrix]($func/mat) and [vector]($func/vec) delimiters. Generally with `[#set math.mat(delim: none)]` or one-off with `[$mat(delim: #none, 1, 2; 3, 4)$]`. +- Added [`round`]($func/round) function for equations - Numberings now allow zeros. To reset a counter, you can write + `[#counter(..).update(0)]` - Added `--font-path` argument for CLI - Added Nix flake - Numerous documentation fixes diff --git a/library/src/math/delimited.rs b/library/src/math/delimited.rs index 3be17eae3..fe7d2d1ef 100644 --- a/library/src/math/delimited.rs +++ b/library/src/math/delimited.rs @@ -141,6 +141,24 @@ pub fn ceil( delimited(body, '⌈', '⌉') } +/// Round an expression. +/// +/// ## Example +/// ```example +/// $ round(x/2) $ +/// ``` +/// +/// Display: Round +/// Category: math +/// Returns: content +#[func] +pub fn round( + /// The expression to round. + body: Content, +) -> Value { + delimited(body, '⌊', '⌉') +} + /// Take the absolute value of an expression. /// /// ## Example diff --git a/library/src/math/mod.rs b/library/src/math/mod.rs index 4e91dd51c..b4a5b1567 100644 --- a/library/src/math/mod.rs +++ b/library/src/math/mod.rs @@ -57,6 +57,7 @@ pub fn module() -> Module { math.define("norm", norm); math.define("floor", floor); math.define("ceil", ceil); + math.define("round", round); // Attachments and accents. math.define("attach", AttachElem::func()); diff --git a/tests/ref/math/numbering.png b/tests/ref/math/numbering.png index a06e2b0c8f80cecea0dc180524d1f441ab56d21b..72abfed6bbe289bc38605f902c3f23e7d17d2858 100644 GIT binary patch literal 14195 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 Ky<%C@;Qs{(EKn!_ diff --git a/tests/typ/math/numbering.typ b/tests/typ/math/numbering.typ index 71049a09d..fd303ff29 100644 --- a/tests/typ/math/numbering.typ +++ b/tests/typ/math/numbering.typ @@ -8,4 +8,4 @@ We define $x$ in preparation of @fib: $ phi.alt := (1 + sqrt(5)) / 2 $ With @ratio, we get -$ F_n = floor(1 / sqrt(5) phi.alt^n) $ +$ F_n = round(1 / sqrt(5) phi.alt^n) $