typst: generic font families / font stack names#11918
typst: generic font families / font stack names#11918gordonwoodhull wants to merge 2 commits intomainfrom
Conversation
cscheid
left a comment
There was a problem hiding this comment.
I left some minor comments, but LGTM.
src/command/render/pandoc.ts
Outdated
| fontdirs.add(font_cache); | ||
| } | ||
| const srcDir = Deno.env.get("QUARTO_SRC_PATH") || | ||
| join(quartoConfig.sharePath(), "../../src"); |
There was a problem hiding this comment.
We use Deno.env.get("QUARTO_SRC_PATH") || join(quartoConfig.sharePath(), "../../src") in a few different places in our codebase. I wonder if we should be adding a srcPath() to quartoConfig
There was a problem hiding this comment.
I've implemented quartoConfig.srcPath() in a separate commit on this PR. (I only found one other use?)
1d7b76a to
f9f0bea
Compare
|
@cscheid, my only remaining reservation about this PR is that Noto Sans takes up 44MB of disk space. This is because it's is a non-variable font, which is what we currently need for Typst, and it has almost 80 variants (and lots of glyphs, being international). What do you think? |
9bcb6df to
778cd2d
Compare
this is a minimal implementation using Noto Sans as the sans-serif font and the built-in Typst fonts for serif, math, monospace each has a synonym, e.g. ui-sans-serif other generic font families could be added and we could ship fonts to replace the built-in Typst fonts fixes #11683 "big numbers" i can't figure out a way to automate this test but we should have it for visual testing
778cd2d to
0140417
Compare
|
Yikes. Thanks for catching that, and I agree it's bad. I don't think a 33% installation size increase is worth it, unless every other alternative is similarly large. Could you get an estimate of those sizes? |
|
We need to use the static version of a font because of typst/typst#185 not supporting variable fonts. Each font has 54-72 variants. Noto Sans is 44MB |
|
Turning this back to draft. It worked, but it required distributing big font files. We could automatically download a font when needed (using the brand mechanism) but it seems strange to do that for a built-in feature. (And it also seems strange to make this an opt-in feature when it's supposed to catch cases where users are not specifying a valid font, and don't know it because it's one of their packages that is doing it.) |
|
Could you distribute a small subset of Noto Sans (for example, just the Latin, Greek, Cyrillic glyphs in only Regular, Bold, Italic, BoldItalic), or would that still be too big? |
This is a minimal implementation of generic font families for Typst, using Noto Sans as the
sans-seriffont and the built-in Typst fonts forserif,math,monospace.Each has a synonym, e.g.
ui-sans-serifOther generic font families (or font stack names) could be added in the future, and we could ship fonts to replace the built-in Typst fonts.
Fixes #11683 "big numbers" in gt. I can't figure out a way to automate this test but at least we have a visual test.