diff --git a/crates/typst-library/src/html/dom.rs b/crates/typst-library/src/html/dom.rs index 961a4ea74..8e7b5a855 100644 --- a/crates/typst-library/src/html/dom.rs +++ b/crates/typst-library/src/html/dom.rs @@ -477,6 +477,7 @@ pub mod tag { tags! { math + menclose mfrac mi mmultiscripts diff --git a/crates/typst-library/src/math/equation.rs b/crates/typst-library/src/math/equation.rs index ed03454a7..0e802a200 100644 --- a/crates/typst-library/src/math/equation.rs +++ b/crates/typst-library/src/math/equation.rs @@ -165,7 +165,7 @@ impl Synthesize for Packed { } use crate::foundations::SequenceElem; -use crate::math::{AccentElem, AttachElem, FracElem, LrElem, PrimesElem}; +use crate::math::{AccentElem, AttachElem, CancelElem, FracElem, LrElem, PrimesElem}; use ecow::eco_format; fn bla(elem: &Content, engine: &mut Engine, styles: StyleChain) -> SourceResult { dbg!(elem); @@ -187,6 +187,18 @@ fn bla(elem: &Content, engine: &mut Engine, styles: StyleChain) -> SourceResult< show_frac(elem, engine, styles) } else if let Some(elem) = elem.to_packed::() { show_attach(elem, engine, styles) + } else if let Some(elem) = elem.to_packed::() { + let notation = if elem.cross(styles) { + "updiagonalstrike downdiagonalstrike" + } else if elem.inverted(styles) { + "downdiagonalstrike" + } else { + "updiagonalstrike" + }; + let tag = HtmlElem::new(tag::math::menclose) + .with_attr(HtmlAttr::constant("notation"), notation); + let body = elem.body.clone(); + Ok(tag.with_body(Some(body)).pack().spanned(elem.span())) } else if let Some(elem) = elem.to_packed::() { let accent = TextElem::packed(eco_format!(" {}", elem.accent.0)); let accent = HtmlElem::new(tag::math::mo).with_body(Some(accent)).pack();