Jump to Table of Contents Collapse Sidebar

clreq-gap for typst 2025-06-22, typst v0.13.1

Chinese Layout Gap Analysis for Typst.

Introduction

Typst is a markup-based typesetting software, and this document describes gaps for the support of the Chinese script within Typst. In particular, it is concerned with text layout and bibliography. It examines whether needed features are supported by the typst compiler, and provides information on potential workarounds.

This document also attempts to prioritize the gaps in terms of the impact on Chinese end authors. The prioritization is indicated by colour, as shown in Table 1.

Table 1: Priority levels

⚠ This document is only an early draft. Additionally, it is not endorsed by either W3C or Typst GmbH. Please refer to it with caution.

1 Text direction

See also §6.1 for features such as column layout, page turning direction, etc. that are affected by text direction.

(derived from a W3C document under its license)

Advanced — 1 Advanced, 1 Not applicable.

1.1 Writing mode

In what direction does text flow along a line and across a page? (If the basic direction is right-to-left see §1.2.) If the script uses vertically oriented text, what are the requirements? What about if you mix vertical text with scripts that are normally only horizontal? Do you need a switch to use different characters in vertical vs. horizontal text? Does typst support short runs of horizontal text in vertical lines (tate-chu-yoko in Japanese) as expected? Is the orientation of characters and the directional ordering of characters supported as needed?

(derived from a W3C document under its license)

Advanced — 1 Advanced.

Vertical Writing Mode

Advanced typst#5908

There are two writing modes in Chinese composition:

Compared with horizontal writing mode, vertical writing mode not only changes the direction of the text flow, but also adjusts the form, size, and position of punctuation marks (as shown in Figure 1 and Figure 2). Additionally, it requires adapting to mixed Chinese-Western text, captions of figures, multi-column layout, and more.

Considering that typst currently struggles even with basic vertical typesetting, we will not cover issues related to vertical writing mode in the following sections.

《永樂大典》The Yongle Encyclopedia
Figure 1: An ancient example of vertical text
Straight and wavy lines alongside vertical text 直排行间的专名号与书名号
Figure 2: A modern example of vertical text

1.2 Bidirectional text

If the general inline direction is right-to-left, are there any issues when handling that? Where the inline direction of text is mixed, is this bidirectional text adequately supported? What about numbers and expressions? Do the Unicode bidi controls and typst markup provide the support needed? Is isolation of directional runs problematic?

(derived from a W3C document under its license)

Not applicable

2 Glyph shaping & positioning

Basic — 2 Basic, 4 Advanced, 3 Not applicable.

2.1 Fonts selection

Do the standard fallback fonts used in typst match expectations? Is it convenient to select fonts?

Basic — 1 Basic, 2 Advanced.

Writing Chinese without configuring any font leads to messy font fallback

Advanced typst#5040 typst#5900 fix (doc-cn)

The default main text font in typst does not include Chinese characters. Therefore, when compiling locally, if you write Chinese without configuring any font using #set text(font: …), the fallback result may end up mixing fonts of different writing styles (as shown in Figure 3), making the text hard to read. Moreover, there is no warning or hint.

“为什么字体这么奇怪”, literally “Why is the font so strange”
Figure 3: The result might be a mixture of sans and serif fonts

Wrong monospace font fallback for Chinese in raw block

Advanced typst#3385 fix (doc-cn)

This issue continues the above issue.

Apart from the main text, typst presets another font for raw code blocks, which does not include Chinese characters either. Currently, this setting takes precedence over the main text font you specified, forcing you to re-declare the Chinese font by #show raw: set text(font: …).

Language-dependant font configuration

Basic typst#794

For punctuation marks such as quotation marks (see §4.2), Chinese and Western scripts share the same Unicode code points, but require different glyph forms. Therefore, their fonts must be set respectively.

我说:“T'Pol 是‘虚构’人物!”

2.2 Font rendering & font styles

How are fonts grouped into recognisable writing styles? How is each writing style used? Are special font or OpenType features needed for this script that are not available? What other general, font-related issues arise? The font styles described here refer to alternative types of writing style, such as naskh vs nastaliq; for oblique, italic, and weights see instead §2.5.

(derived from a W3C document under its license)

Advanced — 2 Advanced.

Size per font

Advanced typst#6295

It is common to use different fonts for Chinese and Western characters, and the visual sizes of different fonts may need to be fine-tuned for alignment.

共10人

Variable font

Advanced typst#185 typst#6054 fix (github)

Variable fonts offer more creative possibilities and have higher storage efficiency. Given the vast number of Chinese characters, designing and storing traditional static fonts can be challenging — for example, a static Noto Sans CJK OTF/TTC is often ~100 MB. This makes variable fonts especially valuable for the Chinese language.

#set text(font: "Source Han Serif SC VF")
可变字体

2.3 Context-based shaping and positioning

If context-sensitive rendering support is needed to shape combinations of letters or position certain glyphs relative to others, is this adequately provided for? Does the script in question require additional user control features to support alterations to the position or shape of glyphs, for example adjusting the distance between the base text and diacritics, or changing the glyphs used in a systematic way? Do you need to be able to compose/decompose conjuncts or ligatures, or show characters that are otherwise hidden, etc? If text is cursive, see the separate §2.4.

(derived from a W3C document under its license)

Not applicable

2.4 Cursive text

If this script is cursive (ie. letters are generally joined up, like in Arabic, N’Ko, Syriac, etc), are there problems or needed features related to the handling of cursive text? Do cursive links break if parts of a word are marked up or styled? Do Unicode joiner and non-joiner characters behave as expected?

(derived from a W3C document under its license)

Not applicable

2.5 Letterform slopes, weights, & italics

This covers ways of modifying the glyphs for a range of text, such as for italicisation, bolding, oblique, etc. Are italicisation, bolding, oblique, etc relevant? Do italic fonts lean in the right direction? Is synthesised italicisation or oblique problematic? Are there other problems relating to bolding or italicisation - perhaps relating to generalised assumptions of applicability? For alternative writing/font styles, see §2.2.

(derived from a W3C document under its license)

Basic — 1 Basic.

Fake (synthesized) bold

Basic typst#394 fix (universe/cuti) fix (doc-cn)

Classic Chinese fonts often have only one level of text weight. Therefore, fake bold is crucial in practice.

#set text(font: "SimSun")
想做出*最好的*灯泡。

2.6 Case & other character transforms

Does your script need special text transforms that are not supported? For example, do you need to to convert between half-width and full-width presentation forms? Does your script convert letters to uppercase, capitalised and lowercase alternatives according to your typographic needs? How about other transforms?

(derived from a W3C document under its license)

Not applicable

3 Typographic units

Advanced — 1 Advanced, 1 OK.

3.1 Characters & encoding

Most languages are now supported by Unicode, but there are still occasional issues. In particular, there may be issues related to ordering of characters, or competing encodings (as in Myanmar), or standardisation of variation selectors or the encoding model (as in Mongolian). Are there any character repertoire issues preventing use of this script in typst? Do variation selectors need attention? Are there any other encoding-related issues?

(derived from a W3C document under its license)

Advanced — 1 Advanced.

Ideographic variation sequence disappears at end of line

Advanced typst#5319 typst#5785

Ideographic Variation Sequence (IVS) is a mechanism for plain text specified by Unicode to change the glyph to be used to display a character. For more information, please refer to the FAQ on Unicode.org.

This issue is marked as advanced, because IVS is rarely used and can be replaced by settings such as #set text(lang: …, region: …).

3.2 Grapheme/word segmentation & selection

This is about how text is divided into graphemes, words, sentences, etc., and behaviour associated with that. Are there special requirements for the following operations: forwards/backwards deletion, cursor movement & selection, character counts, searching & matching, text insertion, line-breaking, justification, case conversions, sorting? Are words separated by spaces, or other characters? Are there special requirements when double-clicking or triple-clicking on the text? Are words hyphenated? (Some of the answers to these questions may be picked up in other sections, such as §5.1, or §5.6.)

(derived from a W3C document under its license)

OK

4 Punctuation & inline features

Basic — 1 Basic, 3 Advanced, 1 OK, 2 To be done.

4.1 Phrase & section boundaries

What characters are used to indicate the boundaries of phrases, sentences, and sections? What about other punctuation, such as dashes, connectors, separators, etc? Are there specific problems related to punctuation or the interaction of the text with punctuation (for example, punctuation that is separated from preceding text but must not be wrapped alone to the next line)? Are there problems related to bracketing information or demarcating things such as proper nouns, etc? Some of these topics have their own sections; see also §4.2, and §4.4.

(derived from a W3C document under its license)

To be done

4.2 Quotations & citations

This is a subtopic of phrase & section boundaries that is worth handling separately. What characters are used to indicate quotations? Do quotations within quotations use different characters? What characters are used to indicate dialogue? Are the same mechanisms used to cite words, or for scare quotes, etc? What about citing book or article names? Are there any issues when dealing with quotations marks, especially when nested? Should block quotes be indented or handled specially? Do quotation marks take text direction into account appropriately?

(derived from a W3C document under its license)

Basic — 1 Basic.

Quotation marks should have different widths for Chinese and Western text

Basic typst#5858 fix (doc-cn)

Both Chinese and Western quotation marks (and apostrophes) use the same Unicode code points:

But punctuation in Chinese is usually supposed to be wider than that in Western languages. This cannot be achieved automatically yet.

我说:“T'Pol 是‘虚构’人物!”

4.3 Emphasis & highlighting

How are emphasis and highlighting achieved? If lines or marks are drawn alongside, over or through the text, do they need to be a special distance from the text itself? Is it important to skip characters when underlining, etc? How do things change for vertically set text?

(derived from a W3C document under its license)

Advanced — 1 Advanced.

Underline breaks when mixing Chinese and Western text

Advanced typst#1210 typst#1716 (comment) fix (doc-cn)

Unlike the Latin alphabet, Chinese characters have no concept of ascenders and descenders. Therefore, underlines in Chinese should be drawn completely below the glyphs. Additionally, it is common to use different fonts for Chinese and Western characters, creating more difficulties in aligning the underline.

#underline[中文和English]

4.4 Abbreviation, ellipsis, & repetition

What characters or other methods are used to indicate abbreviation, ellipsis & repetition? Are there problems?

(derived from a W3C document under its license)

4.5 Inline notes & annotations

What mechanisms, if any, are used to create inline notes and annotations? Are the appropriate methods for inline annotations supported for this script? Both Hanyu Pinyin (Romanization) and Bopomofo (Phonetic Symbols) are included. This section deals with inline annotation approaches. For annotation methods where a marker in the text points out to another part of the document, see §6.3.

(derived from a W3C document under its license)

Advanced — 2 Advanced.

Add support for ruby (CJK, e.g., furigana for Japanese)

Advanced typst#1489

warichu

Advanced typst#193 (mentioned)

4.6 Text decoration & other inline features

This section is a catch-all for inline features that do not fit under the previous sections. It can also be used to describe in one place a set of general requirements related to inline features when those features appear in more than one of the sections above. It covers characters or methods (eg. text decoration) that are used to convey information about a range of text. Are all needed forms of highlighting or marking of text available, such as wavy underlining, numeric overbars, etc. If lines are drawn alongside, over or through the text, do they need to be a special distance from the text itself? Is it important to skip characters when underlining, etc? How do things change for vertically set text? Are there other punctuation marks that were not covered in preceding sections? Are lines correctly drawn relative to vertical text?

(derived from a W3C document under its license)

To be done

4.7 Data formats & numbers

Relevant here are formats related to number, currency, dates, personal names, addresses, and so forth. If the script has its own set of number digits, are there any issues in how they are used? Does the script or language use special format patterns that are problematic (eg. 12,34,000 in India)? What about date/time formats and selection - and are non-Gregorian calendars needed? Do percent signs and other symbols associated with number work correctly, and do numbers need special decorations, (like in Ethiopic or Syriac)? How about the management of personal names, addresses, etc. in typst: are there issues?

(derived from a W3C document under its license)

OK — 1 OK.

Numbers in Chinese

OK

#numbering("一", 299792458)

#numbering("壹", 299792458)

Natively supported. Mentioned here to prevent future people from reimplementing it.

5 Line and paragraph layout

Basic — 5 Basic, 6 Advanced, 1 OK, 2 To be done.

5.1 Line breaking & hyphenation

Does typst capture the rules about the way text in your script wraps when it hits the end of a line? Does line-breaking wrap whole words at a time, or characters, or something else (such as syllables in Tibetan and Javanese)? What characters should not appear at the end or start of a line, and what should be done to prevent that? Is hyphenation used for your script, or something else? If hyphenation is used, does it work as expected? (Note, this is about line-end hyphenation when text is wrapped, rather than use of the hyphen and related characters as punctuation marks.)

(derived from a W3C document under its license)

OK

5.2 Text alignment & justification

When text in a paragraph needs to have flush lines down both sides, does it follow the rules for your script? Does the script need assistance to conform to a grid pattern? Does your script allow punctuation to hang outside the text box at the start or end of a line? Where adjustments are need to make a line flush, how is that done? Do you shrink/stretch space between words and/or letters? Are word baselines stretched, as in Arabic? What about paragraph indents, or the need for logical alignment keywords, such as start/end, rather than left/right? Does the script indent the first line of a paragraph?

(derived from a W3C document under its license)

Basic — 1 Basic, 4 Advanced, 1 To be done.

CJK-latin glues stretch only before latin characters

Advanced typst#6062

#set par(justify: true)
#block(width: 3em)[第1回成段]

Strict grid aligned in both horizontal and vertical axes

Advanced typst#4404

#set par(justify: true)
#block(width: 7.5em)[
天生我材必有用千金散尽还复来烹羊宰牛且为乐会须一饮三百杯
]

Brackets at the beginning of paragraph

To be done typst#4011

Parenthetical indication punctuation marks at the start of paragraphs are not adjusted sometimes

Advanced typst#2348

#set par(justify: true)
《新生》的出版之期接近了……

#set par(first-line-indent: 2em)
《新生》的出版之期接近了……

Unexpected indentation after figures, lists and block equations

Basic typst#3206 fix (doc-cn)

Figures, lists and block equations will break the paragraph, causing the following text to start a new paragraph. This becomes visually noticeable when a first-line indent is applied. In Chinese, it is common practice to use a 2-em first-line indent, making this issue particularly apparent.

#set par(first-line-indent: (amount: 2em, all: true))

段首起始该缩进
$ integral f dif x $
此处应当仍在段内,不该缩进。

Even inter-character spacing

Advanced fix (doc-cn) fix (universe/tricorder)

Even inter-character spacing means letting several Chinese characters to occupy a fixed width and be evenly distributed.

丁声树 黎锦熙 \
李荣 陆志韦

5.3 Text spacing

This section is concerned with spacing that is adjusted around and between characters on a line in ways other than attempts to fit text to a given width (ie. justification). Some scripts create emphasis or other effects by spacing out the words, letters or syllables in a word. Are there requirements for this script/language that are unsupported? If spacing needs to be applied between letters and numbers, is that possible? What about space associated with punctuation, such as the gap before a colon in French? (For justification related spacing, see §5.2.)

(derived from a W3C document under its license)

Basic — 1 Basic, 2 Advanced.

CJK-Latin-spacing not working around raw

Advanced typst#2702 fix (doc-cn)

汉字`(code)`汉字

CJK-Latin-spacing not working around inline equations

Advanced typst#2703 fix (doc-cn)

汉字$A$汉字

Punctuation compression is interrupted by #show

Basic typst#5474

噫)。嘘).唏

#show "。": "."
噫)。嘘).唏

5.4 Baselines, line-height, etc.

Does typst support requirements for baseline alignment between mixed scripts and in general? Are there issues related to line height or inter-line spacing, etc.? Are the requirements for baseline or line height in vertical text covered?

(derived from a W3C document under its license)

Basic — 1 Basic.

Default line height is too tight for Chinese

Basic fix (doc-cn)

Unlike the Latin alphabet, Chinese characters have no concept of ascenders and descenders. So even though the numerical values of the leading are the same, the visual spacing of Chinese is smaller than that of Western text.

Typst 国王 \
Typst 国王

5.5 Lists, counters, etc.

Are there list or other counter styles in use? If so, what is the format used and can that be achieved? Are the correct separators available for use after list counters? Are there other aspects related to counters and lists that need to be addressed? Are list counters handled correctly in vertical text?

(derived from a W3C document under its license)

Basic — 2 Basic.

List and enum markers are not aligned with the baseline of the item's contents

Basic typst#1204 fix (doc-cn)

This issue occurs when the marker and the content have different heights. It is common in mixed Chinese-Western text layouts to use different fonts for Chinese and Western characters. As a result, the height of Western (numeric) markers is likely to differ from that of the Chinese content, triggering the issue.

#set text(font: (
(name: "New Computer Modern", covers: "latin-in-cjk"),
"SimSun",
))

+ 鲁镇的酒店的格局,是和别处不同的。

Too wide spacing between heading numbering and title

Basic typst#5778 fix (doc-cn)

In Chinese, the chapter number and its title are typically separated by the secondary comma U+3001  ideographic comma. Unlike the dot . used in formats like 1. Title, no extra space should follow the in examples such as 一、标题. However, typst puts a hard-coded 0.3-em space here.

#set heading(numbering: "一、")
= 标题

5.6 Styling initials

Does typst correctly handle special styling of the initial letter of a line or paragraph, such as for drop caps or similar? How about the size relationship between the large letter and the lines alongside? where does the large letter anchor relative to the lines alongside? is it normal to include initial quote marks in the large letter? is the large letter really a syllable? etc. Are all of these things working as expected?

(derived from a W3C document under its license)

To be done

6 Page & book layout

To be done — 5 To be done.

6.1 General page layout & progression

How are the main text area and ancillary areas positioned and defined? Are there any special requirements here, such as dimensions in characters for the Japanese kihon hanmen? The book cover for scripts that are read right-to-left scripts is on the right of the spine, rather than the left. Is that provided for? When content can flow vertically and to the left or right, how do you specify the location of objects, text, etc. relative to the flow? For example, keywords left and right are likely to need to be reversed for pages written in English and page written in Arabic. Do tables and grid layouts work as expected? How do columns work in vertical text? Can you mix block of vertical and horizontal text correctly? Does text scroll in the expected direction? Other topics that belong here include any local requirements for things such as printer marks, tables of contents and indexes. See also §6.2.

(derived from a W3C document under its license)

To be done

6.2 Grids & tables

As a subtopic of page layout, does the script have special requirements for character grids or for tables?

(derived from a W3C document under its license)

To be done

6.3 Footnotes, endnotes, etc.

Does your script have special requirements for footnotes, endnotes or other necessary annotations of this kind in the way needed for your culture? (See §4.5 for purely inline annotations, such as ruby or warichu. This section is more about annotation systems that separate the reference marks and the content of the notes.)

(derived from a W3C document under its license)

To be done

6.4 Page headers, footers, etc.

Are there special conventions for page numbering, or the way that running headers and the like are handled?

(derived from a W3C document under its license)

To be done

6.5 Forms & user interaction

Are vertical form controls well supported? In right-to-left scripts, is it possible to set the base direction for a form field? Is the scroll bar on the correct side? etc. Are there other aspects related to user interaction that need to be addressed?

(derived from a W3C document under its license)

To be done

7 Bibliography

Is there any difficulty in complying with the Chinese national standard GB/T 7714—2015 Information and documentation—Rules for bibliographic references and citations to information resources (PDF)?

Broken — 3 Broken, 4 Basic, 4 Advanced.

GB/T 7714—2015 specifies the following three citation styles. Each style uses a dedicated citing format in the main text, and the bibliography list at the end also arranges differently. However, the rules on recording each individual work are identical.

The first style is the most widely used. The following sections will refer to this method unless otherwise specified.

7.1 Citing

Is it possible to cite a work in the main text using cite? Does the result meet expectations?

Broken — 1 Broken, 2 Basic, 1 Advanced.

Citation numbers are flying over their brackets

Basic fix (doc-cn)

The style gb-7714-2015-numeric formats a citation with a number enclosed in square brackets (e.g., [1]) and render them in superscript. However, some fonts only provide dedicated superscript glyphs for numbers, not for brackets. This can cause misalignment, with the numbers appearing higher than the brackets in the superscript.

#set text(font: "Noto Serif CJK SC")
孔乙己@key\上大人

#let bib = ```bib
@misc{key,
title = {Title},
}
```.text
#bibliography(bytes(bib), style: "gb-7714-2015-numeric")

Compression of continuous citation numbers

Basic hayagriva#189 (mentioned)

Compression should start from two citations., but the current threshold is three.

两篇@a @b \
三篇@a @b @c

#let bib = (
"abc".clusters().map(n => "@misc{[n], title = {Title}}".replace("[n]", n)).sum()
)
#bibliography(bytes(bib), style: "gb-7714-2015-numeric")

Superscript and non-superscript forms should coexist

Broken fix (doc-cn)

Both the superscript and non-superscript forms are needed in practice.

 孔乙己@key,另见文献~#parencite(<key>)。

Cite with page numbers

Advanced fix (forum)

初次@a[260] \
再次@a[326--329] @b @c @d

#let bib = (
"abcd".clusters().map(n => "@misc{[n], title = {Title}}".replace("[n]", n)).sum()
)
#bibliography(bytes(bib), style: "gb-7714-2015-numeric")

This issue is marked as advanced, because citing with page number is not common. According to GB/T 7714—2015 §10.1.3, in most cases, page numbers should be recorded in the bibliography list. Citing with page number is only necessary when the work is cited multiple times with different page numbers.

7.2 Bibliography listing

Can bibliography generate a bibliography / reference listing at the end of the article or the page? Does each entry have all parts? Does the citation format meet the standard?

Broken — 2 Broken, 1 Basic, 2 Advanced.

Use et al. for English and for Chinese

Broken citationberg#5 hayagriva#291 nju-lug/modern-nju-thesis#3 csimide/SEU-Typst-Template#1 fix (doc-cn) fix (universe/modern-nju-thesis)

It is extremely common to cite both Chinese and English works in an article. For multi-author literature, some authors may be omitted. In such cases, we should use et al. for English and for Chinese.

Currently, #set text(lang: …) can select et al. (en) or (zh) for all entries, but it is not possible to set each entry individually.

@article{吴伟仁2017,
title = {“嫦娥4号”月球背面软着陆任务设计},
author = {{吴伟仁} and {王琼} and {唐玉华} and {于国斌} and {刘继忠} and {张玮} and {宁远明} and {卢亮亮}},
date = {2017-01},
journaltitle = {深空探测学报},
volume = {4},
number = {2},
pages = {111--117},
doi = {10.15982/j.issn.2095-7777.2017.02.002},
langid = {chinese}
}
@article{su2025,
title = {South {{Pole}}{{Aitken}} Massive Impact 4.25 Billion Years Ago Revealed by {{Chang}}'e-6 Samples},
author = {Su, Bin and Chen, Yi and Wang, Zeling and Zhang, Di and Chen, Haojie and Gou, Sheng and Yue, Zongyu and Liu, Yanhong and Yuan, Jiangyan and Tang, Guoqiang and Guo, Shun and Li, Qiuli and Lin, Yang-Ting and Li, Xian-Hua and Wu, Fu-Yuan},
date = {2025-03-20},
journaltitle = {National Science Review},
shortjournal = {Natl. Sci. Rev.},
pages = {nwaf103},
issn = {2095-5138},
doi = {10.1093/nsr/nwaf103},
langid = {english},
}

institution and school are not shown

Broken hayagriva#112 fix (doc-cn)

institution and school are not recognized as aliases of publisher, and typst does not understand institute in CSL either. The school field is conventionally associated with @thesis ([D]), and the institute field with @report ([R]). These fields should be placed between the location and the date after [D]/[R].

@report{report,
author = {Robert Swearingen},
title = {Morphology and syntax of British sailors’ English},
series = {Technical Report},
number = {249},
institution = {Profanity Institute},
address = {New York},
year = {1985},
}
@thesis{王楠2016,
title = {在“共产主义视镜”下想象科学——“十七年”期间的中国科幻文学与科学话语},
author = {王楠},
date = {2016-08-05},
institution = {新加坡国立大学},
location = {新加坡},
url = {https://scholarbank.nus.edu.sg/handle/10635/132143},
urldate = {2025-02-15},
langid = {chinese}
}

Discontinuous page numbers are displayed incorrectly, missing a comma

Basic fix (doc-cn)

@phdthesis{alterego,
type = {{超高校级学位论文}},
title = {{基于图书室的笔记本电脑的 Alter Ego 系统}},
author = {不二咲, 千尋},
year = {2010},
address = {某地},
school = {私立希望ヶ峰学園},
publisher = {私立希望ヶ峰学園},
pages = {1--3, 5},
}

Chinese works should be ordered by the pinyin or strokes of the authors for gb-7714-2015-author-date

Advanced hayagriva#259

The style gb-7714-2015-author-date currently sorts works by Unicode code points. However, according to the standard, when using this style, the cited works should first be grouped by scripts, then arranged by author names and publication dates. For Chinese works, they may be ordered by either pinyin or strokes.

gb-7714-2015-note is totally broken

Advanced hayagriva#189 (mentioned)

孔乙己@key \
上大人@key

#let bib = ```bib
@misc{key,
author = {Author},
title = {Title},
date = {2025-06-17},
}
```.text
#bibliography(bytes(bib), style: "gb-7714-2015-note")

7.3 Bibliography file

Are there difficulties creating files related to bibliography? Including the database of reference entires (Hayagriva *.yml, BibTeX *.bib) and the Citation Style Language style *.csl.

Basic — 1 Basic, 1 Advanced.

@standard is not correctly interpreted

Basic hayagriva#312

@standard is the [S] type in GB/T 7714—2015. It is a regular type in CSL, and a non-standard type in BibTeX (but accepted by biber). However, typst interprets it as @misc ([Z]) or @webpage ([EB]).

@standard{DASH,
title = {Information Technology — {{Dynamic}} Adaptive Streaming over {{HTTP}} ({{DASH}}) — {{Part}} 1: {{Media}} Presentation Description and Segment Formats},
author = {{ISO/IEC}},
date = {2022-08},
number = {ISO/IEC 23009-1:2022(E)},
publisher = {International Organization for Standardization},
url = {https://www.iso.org/standard/83314.html},
pubstate = {Published},
version = {5},
}

Failed to load some CSL styles

Advanced fix (doc-cn)

The compiler does not support the CSL-M standard yet, nor is it compatible with some extensions of citeproc-js.

8 Other

Broken — 1 Broken, 3 Advanced.

8.1 Culture-specific features

Sometimes a script or language does things that are not common outside of its sphere of influence. This is a loose bag of additional items that were not previously mentioned. This section may also be relevant for observations related to locale formats (such as number, date, currency, format support).

(derived from a W3C document under its license)

Broken — 1 Broken, 1 Advanced.

For references to headings, the supplement should not be put before the number

Broken typst#5102 typst#2485 (mentioned)

When referencing chapters and sections in Chinese, it is standard to write 第一章 or 2.1小节, while forms like 小节2.1 are rarely used, and 章一 is virtually nonexistent. Therefore, the supplement parameter of ref or heading is useless for Chinese, making it inevitable to use #show ref: it => ….

Literal meanings:

#set heading(numbering: "1.1")
== 标题 <sec>
@sec

Besides, defining a show rule to replace ref with link(it.element.location(), …) will cause other problems, such as difficulty in coloring link and ref separately.

Bilingual figure captions

Advanced fix (doc-cn)

8.2 What else?

There are many other modules and specifications which may need review for script-specific requirements. What else is likely to cause problems for worldwide usage of typst, and what requirements need to be addressed to make typst function well locally?

(derived from a W3C document under its license)

Advanced — 2 Advanced.

Ignore linebreaks between CJK characters in source code

Advanced typst#792 fix (doc-cn) fix (universe/cjk-unbreak)

测试一下,
效果怎么样。

This issue is marked as advanced, because not all people want this behaviour.

Disable the spell checker of webapp

Advanced fix (doc-cn)

The spell checker embedded in the webapp does not support Chinese, marking all characters as misspelled, as shown in Figure 4.

我要給阿Q做正傳,已經不止一兩年了。但一面要做,一面又往回想,這足見我不是一個“立言”的人,因為從來不朽之筆,須傳不朽之人,於是人以文傳,文以人傳——究竟誰靠誰傳,漸漸的不甚瞭然起來,而終於歸接到傳阿Q,仿佛思想裏有鬼似的。
Figure 4: 94 spelling mistakes

Addendum

Summary

  1. 1 Text direction

    1 Advanced, 1 Not applicable

  2. 2 Glyph shaping & positioning

    2 Basic, 4 Advanced, 3 Not applicable

  3. 3 Typographic units

    1 Advanced, 1 OK

  4. 4 Punctuation & inline features

    1 Basic, 3 Advanced, 1 OK, 2 To be done

  5. 5 Line and paragraph layout

    5 Basic, 6 Advanced, 1 OK, 2 To be done

  6. 6 Page & book layout

    5 To be done

  7. 7 Bibliography

    3 Broken, 4 Basic, 4 Advanced

  8. 8 Other

    1 Broken, 3 Advanced

Environment of the examples

References

To be done

Umbrella/tracking issues