diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-04-02 21:55:25 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-04-03 13:55:58 +0200 |
| commit | 23d108c8e099798dc4d35ce9cbcd3e37fb50f3b2 (patch) | |
| tree | aa068b11b9ac0a4795fb6e86bb8283b1d4718e95 /src/eval/styles.rs | |
| parent | beca01c826ee51c9ee6d5eadd7e5ef10f7fb9f58 (diff) | |
Font fallback
Diffstat (limited to 'src/eval/styles.rs')
| -rw-r--r-- | src/eval/styles.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/eval/styles.rs b/src/eval/styles.rs index 7fcaf734..a0dc263c 100644 --- a/src/eval/styles.rs +++ b/src/eval/styles.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use super::{Args, Content, Func, Span, Value}; use crate::diag::{At, TypResult}; use crate::library::layout::PageNode; -use crate::library::text::ParNode; +use crate::library::text::{FontFamily, ParNode, TextNode}; use crate::Context; /// A map of style properties. @@ -48,6 +48,17 @@ impl StyleMap { } } + /// Set a font family composed of a preferred family and existing families + /// from a style chain. + pub fn set_family(&mut self, family: FontFamily, existing: StyleChain) { + self.set( + TextNode::FAMILY, + std::iter::once(family) + .chain(existing.get_ref(TextNode::FAMILY).iter().cloned()) + .collect(), + ); + } + /// Set a recipe. pub fn set_recipe(&mut self, node: TypeId, func: Func, span: Span) { self.recipes.push(Recipe { node, func, span }); |
