Commit Graph

477 Commits

Author SHA1 Message Date
Laurenz 704bec64ae Move delayed errors into tracer 2023-11-24 12:38:27 +01:00
Laurenz 7eebafa783 Merge `typst` and `typst-library` 2023-11-24 12:30:02 +01:00
frozolotl 76e173b78b
Allow multiple font paths in `TYPST_FONT_PATHS` (#2746) 2023-11-24 11:42:02 +01:00
frozolotl e5470401f4
Fix `has` on non-inherent fields (#2745) 2023-11-24 11:41:38 +01:00
frozolotl 55799f7395
Make `color.components`' alpha parameter named (#2734) 2023-11-21 18:05:12 +01:00
Laurenz 36c7301608 Tidy up some imports 2023-11-21 15:20:49 +01:00
Laurenz 1ef6ba7f41 Inline block into styles file 2023-11-21 14:54:47 +01:00
Laurenz ec8230c02e Extract location type into its own file 2023-11-21 14:49:59 +01:00
frozolotl 8e5b7fe5c1
Clean up some color quantization code (#2730) 2023-11-21 10:24:39 +01:00
Laurenz c1bc529986 Support arbitrary content for document title
For PDF, they will be immediately turned into plain text. However, it's still useful because templates can now accept content titles (with math or such things) instead of forcing strings because of set document. Moreover, it will be useful with "get rules" in the future.
2023-11-20 18:31:29 +01:00
Sébastien d'Herbais de Thun b5956ca3f1
Document the `#[ghost]` attribute from #2718 (#2721) 2023-11-20 18:20:42 +01:00
Sébastien d'Herbais de Thun 96f02960a2
Fix gradient colors (#2719) 2023-11-20 18:20:26 +01:00
Sébastien d'Herbais de Thun 9b5b3b2557
Added `ghost` attr to `elem` macro (#2718) 2023-11-19 19:23:00 +01:00
Laurenz b479be8e9e Fix docs 2023-11-19 19:14:11 +01:00
Laurenz c641044380 Workaround for show set propagation on citations
Fixes #2531
2023-11-19 18:57:28 +01:00
Laurenz 35d6a891bc Rename typeset function to layout 2023-11-19 18:17:06 +01:00
Laurenz c97a01616a More useful `Debug` impls 2023-11-19 18:16:18 +01:00
Laurenz 2da619e17c Streamline imports 2023-11-19 16:34:38 +01:00
Laurenz ea987ef4a3 Fix linebreaking at the end of links
Fixes #2689
2023-11-19 15:53:48 +01:00
Laurenz 18cb3becb3 Disable default features of `zip` crate 2023-11-19 13:04:48 +01:00
Laurenz fa43b4bf5d Use proxy for fetching release metadata 2023-11-19 12:49:08 +01:00
Laurenz e0d6526a53
Watching fixes (#2706) 2023-11-19 12:31:42 +01:00
frozolotl 43f90b2159
Implement euclidean division and remainder (#2678) 2023-11-17 19:55:57 +01:00
Sébastien d'Herbais de Thun f5b3af3c1b
Parallel image encoding (#2693) 2023-11-17 19:42:49 +01:00
frozolotl b0e81d4b3f
Remove restrictions to chroma and improve clamping (#2690)
This PR does a few small things:
- Oklab's a*/b* and Oklch's chroma components can be as large as desired.
- In PDF, when encoding Oklab, the range is widened from [-0.4,0.4] to [-0.5,0.5].
- In PDF, clamping is now performed on Oklch's chroma instead of a* and b*.
  This causes hue not to be distorted when clamping.

SVG and PNG export remain unchanged:
- SVG itself never had any restrictions on chroma.
  We directly use the `oklab` and `oklch` CSS colors, which should work fine for the most part.
  In the future, embedded ICC profiles might be nice. Further research is likely necessary.
- While PNG does not support color spaces like Oklab or Oklch, certain useful features exist.
  One can define gamma (gAMA) and chromacities&whitepoint (cHRM) chunks and even embed ICC profiles.
  While `image` crate does not support these features for encoding, its backend crate `png` does support gAMA and cHRM.
  It does not allow embedding ICC profiles yet, though.

As it stands, to fully support wide gamuts and more accurate colors, more work is necessary.
This PR should help a bit though.
2023-11-17 10:41:45 +01:00
Sébastien d'Herbais de Thun 5aaaacbf47
Allow `elem` synthesized fields to take a default value (#2687) 2023-11-17 10:39:08 +01:00
Laurenz 624ff5cb7a Correct sentence 2023-11-17 10:08:55 +01:00
Peng Guanwen f4a81091f7
Lexer change: Allow emphasis in CJK text without spaces (#2648) 2023-11-15 15:01:15 +01:00
tingerrr 50ea3b4f16
Add `arguments` constructor & fix equality (#2686) 2023-11-15 14:50:31 +01:00
frozolotl 7aef798658
Fix cmyk repr (#2682) 2023-11-15 14:49:45 +01:00
Sébastien d'Herbais de Thun f39a8bc015
Add span information to realized `ParElem` (#2675) 2023-11-15 14:49:29 +01:00
frozolotl f56813a778
Remove `a` suffix from Rgba and LinearRgba (#2691) 2023-11-15 14:48:48 +01:00
Dimitri Kokkonis 897447e859
Translate local names to Greek (#2684)
Additionally, add support for single and double quotes in Greek.
2023-11-14 15:59:30 +01:00
Sébastien d'Herbais de Thun d77356a16f
Fix potential line splitting issue in `raw` (#2674) 2023-11-13 16:56:51 +01:00
frozolotl 7d5f6a8b73
Improve color conversions (#2659) 2023-11-13 16:23:52 +01:00
Sébastien d'Herbais de Thun c427ca9e4e
Assign spans to `raw.line` (#2672) 2023-11-13 15:49:38 +01:00
frozolotl d16ab29068
Make Oklab and Oklch chroma ratios relative to 0.4 (#2642) 2023-11-13 15:48:54 +01:00
frozolotl 67422e664b
Allow non-string contents for math operators (#2663) 2023-11-13 12:26:58 +01:00
Malo 8219ec2595
Improve documentation for figure kind (#2654) 2023-11-13 12:18:05 +01:00
Wenzhuo Liu e07275163f
Filter out meta items when adding CJK-Latin (#2655)
spacing.
2023-11-13 12:13:05 +01:00
frozolotl 97bb0fbce3
Fix bug where inline equations were displayed in the outline (#2662) 2023-11-13 12:04:34 +01:00
frozolotl 1f273eb88f
Fix spelling mistake (#2664) 2023-11-13 11:52:57 +01:00
Laurenz 778802e5a8 Fix links in bibliographies again
Fixes #2667
2023-11-13 11:50:27 +01:00
Andrew Voynov a44141be2e
Changed default `image` Russian supplement to short form (#2637) 2023-11-11 10:46:25 +01:00
MALO 13f1a4386f
Improve French and Chinese localization for figures (#2542) 2023-11-10 17:17:39 +01:00
Laurenz 010084e2d6 Simplify some paths 2023-11-10 12:01:13 +01:00
frozolotl d93ed1b3d8
Implement Oklch support (#2611) 2023-11-10 10:31:06 +01:00
Laurenz 7f0fcda376 Move some things out of `util` 2023-11-08 23:42:45 +01:00
Sébastien d'Herbais de Thun d7fea7077e
Gradient Part 5c: Fix gradient rotation on text & math (#2606) 2023-11-08 15:51:25 +01:00
Laurenz ccbe901cb7 Make `PdfContext` private again 2023-11-08 15:35:05 +01:00
Laurenz 8be482c2c2 Fix intradoc links 2023-11-08 15:33:49 +01:00
Anton Wetzel ba05164bb6
Change rectangle clip to use the inside of the stroke, not the middle. (#2626) 2023-11-08 15:30:00 +01:00
Laurenz 46846a337e Extract `typst-pdf` crate 2023-11-08 15:09:55 +01:00
Laurenz 80b4ca4c04 Extract `typst-svg` crate 2023-11-08 13:21:47 +01:00
Laurenz ec04c3de2f Extract `typst-render` crate 2023-11-08 13:16:13 +01:00
Laurenz 4794bd35fa Switch to workspace dependencies 2023-11-08 12:56:35 +01:00
frozolotl 7f1c38548a
Fix color export for SVG (#2610) 2023-11-08 11:11:02 +01:00
frozolotl cfb767346e
Fix OkLab color negation (#2609)
This changes negation to effectively rotate hue by 180deg.
Previously, negation failed in certain cases and produced unexpected results.
2023-11-08 11:10:37 +01:00
Joseph Wilson 2ce9d76025
Add constructor for `stroke`. (#2518) 2023-11-08 11:08:38 +01:00
KronosTheLate 3a1e47913d
Make reference to spreading in arguments of `grid` (#2593)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2023-11-07 16:56:09 +01:00
tingerrr 5f922abfd8
Add hints for invalid identifier errors (#2583) 2023-11-07 12:14:20 +01:00
Sébastien d'Herbais de Thun 241a6d9e5a
Gradient Part 5b: Fix gradients in math (#2604) 2023-11-07 12:09:51 +01:00
tingerrr 4d5255d9cb
Synthesize `block` and `quotes` & improve documentation for `quote` (#2532) 2023-11-07 11:49:28 +01:00
Peng Guanwen 4a7d3585d9
Improve reshape condition (#2547) 2023-11-06 21:43:15 +01:00
Samuel Tardieu e550f0a8f7
Prevent silent swallowing of return expressions trailing arguments (#2545)
Fixes #2104
2023-11-06 21:42:38 +01:00
Sébastien d'Herbais de Thun c0f6d2004a
Content rework 2 - Electric Boogaloo (#2504) 2023-11-06 21:37:50 +01:00
Matt Fellenz 8fd546760c
Implement dict key interpolation (#2559) 2023-11-02 17:08:08 +01:00
Charlie Moog b716700b61
Derive PDF instance id from content hash (#2552) 2023-11-02 11:12:07 +01:00
MALO 51d9fe2d02
Documentation fixes (#2543) 2023-11-02 11:01:46 +01:00
Andrew Voynov c47757d6d4
fix(figure separator): `. ` is now default for Russian (#2540) 2023-11-02 11:00:42 +01:00
Laurenz 4248265bca Some math docs improvements 2023-11-02 10:49:14 +01:00
Andrew Voynov 0f274f8edb
Fixed doc typo for math > cancel > angle (#2535) 2023-10-31 20:50:21 +01:00
Laurenz c177a63c9b Fix citation grouping bug with spaces 2023-10-31 12:19:30 +01:00
Laurenz ab5dd2a1cb CSL support 2023-10-31 01:33:06 +01:00
Joseph Wilson 27ab2bb9a2
Documentation improvements (#2492) 2023-10-31 01:32:08 +01:00
Fritz Rehde c3114fa380
Fixed typos (#2524) 2023-10-30 23:25:28 +01:00
Laurenz 55296a9196 Say which label occurs never or multiple times in error message 2023-10-30 23:00:40 +01:00
Laurenz 90cd1a5a09 Add a bit more detail to `font` parameter docs 2023-10-30 22:55:52 +01:00
Laurenz e6ad40004b Label tooltip 2023-10-30 22:54:21 +01:00
Laurenz 5a6cadefda Label autocompletion 2023-10-30 22:54:17 +01:00
Laurenz 7ac9b1a365 More Markdown features in docs 2023-10-30 22:53:55 +01:00
Eric Biedert 64d3fd8a3f
Add missing gradient to stroke cast (#2527) 2023-10-30 22:24:39 +01:00
Laurenz 995fc40363 Remove duplicated lookup 2023-10-29 22:41:28 +01:00
Laurenz 265b37d12d Reduce trigger region of closure tooltip 2023-10-29 19:36:20 +01:00
Laurenz 9c29dbf84f Docs fixes 2023-10-29 19:35:44 +01:00
Laurenz 987e97cc2c Clarify how `ident` is used in PDF export 2023-10-29 11:22:06 +01:00
MALO 500468fd05
Improve "cannot apply '{+,-}'" error messages (#2510) 2023-10-29 11:15:53 +01:00
Laurenz 29130a26f8 Linebreaking for links 2023-10-29 00:52:15 +02:00
Laurenz 4c75adbb04 Simplify linebreaking
Switches from an iterator to callback style, which significantly increases the clarity of the whole thing.
2023-10-28 23:03:09 +02:00
Laurenz 0f4f37cc09 Bump ICU data 2023-10-28 20:35:38 +02:00
Laurenz aa62d05453 Fix justification with hanging indent and negative spacing
Fixes #2419
2023-10-28 20:05:51 +02:00
Laurenz c3b1e32d11 Fix justified linebreaking without justifiables 2023-10-28 18:02:16 +02:00
Martin Haug f78a8f5d48
Add IDs and creation date to PDFs (#2374) 2023-10-27 18:33:23 +02:00
Laurenz 4163b2eabc Fix spelling of sRGB 2023-10-27 17:56:30 +02:00
Laurenz 24a0bd8cfb Fix error priority for function arguments
Errors about superfluous arguments are now thrown before errors of the function execution itself.

Fixes #1367
2023-10-27 15:38:08 +02:00
Laurenz cbfd9884a9 Fix argument parsing bug
Things like `luma(1, key: "val")` didn't produce an error before because `args.finish()?` wasn't called. This changes `args: Args` to `args: &mut Args` to make it impossible for that to happen.
2023-10-27 13:25:15 +02:00
Laurenz fa81c3ece0 Less verbose `Debug` impl for `Element` 2023-10-27 13:00:48 +02:00
Joseph Wilson e182777133
Implement unary `array.zip`, closing #2478 (#2491) 2023-10-27 12:58:55 +02:00
tingerrr 1603e2df26
Fix trailing mandatory breaks being swallowed (#2502) 2023-10-27 00:17:47 +02:00
7sDream b80382b216
Use fontdb to search fonts, with basic fontconfig support (#2472) 2023-10-25 18:38:08 +02:00
Laurenz e686a11ae7 Bump dependencies 2023-10-25 17:39:40 +02:00
Francisco J. Sanchez c29a31b6c5
Fix pagebreak.to check (#2475) 2023-10-25 17:16:34 +02:00
Thomas Aldrian 866bd27d2e
Add `csch` and `sech` operators (#2378) 2023-10-25 17:12:11 +02:00
Laurenz 38f59c2a27 Improve color and gradient docs 2023-10-25 16:20:08 +02:00
Laurenz a7fbe5151e Bump pdf-writer
Fixes #2397
2023-10-24 15:23:04 +02:00
Laurenz 69191b6b20 Remove unnecessary backticks
Fixes #2447
2023-10-22 14:47:19 +02:00
LU Jialin f81a8d00e3
Refactor `cancel`, now able to take absolute angle or functions (#2466) 2023-10-22 14:07:30 +02:00
Wenzhuo Liu b97ee93b8f
Support adjustment of more CJK punctuation (#2456) 2023-10-22 13:45:51 +02:00
MALO cf9ca6cb59
Fix compiler panic for float with no vertical alignment (#2437) 2023-10-22 13:43:24 +02:00
Eric Biedert 3ed6462ee0
Don't hyphenate on no-break characters (#2396) 2023-10-22 13:36:33 +02:00
MALO aaac1dbd68
Adapt default figure separator to the current locale (#2390) 2023-10-22 13:33:00 +02:00
SekoiaTree 7f185f21e0
Add date to document (#2371) 2023-10-22 13:29:48 +02:00
SekoiaTree 3faad6bc5d
Add support for negative augment indexes (#2372) 2023-10-22 13:22:34 +02:00
Laurenz 208711203e Fix tag list order 2023-10-19 19:57:47 +02:00
tingerrr 76d4c39ce4
Only print unique diagnostics (#2385) 2023-10-19 12:04:05 +02:00
Joseph Wilson 06ba535c45
Clarified docs for `calc.perm,rem,quo` (#2408) 2023-10-19 10:12:28 +02:00
frozolotl 01b14ff316
Clear screen instead of resetting the terminal (#2431)
Resetting the terminal can change color themes and other settings.
This commit changes the behavior to just clear the screen.
2023-10-19 10:11:22 +02:00
Sébastien d'Herbais de Thun 56510d9df0
Fixed transform panic (#2435) 2023-10-19 09:57:03 +02:00
Sébastien d'Herbais de Thun 838b56e72b
removed `update_justifiable` (#2426) 2023-10-18 13:36:24 +02:00
Sébastien d'Herbais de Thun c0dbb900e8
Cached export for incremental (#2400) 2023-10-17 20:53:01 +02:00
Sébastien d'Herbais de Thun 37a988af83
Replace `Vec` with `EcoVec`, removed `Box` (#2420) 2023-10-17 20:50:36 +02:00
Sébastien d'Herbais de Thun 77b84675e5
Cache `is_justifiable` (#2399) 2023-10-17 18:12:34 +02:00
tingerrr 372476323f
Add `reverse` parameter to `cases` (#2370) 2023-10-17 11:48:46 +02:00
tingerrr 80175db397
Filter out prohibited line breaks in `par` (#2376) 2023-10-17 11:26:34 +02:00
Oscar 5f1ea5c48c
Add some integral symbols (#2413) 2023-10-17 11:22:13 +02:00
Sébastien d'Herbais de Thun d25c5ac9a2
Replaced `into_iter` to `iter` (#2398) 2023-10-17 11:15:01 +02:00
Peng Guanwen e4d9db83ea
Automatically add spacing between CJK and Latin characters (#2334) 2023-10-17 11:14:09 +02:00
Sébastien d'Herbais de Thun a59666369b
Part 5a: Gradients on text with `relative: auto` or `relative: "parent"` (#2364) 2023-10-12 18:03:52 +02:00
bluebear94 d3b62bd02e
MathAttach::primes: account for possible hash before base (#2363)
Fixes #2358.
2023-10-12 10:19:07 +02:00
KillTheMule d1a702f3fd
Simpler example for a regex (#2345) 2023-10-10 12:50:39 +02:00
tingerrr 0f24990579
Add `quote` element (#2252) 2023-10-10 11:59:11 +02:00
Sébastien d'Herbais de Thun 0dd79bbad2
Add `raw.line` (#2341) 2023-10-10 11:56:16 +02:00
Sébastien d'Herbais de Thun 9bca0bce73
Fix clipping when a box/block has a `radius` (#2338) 2023-10-10 11:51:22 +02:00
Sébastien d'Herbais de Thun a8af6b449a
Adds a default value to `.remove()` on `dict` and `array` (#2346) 2023-10-10 11:44:59 +02:00
Sébastien d'Herbais de Thun cef2d3afca
Gradient Part 4 - Conic gradients (#2325) 2023-10-10 11:29:05 +02:00
Laurenz f474639ebe Hashtag -> Hash 2023-10-09 16:04:10 +02:00
HydroH 7b61d722dd
Adjust table inset behavior to the same as container's (#1979) (#2323) 2023-10-09 15:52:04 +02:00
MALO 0804a9e25d
Use/allow U+2212 MINUS SIGN instead of U+002D HYPHEN MINUS everywhere (#2318) 2023-10-09 15:30:40 +02:00
Laurenz df49d3f0c6 Optimize `Str::rev` 2023-10-09 15:15:47 +02:00
Laurenz 2a19e7f4dc Bump ecow 2023-10-09 15:00:07 +02:00
Laurenz cb7079711a Expand label docs
Co-Authored-By: Andrew Voynov <37143421+Andrew15-5@users.noreply.github.com>
2023-10-09 13:58:39 +02:00
TheJosefOlsson 6dab95473b
Multinomial coefficients (#2237) 2023-10-09 13:46:16 +02:00
Laurenz 1819a0b266 Bump hypher 2023-10-08 14:20:40 +02:00
HydroH b584617c8d
Add `size:` argument for `abs`, `norm`, `floor`, `ceil` and `round` (#2292) (#2322) 2023-10-06 17:13:38 +02:00
Sébastien d'Herbais de Thun e7443abfe6
Gradient Part 3 - Radial gradients (#2312) 2023-10-06 16:47:20 +02:00
bluebear94 bced71b250
Fix Clippy lints (#2320) 2023-10-06 10:24:29 +02:00
bluebear94 6bb776029e
Fix crashes with infinite lengths (part 2) (#2298) 2023-10-05 10:26:36 +02:00
Laurenz ea0f22a8ca Adjust gradient docs 2023-10-04 15:34:53 +02:00
Laurenz 88914324fe Improve plugin docs
Fixes #2309
2023-10-04 15:34:40 +02:00
Laurenz e43e2c573e Fix HSL/HSV mixup 2023-10-04 15:12:34 +02:00