From 5e41d13dc23a959b9ff37d8a2e566d94d05ea0ca Mon Sep 17 00:00:00 2001 From: Laurenz Date: Fri, 18 Jul 2025 13:30:17 +0200 Subject: [PATCH] Pay only for realization but not downstream --- crates/typst-realize/src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/crates/typst-realize/src/lib.rs b/crates/typst-realize/src/lib.rs index b7a21e789..1d87e892a 100644 --- a/crates/typst-realize/src/lib.rs +++ b/crates/typst-realize/src/lib.rs @@ -344,6 +344,7 @@ fn visit_show_rules<'a>( styles: StyleChain<'a>, ) -> SourceResult { // Determines whether and how to proceed with show rule application. + let keep_tags = content.can::() || content.label().is_some(); let Some(Verdict { prepared, mut map, step }) = verdict(s.engine, content, styles) else { return Ok(false); @@ -400,6 +401,9 @@ fn visit_show_rules<'a>( let (start, end) = tags.unzip(); if let Some(tag) = start { visit(s, s.store(TagElem::packed(tag)), styles)?; + if !keep_tags { + s.sink.pop(); + } } let prev_outside = s.outside; @@ -415,6 +419,9 @@ fn visit_show_rules<'a>( // Push end tag. if let Some(tag) = end { visit(s, s.store(TagElem::packed(tag)), styles)?; + if !keep_tags { + s.sink.pop(); + } } Ok(true)