Compare commits

...

16 Commits

Author SHA1 Message Date
hpcfzl
9bcfb9196e
Merge cd4923f10d5c582e05c2dd9e6c73f5997fd2ce30 into 7278d887cf05fadc9a96478830e5876739b78f53 2025-07-23 19:27:40 +02:00
Tobias Schmitz
7278d887cf
Fix bounding box computation for lines in curves (#6647)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2025-07-23 14:17:03 +00:00
hpcfzl
cd4923f10d
Update guide-for-latex-users.md
Apply discussed Guide for LaTeX users sentence change.
2025-07-21 19:35:34 +02:00
hpcfzl
8e512bd0b1
Update docs/guides/guide-for-latex-users.md
Change proposed Guide for LaTeX users sentence change.

Co-authored-by: PgBiel <9021226+PgBiel@users.noreply.github.com>
2025-07-21 19:25:01 +02:00
hpcfzl
d1f5a3d2d5
Update .github/ISSUE_TEMPLATE/2-feature.yml
Revert proposed emoji change.

Co-authored-by: PgBiel <9021226+PgBiel@users.noreply.github.com>
2025-07-21 19:23:49 +02:00
hpcfzl
a1c01dff7f
Merge branch 'typst:main' into patch-1 2025-07-17 13:22:55 +02:00
hpcfzl
941c3123af
Update query.rs
Fixes typo `The `query` functions lets`
2025-07-16 21:01:38 +02:00
hpcfzl
d45a621358
Update 2-feature.yml
Replaces all **1** occurrence of *invisible* emoji
2025-07-16 13:29:32 +02:00
hpcfzl
68bf10498f
Update page.rs
Replaces all **1** occurrence of *invisible* emoji
2025-07-16 13:25:16 +02:00
hpcfzl
6e7049ba32
Update table.rs
Replaces all **1** occurrence of *invisible* emoji
2025-07-16 13:19:32 +02:00
hpcfzl
c98c72847d
Update guide-for-latex-users.md
Replaces **2** occurrences of *invisible* emojis
2025-07-16 12:48:17 +02:00
hpcfzl
7eefc19441
Update guide-for-latex-users.md
Removes `or a `/``
2025-07-16 12:23:23 +02:00
hpcfzl
8571158b50
Merge branch 'typst:main' into patch-1 2025-07-16 11:26:36 +02:00
hpcfzl
2fbed47c3e
Update guide-for-latex-users.md
Adds `tabularray`
2025-07-15 21:34:36 +02:00
hpcfzl
eabedfc61c
Update guide-for-latex-users.md
Removes a double space
2025-07-15 21:29:42 +02:00
hpcfzl
615ded766b
Update guide-for-latex-users.md
Removes `Unlike LaTeX`
2025-07-15 21:19:18 +02:00
8 changed files with 30 additions and 27 deletions

View File

@ -6,7 +6,7 @@ use crate::foundations::{Array, Context, LocatableSelector, Value, func};
/// Finds elements in the document. /// Finds elements in the document.
/// ///
/// The `query` functions lets you search your document for elements of a /// The `query` function lets you search your document for elements of a
/// particular type or with a particular label. To use it, you first need to /// particular type or with a particular label. To use it, you first need to
/// ensure that [context] is available. /// ensure that [context] is available.
/// ///

View File

@ -340,7 +340,7 @@ pub struct PageElem {
/// This content will overlay the page's body. /// This content will overlay the page's body.
/// ///
/// ```example /// ```example
/// #set page(foreground: text(24pt)[🥸]) /// #set page(foreground: text(24pt)[🤓])
/// ///
/// Reviewer 2 has marked our paper /// Reviewer 2 has marked our paper
/// "Weak Reject" because they did /// "Weak Reject" because they did

View File

@ -625,7 +625,7 @@ pub struct TableVLine {
/// cell(align: left)[🌴🚗], /// cell(align: left)[🌴🚗],
/// cell( /// cell(
/// inset: 0.06em, /// inset: 0.06em,
/// text(1.62em)[🛖🌅🌊], /// text(1.62em)[🏝️🌅🌊],
/// ), /// ),
/// ) /// )
/// ``` /// ```

View File

@ -476,26 +476,18 @@ impl Curve {
/// Computes the size of the bounding box of this curve. /// Computes the size of the bounding box of this curve.
pub fn bbox_size(&self) -> Size { pub fn bbox_size(&self) -> Size {
let mut min_x = Abs::inf(); let mut min = Point::splat(Abs::inf());
let mut min_y = Abs::inf(); let mut max = Point::splat(-Abs::inf());
let mut max_x = -Abs::inf();
let mut max_y = -Abs::inf();
let mut cursor = Point::zero(); let mut cursor = Point::zero();
for item in self.0.iter() { for item in self.0.iter() {
match item { match item {
CurveItem::Move(to) => { CurveItem::Move(to) => {
min_x = min_x.min(cursor.x);
min_y = min_y.min(cursor.y);
max_x = max_x.max(cursor.x);
max_y = max_y.max(cursor.y);
cursor = *to; cursor = *to;
} }
CurveItem::Line(to) => { CurveItem::Line(to) => {
min_x = min_x.min(cursor.x); min = min.min(cursor).min(*to);
min_y = min_y.min(cursor.y); max = max.max(cursor).max(*to);
max_x = max_x.max(cursor.x);
max_y = max_y.max(cursor.y);
cursor = *to; cursor = *to;
} }
CurveItem::Cubic(c0, c1, end) => { CurveItem::Cubic(c0, c1, end) => {
@ -507,17 +499,17 @@ impl Curve {
); );
let bbox = cubic.bounding_box(); let bbox = cubic.bounding_box();
min_x = min_x.min(Abs::pt(bbox.x0)).min(Abs::pt(bbox.x1)); min.x = min.x.min(Abs::pt(bbox.x0)).min(Abs::pt(bbox.x1));
min_y = min_y.min(Abs::pt(bbox.y0)).min(Abs::pt(bbox.y1)); min.y = min.y.min(Abs::pt(bbox.y0)).min(Abs::pt(bbox.y1));
max_x = max_x.max(Abs::pt(bbox.x0)).max(Abs::pt(bbox.x1)); max.x = max.x.max(Abs::pt(bbox.x0)).max(Abs::pt(bbox.x1));
max_y = max_y.max(Abs::pt(bbox.y0)).max(Abs::pt(bbox.y1)); max.y = max.y.max(Abs::pt(bbox.y0)).max(Abs::pt(bbox.y1));
cursor = *end; cursor = *end;
} }
CurveItem::Close => (), CurveItem::Close => (),
} }
} }
Size::new(max_x - min_x, max_y - min_y) Size::new(max.x - min.x, max.y - min.y)
} }
} }

View File

@ -33,9 +33,10 @@ collaborative editor and run Typst in your browser, no installation required.
If you choose to use Typst on your computer instead, you can download the If you choose to use Typst on your computer instead, you can download the
compiler as a single, small binary which any user can run, no root privileges compiler as a single, small binary which any user can run, no root privileges
required. Unlike LaTeX, packages are downloaded when you first use them and required. Unlike popular LaTeX distributions such as TeX Live, packages are
then cached locally, keeping your Typst installation lean. You can use your own downloaded when you first use them and then cached locally, keeping your Typst
editor and decide where to store your files with the local compiler. installation lean. You can use your own editor and decide where to store your
files with the local compiler.
## How do I create a new, empty document? { #getting-started } ## How do I create a new, empty document? { #getting-started }
That's easy. You just create a new, empty text file (the file extension is That's easy. You just create a new, empty text file (the file extension is
@ -459,7 +460,7 @@ and their corresponding Typst functions.
| LaTeX Package | Typst Alternative | | LaTeX Package | Typst Alternative |
|:--------------------------------|:-------------------------------------------| |:--------------------------------|:-------------------------------------------|
| graphicx, svg | [`image`] function | | graphicx, svg | [`image`] function |
| tabularx | [`table`], [`grid`] functions | | tabularx, tabularray | [`table`], [`grid`] functions |
| fontenc, inputenc, unicode-math | Just start writing! | | fontenc, inputenc, unicode-math | Just start writing! |
| babel, polyglossia | [`text`]($text.lang) function: `[#set text(lang: "zh")]` | | babel, polyglossia | [`text`]($text.lang) function: `[#set text(lang: "zh")]` |
| amsmath | [Math mode]($category/math) | | amsmath | [Math mode]($category/math) |
@ -550,7 +551,7 @@ $ f(x) = (x + 1) / x $
to include more than one value in a sub- or superscript, enclose their contents to include more than one value in a sub- or superscript, enclose their contents
in parentheses: `{$x_(a -> epsilon)$}`. in parentheses: `{$x_(a -> epsilon)$}`.
Since variables in math mode do not need to be prepended with a `#` or a `/`, Since variables in math mode do not need to be prepended with a `#` or a `\`, unlike LaTeX,
you can also call functions without these special characters: you can also call functions without these special characters:
```example ```example
@ -580,8 +581,8 @@ their call with a `#`. Nobody can stop you from using rectangles or emoji as
your variables anymore: your variables anymore:
```example ```example
$ sum^10_(🥸=1) $ sum^10_(🤓=1)
#rect(width: 4mm, height: 2mm)/🥸 #rect(width: 4mm, height: 2mm)/🤓
= 🧠 maltese $ = 🧠 maltese $
``` ```

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -130,6 +130,16 @@
down, up, down, up, down, down, up, down, up, down,
) )
--- curve-stroke-gradient-sharp ---
#set page(width: auto)
#let down = curve.line((40pt, 40pt), relative: true)
#let up = curve.line((40pt, -40pt), relative: true)
#curve(
stroke: 4pt + gradient.linear(red, blue).sharp(3),
down, up, down, up, down,
)
--- curve-fill-rule --- --- curve-fill-rule ---
#stack( #stack(
dir: ltr, dir: ltr,