diff --git a/crates/typst-library/src/layout/par.rs b/crates/typst-library/src/layout/par.rs index bb280069c..9b5f641b6 100644 --- a/crates/typst-library/src/layout/par.rs +++ b/crates/typst-library/src/layout/par.rs @@ -1206,15 +1206,20 @@ impl Iterator for Breakpoints<'_> { // Fix for: https://github.com/unicode-org/icu4x/issues/4146 if let Some(c) = self.p.bidi.text[..self.end].chars().next_back() { + if self.end == self.p.bidi.text.len() { + self.mandatory = true; + break; + } + self.mandatory = match lb.get(c) { LineBreak::Glue | LineBreak::WordJoiner | LineBreak::ZWJ => continue, LineBreak::MandatoryBreak | LineBreak::CarriageReturn | LineBreak::LineFeed | LineBreak::NextLine => true, - _ => self.end == self.p.bidi.text.len(), + _ => false, }; - }; + } break; }