Added argument to disable limits in inline math, closes #1522 (#1552)

This commit is contained in:
sitandr 2023-06-24 15:28:36 +03:00 committed by GitHub
parent fa42a26f6f
commit c5e82b3fa8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 2 deletions

View File

@ -124,13 +124,25 @@ pub struct LimitsElem {
/// The base to attach the limits to. /// The base to attach the limits to.
#[required] #[required]
pub body: Content, pub body: Content,
/// Whether to apply limits in inline equations.
///
/// It is useful to disable this setting
/// in most cases of applying limits globally
/// (inside show rules or new elements)
#[default(true)]
pub inline: bool,
} }
impl LayoutMath for LimitsElem { impl LayoutMath for LimitsElem {
#[tracing::instrument(skip(ctx))] #[tracing::instrument(skip(ctx))]
fn layout_math(&self, ctx: &mut MathContext) -> SourceResult<()> { fn layout_math(&self, ctx: &mut MathContext) -> SourceResult<()> {
let mut fragment = ctx.layout_fragment(&self.body())?; let mut fragment = ctx.layout_fragment(&self.body())?;
fragment.set_limits(Limits::Always); fragment.set_limits(if self.inline(ctx.styles()) {
Limits::Always
} else {
Limits::Display
});
ctx.push(fragment); ctx.push(fragment);
Ok(()) Ok(())
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -97,5 +97,6 @@ $ attach(A, t: #locate(it => oops)) $
#let eq = $ _a^b iota_a^b $ #let eq = $ _a^b iota_a^b $
#eq #eq
#show "∫": math.limits #show "∫": math.limits
#show math.iota: math.limits #show math.iota: math.limits.with(inline: false)
#eq #eq
$iota_a^b$