Skip to content

Better CJK support #276

@cqjjjzr

Description

@cqjjjzr

I've heard about this new typesetting engine from my friends and I'm immediately attracted to the intuitiveness and elegance of the typst's language - this is exactly the typesetting I need. However, after trying to typeset a lab report of mine using typst, I found its CJK typesetting somehow lacking. To be more detailed:

  • The CJK line-break rule (禁则处理/禁則処理) is basically honored, but all punctuations seem to be treated as using the same size as the normal CJK characters, instead of being squashed first when applying justification.
  • There's no way to specify fonts for CJK and non-CJK (e.g. Latin) characters separately.
  • The first-line indent of CJK paragraphs is always 2-character, and the first line in a page will also be indented, but currently, typst doesn't indent the first line of the first paragraph.
  • There's no way to switch between the basic "styles" of CJK fonts (Songti=Mincho, Heiti=Gothic, Kaiti, Fangsong, etc.) - solvable via custom functions.
  • The spacing between CJK and non-CJK characters should be adjusted.
  • No support for vertical typesetting.
  • No support for pronunciation labeling (ruby).

Since I'm not a typesetting expert, the list can be way longer than above. Supporting proper Chinese, Japanese, and Korean typesetting is a huge project involving numerous aspects, but is definitely invaluable. Please consider taking it into consideration.

Here's some related information:

  • JLREQ, CLREQ, and KLREQ : Requirements for Chinese/Japanese/Korean Text Layout;
  • The documentation of the xeCJK package: the most widely used Chinese LaTeX package;
  • The page of the upLaTeX engine: the most widely used Japanese LaTeX engine;
  • JIS X 4051 (日本語文書の組版方法, Formatting rules for Japanese documents)
  • Unicode Line Breaking Algorithm: http://unicode.org/reports/tr14/

Metadata

Metadata

Assignees

No one assigned

    Labels

    cjkChinese, Japanese, Korean typography.feature requestNew feature or requesttextRelated to the text category, which is all about text handling, shaping, etc.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions