summaryrefslogtreecommitdiff
path: root/crates/typst-library/src/text
diff options
context:
space:
mode:
authorMax <me@mkor.je>2024-12-20 12:35:57 +0000
committerGitHub <noreply@github.com>2024-12-20 12:35:57 +0000
commitbb38a01d0625d5bdab0af50daf479e60c774d90e (patch)
treeb588b09ce44b698e7602d84ec3e43dd86a47b552 /crates/typst-library/src/text
parent39706fe42f269b3a283eeff9b595480631737159 (diff)
Fix math size resolving (#5596)
Diffstat (limited to 'crates/typst-library/src/text')
-rw-r--r--crates/typst-library/src/text/mod.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/crates/typst-library/src/text/mod.rs b/crates/typst-library/src/text/mod.rs
index ee81e3f2..25ed009e 100644
--- a/crates/typst-library/src/text/mod.rs
+++ b/crates/typst-library/src/text/mod.rs
@@ -50,6 +50,7 @@ use crate::foundations::{
Resolve, Scope, Set, Smart, StyleChain,
};
use crate::layout::{Abs, Axis, Dir, Em, Length, Ratio, Rel};
+use crate::math::{EquationElem, MathSize};
use crate::model::ParElem;
use crate::visualize::{Color, Paint, RelativeTo, Stroke};
use crate::World;
@@ -981,7 +982,14 @@ impl Resolve for TextSize {
type Output = Abs;
fn resolve(self, styles: StyleChain) -> Self::Output {
- self.0.resolve(styles)
+ let factor = match EquationElem::size_in(styles) {
+ MathSize::Display | MathSize::Text => 1.0,
+ MathSize::Script => EquationElem::script_scale_in(styles).0 as f64 / 100.0,
+ MathSize::ScriptScript => {
+ EquationElem::script_scale_in(styles).1 as f64 / 100.0
+ }
+ };
+ factor * self.0.resolve(styles)
}
}