From ab67eee2d479e72834598bb681bd0eb493f0dec2 Mon Sep 17 00:00:00 2001 From: nz366 Date: Fri, 27 Sep 2024 14:29:48 +0600 Subject: [PATCH] Add Bengali-Letter Numbering (#5048) --- crates/typst/src/model/numbering.rs | 14 ++++++++++++++ tests/suite/model/numbering.typ | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/crates/typst/src/model/numbering.rs b/crates/typst/src/model/numbering.rs index ed2081b98..ce1d6eae9 100644 --- a/crates/typst/src/model/numbering.rs +++ b/crates/typst/src/model/numbering.rs @@ -301,6 +301,8 @@ pub enum NumberingKind { DevanagariNumber, /// Bengali numerals. BengaliNumber, + /// Bengali letters (ক, খ, গ, ...কক, কখ etc.). + BengaliLetter, /// Circled numbers (①, ②, ③, etc.), up to 50. CircledNumber, /// Double-circled numbers (⓵, ⓶, ⓷, etc.), up to 10. @@ -327,6 +329,7 @@ impl NumberingKind { '\u{06F1}' => NumberingKind::EasternArabicPersian, '\u{0967}' => NumberingKind::DevanagariNumber, '\u{09E7}' => NumberingKind::BengaliNumber, + '\u{0995}' => NumberingKind::BengaliLetter, '①' => NumberingKind::CircledNumber, '⓵' => NumberingKind::DoubleCircledNumber, _ => return None, @@ -353,6 +356,7 @@ impl NumberingKind { Self::EasternArabicPersian => '\u{06F1}', Self::DevanagariNumber => '\u{0967}', Self::BengaliNumber => '\u{09E7}', + Self::BengaliLetter => '\u{0995}', Self::CircledNumber => '①', Self::DoubleCircledNumber => '⓵', } @@ -566,6 +570,16 @@ impl NumberingKind { Self::EasternArabicPersian => decimal('\u{06F0}', n), Self::DevanagariNumber => decimal('\u{0966}', n), Self::BengaliNumber => decimal('\u{09E6}', n), + Self::BengaliLetter => zeroless::<32>( + |x| { + [ + 'ক', 'খ', 'গ', 'ঘ', 'ঙ', 'চ', 'ছ', 'জ', 'ঝ', 'ঞ', 'ট', 'ঠ', 'ড', + 'ঢ', 'ণ', 'ত', 'থ', 'দ', 'ধ', 'ন', 'প', 'ফ', 'ব', 'ভ', 'ম', 'য', + 'র', 'ল', 'শ', 'ষ', 'স', 'হ', + ][x] + }, + n, + ), Self::CircledNumber => zeroless::<50>( |x| { [ diff --git a/tests/suite/model/numbering.typ b/tests/suite/model/numbering.typ index d0cbe2472..241ef3ea7 100644 --- a/tests/suite/model/numbering.typ +++ b/tests/suite/model/numbering.typ @@ -50,6 +50,11 @@ #t(pat: "\u{09E7}", 10, "১০") #t(pat: "\u{09E7}", 123456789, "১২৩৪৫৬৭৮৯") +// Bengali Consonants. +#t(pat: "\u{0995}", 1, "ক") +#t(pat: "\u{0995}", 32, "হ") +#t(pat: "\u{0995}", 32*2 , "কহ") + // Circled number. #t(pat: "①", 1, "①") #t(pat: "①", 50, "㊿")