From 5dbc15ef0c48cb024205ac84f295fdffef985374 Mon Sep 17 00:00:00 2001 From: sitandr <60141933+sitandr@users.noreply.github.com> Date: Tue, 23 May 2023 12:22:27 +0300 Subject: [PATCH] Forced size command in math (#1128) --- docs/src/reference/groups.yml | 10 +++ library/src/math/mod.rs | 5 ++ library/src/math/style.rs | 132 +++++++++++++++++++++++++++++++++- tests/ref/math/style.png | Bin 20415 -> 27879 bytes tests/typ/math/style.typ | 6 ++ 5 files changed, 152 insertions(+), 1 deletion(-) diff --git a/docs/src/reference/groups.yml b/docs/src/reference/groups.yml index 5d8b330ef..cd85b820b 100644 --- a/docs/src/reference/groups.yml +++ b/docs/src/reference/groups.yml @@ -16,6 +16,16 @@ These functions are distinct from the [`text`]($func/text) function because math fonts contain multiple variants of each letter. +- name: sizes + display: Sizes + functions: ["display", "inline", "script", "sscript"] + description: | + Forced size styles for expressions within formulas. + + These functions allow manual configuration of the size of equation elements + to make them look as in a display/inline equation or as if used in a root or + sub/superscripts. + - name: underover display: Under/Over functions: [ diff --git a/library/src/math/mod.rs b/library/src/math/mod.rs index f0e42e68c..3a067c1b0 100644 --- a/library/src/math/mod.rs +++ b/library/src/math/mod.rs @@ -100,6 +100,11 @@ pub fn module() -> Module { math.define("mono", mono); math.define("bb", bb); + math.define("display", display); + math.define("inline", inline); + math.define("script", script); + math.define("sscript", sscript); + // Text operators. math.define("op", OpElem::func()); op::define(&mut math); diff --git a/library/src/math/style.rs b/library/src/math/style.rs index d65058e6b..e0e1ccadf 100644 --- a/library/src/math/style.rs +++ b/library/src/math/style.rs @@ -178,6 +178,124 @@ pub fn bb( .into() } +/// Forced display style in math. +/// +/// This is the normal size for display equations. +/// +/// ## Example { #example } +/// ```example +/// $sum_i x_i/2 = display(sum_i x/2)$ +/// ``` +/// +/// Display: Display Size +/// Category: math +/// Returns: content +#[func] +pub fn display( + /// The content to size. + body: Content, + /// Whether to impose a height restriction for exponents, like regular sub- + /// and superscripts do. + #[named] + #[default(false)] + cramp: bool, +) -> Value { + MathStyleElem::new(body) + .with_size(Some(MathSize::Display)) + .with_cramp(Some(cramp)) + .pack() + .into() +} + +/// Forced inline (text) style in math. +/// +/// This is the normal size for inline equations. +/// +/// ## Example { #example } +/// ```example +/// $ sum_i x_i/2 +/// = inline(sum_i x_i/2) $ +/// ``` +/// +/// Display: Inline Size +/// Category: math +/// Returns: content +#[func] +pub fn inline( + /// The content to size. + body: Content, + /// Whether to impose a height restriction for exponents, like regular sub- + /// and superscripts do. + #[named] + #[default(false)] + cramp: bool, +) -> Value { + MathStyleElem::new(body) + .with_size(Some(MathSize::Text)) + .with_cramp(Some(cramp)) + .pack() + .into() +} + +/// Forced script style in math. +/// +/// This is the smaller size used in powers or sub- or superscripts. +/// +/// ## Example { #example } +/// ```example +/// $sum_i x_i/2 = script(sum_i x_i/2)$ +/// ``` +/// +/// Display: Script Size +/// Category: math +/// Returns: content +#[func] +pub fn script( + /// The content to size. + body: Content, + /// Whether to impose a height restriction for exponents, like regular sub- + /// and superscripts do. + #[named] + #[default(true)] + cramp: bool, +) -> Value { + MathStyleElem::new(body) + .with_size(Some(MathSize::Script)) + .with_cramp(Some(cramp)) + .pack() + .into() +} + +/// Forced second script style in math. +/// +/// This is the smallest size, used in second-level sub- and superscripts +/// (script of the script). +/// +/// ## Example { #example } +/// ```example +/// $sum_i x_i/2 = sscript(sum_i x_i/2)$ +/// ``` +/// +/// Display: Script-Script Size +/// Category: math +/// Returns: content +#[func] +pub fn sscript( + /// The content to size. + body: Content, + /// Whether to impose a height restriction for exponents, like regular sub- + /// and superscripts do. + #[named] + #[default(true)] + cramp: bool, +) -> Value { + MathStyleElem::new(body) + .with_size(Some(MathSize::ScriptScript)) + .with_cramp(Some(cramp)) + .pack() + .into() +} + /// A font variant in math. /// /// Display: Bold @@ -196,6 +314,12 @@ pub struct MathStyleElem { /// Whether to use italic glyphs. pub italic: Option, + + /// Whether to use forced size + pub size: Option, + + /// Whether to limit height of exponents + pub cramp: Option, } impl LayoutMath for MathStyleElem { @@ -211,6 +335,12 @@ impl LayoutMath for MathStyleElem { if let Some(italic) = self.italic(StyleChain::default()) { style = style.with_italic(italic); } + if let Some(size) = self.size(StyleChain::default()) { + style = style.with_size(size); + } + if let Some(cramped) = self.cramp(StyleChain::default()) { + style = style.with_cramped(cramped); + } ctx.style(style); self.body().layout_math(ctx)?; ctx.unstyle(); @@ -295,7 +425,7 @@ impl MathStyle { /// The size of elements in an equation. /// /// See the TeXbook p. 141. -#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Cast)] pub enum MathSize { /// Second-level sub- and superscripts. ScriptScript, diff --git a/tests/ref/math/style.png b/tests/ref/math/style.png index c5e722582fca06d0ec92243783917b92a5ac140d..39ecc44174ef39545e4e0429db43519fd67bc8fa 100644 GIT binary patch literal 27879 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

=qu4dN?U5=xGIk16kwJ6GfFg)=GI-)&~& zA?;QrYasE1eqlXNqIM0G*3O;#r2A=@uN&0so9K#PL~;&$}lXIRfq8Touw3^I__=S=G~QrX0$i!B+%)N1y>e{Kzyym0Q>KOU={Ln-JnTeghx+nY&&eI`?vB`RT1Bf8}% z@PH*Z`ZI2p zr%8t@T>atsLbl z#<)xybMuW#+Jo^HA)_9VYTR{T7W-mE+TVW;%@6Sn?n4-bIP3f`_;{b0kw7yNK&U4_ zgT}LqEeZ;{`78IypZh&}kcd+9E95n)osKcg#$nA(r}~z9&zf~OH@7D=Z?JB=cJ{@< zLc;T_QJA=e2|GS?FtIO8EkXv=mkLYF&$Pv5CZBQ1Fk_s7+>9yi8Qc6f9^#D4=*-)VsW literal 20415 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%0A!$9NoNw;qvu5Z*t+tH` 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 diff --git a/tests/typ/math/style.typ b/tests/typ/math/style.typ index 67a410aff..5ee0636f0 100644 --- a/tests/typ/math/style.typ +++ b/tests/typ/math/style.typ @@ -12,6 +12,12 @@ $A, italic(A), upright(A), bold(A), bold(upright(A)), \ bb("hello") + bold(cal("world")), \ mono("SQRT")(x) wreath mono(123 + 456)$ +--- +// Test forcing math size +$a/b, display(a/b), display(a)/display(b), inline(a/b), script(a/b), sscript(a/b) \ + mono(script(a/b)), script(mono(a/b))\ + script(a^b, cramp: #true), script(a^b, cramp: #false)$ + --- // Test a few style exceptions. $h, bb(N), cal(R), Theta, italic(Theta), sans(Theta), sans(italic(Theta))$