Upgrade to Pro — share decks privately, control downloads, hide ads and more …

State of CJK issues and Kinsoku Shori in LibreO...

State of CJK issues and Kinsoku Shori in LibreOffice, 2026 edition

LibreOffice Conference 2026での発表資料です。
LibreOffice Conference 2026 slide
https://events.documentfoundation.org/libreoffice-conference-2026/talk/AVQR7U/

Avatar for Shinji Enoki

Shinji Enoki

September 11, 2026

More Decks by Shinji Enoki

Other Decks in Technology

Transcript

  1. Shinji Enoki (榎真治) Member of LibreOffice Japanese Team (2011-) •

    Membership Committee of The Document Foundation • Activity: organizing JA events, support JA communitiy, sometimes Ask libreoffice, translation and QA • Other communities: • Part-time staff of the Wikimedians of Japan User Group • Japan UNIX Society, KANSAI OPEN SOURCE, OpenStreetMap casual Mapper, etc. •
  2. What is Kinsoku Shori ( 禁則処理 )? Rules that control

    where a line can break in Japanese text • Prevents certain characters (punctuation, brackets, etc.) from starting or ending a line • Note: Chinese and Korean have similar but separate rules, this talk focuses on Japanese •
  3. Similar concepts in Western typography • Western typography has similar

    ideas: Widows and orphans ( 孤児行・寡婦行 ) • French spacing rules before "!" "?" ";" ":" • Hyphenation exceptions for proper nouns / short words • General avoidance of starting a line with comma/period/closing bracket •
  4. What is JLREQ? JLREQ : Japanese Layout Requirements • W3C

    document describing the rules of Japanese text layout • Covers line breaking, ruby, emphasis marks, and more • LibreOffice development references JLREQ. • Kinsoku Shori (this talk's focus) is one part of JLREQ • Actively maintained by W3C. You can submit feedback/issues too • https://www.w3.org/TR/jlreq/ •
  5. Kinsoku (§3.1.7 + §3.1.8) §3.1.7 Characters Not Starting a Line

    ( 行頭禁則 ) • Punctuation, closing brackets, etc. must not start a line • §3.1.8 Characters Not Ending a Line ( 行末禁則 ) • Opening brackets, etc. must not end a line • Both handled by ONE LibreOffice option: "Apply list of forbidden characters to the beginning and end of lines" (Format ▸ Paragraph ▸ Asian Typography) •
  6. Which characters are affected? • Not starting a line (

    行頭禁則 ) • • ): 、。 」』)}〉》】〕 ・ !? っゃゅょぁぃぅぇ ぉー々 Not ending a line ( 行末禁則 ) • 「『({〈《【〔
  7. • Hanging Punctuation (§3.1.9) ぶら下げ A different approach from Kinsoku:

    instead of moving the line break, the punctuation is allowed to hang outside the text margin • LibreOffice option: "Allow hanging punctuation" (Format ▸ Paragraph ▸ Asian Typography) • Note: the visual effect is easiest to see with a character grid (Text Grid) enabled •
  8. FILEOPEN DOC: wrong or different extend-leading for some documents compared

    to MS Word Bug 171275 Reported by Justin L (Collabora's mso-test) • DOC/DOCX: CJK line spacing differed from MS Word (regression) • Root cause: grid line count calculated in wrong order • Fixed in 27.2.0 / 26.8.1 by Jonathan • OK 25.2 NG 28.0.0
  9. No search results for vertical direction terms Bug 168783 Reported

    by Eyal Rozenberg • Vertical-direction terms didn't work in Help search • Fixed by Olivier Hallot (added help documentation) • Status: RESOLVED FIXED •
  10. The full-width conversion function is not working. (CJK-Japanese) Bug 173153

    Reported by Saburo • Katakana with dakuten (e.g. プロパティ ) wouldn't convert back to full-width • Root cause: text node capacity overflow • Fixed by Julien Nabet in 27.2.0 / 26.8.1 •
  11. Displayed font names do not follow the UI language :

    Bug 172879 Reported via ja-discuss mailing list, filed by Jonathan Clark • Windows daily builds regression: UI no longer shows Japanese font names • Not fix •
  12. isCJKIVSCharacter needs to support CJK Unified Ideographs Extension Block C

    to H for Unicode15: Bug 155820 Reported by DaeHyun • isCJKIVSCharacter only supports CJK Unified Ideographs Extension A/B; Unicode 15 added Extension Blocks C–H • Status: RESOLVED INSUFFICIENTDATA Ver 28.0.0 • OK NG
  13. Conclusion Introduced JLREQ Kinsoku Shori rules and how LibreOffice implements

    them • Reviewed CJK bugs fixed since last year's conference • Reviewed CJK bugs still open •