diff --git a/crates/typst/src/model/numbering.rs b/crates/typst/src/model/numbering.rs index 3afde1f81..ed2081b98 100644 --- a/crates/typst/src/model/numbering.rs +++ b/crates/typst/src/model/numbering.rs @@ -299,6 +299,8 @@ pub enum NumberingKind { EasternArabicPersian, /// Devanagari numerals. DevanagariNumber, + /// Bengali numerals. + BengaliNumber, /// Circled numbers (①, ②, ③, etc.), up to 50. CircledNumber, /// Double-circled numbers (⓵, ⓶, ⓷, etc.), up to 10. @@ -324,6 +326,7 @@ impl NumberingKind { '\u{0661}' => NumberingKind::EasternArabic, '\u{06F1}' => NumberingKind::EasternArabicPersian, '\u{0967}' => NumberingKind::DevanagariNumber, + '\u{09E7}' => NumberingKind::BengaliNumber, '①' => NumberingKind::CircledNumber, '⓵' => NumberingKind::DoubleCircledNumber, _ => return None, @@ -349,6 +352,7 @@ impl NumberingKind { Self::EasternArabic => '\u{0661}', Self::EasternArabicPersian => '\u{06F1}', Self::DevanagariNumber => '\u{0967}', + Self::BengaliNumber => '\u{09E7}', Self::CircledNumber => '①', Self::DoubleCircledNumber => '⓵', } @@ -561,6 +565,7 @@ impl NumberingKind { Self::EasternArabic => decimal('\u{0660}', n), Self::EasternArabicPersian => decimal('\u{06F0}', n), Self::DevanagariNumber => decimal('\u{0966}', n), + Self::BengaliNumber => decimal('\u{09E6}', n), Self::CircledNumber => zeroless::<50>( |x| { [ diff --git a/tests/suite/model/numbering.typ b/tests/suite/model/numbering.typ index 93c9e1b30..d0cbe2472 100644 --- a/tests/suite/model/numbering.typ +++ b/tests/suite/model/numbering.typ @@ -45,6 +45,11 @@ #t(pat: "\u{0967}", 10, "१०") #t(pat: "\u{0967}", 123456789, "१२३४५६७८९") +// Bengali. +#t(pat: "\u{09E7}", 1, "১") +#t(pat: "\u{09E7}", 10, "১০") +#t(pat: "\u{09E7}", 123456789, "১২৩৪৫৬৭৮৯") + // Circled number. #t(pat: "①", 1, "①") #t(pat: "①", 50, "㊿")