I use \usetypescriptfile[mscore], which means using the font configuration that comes with ConTeXt, which is suitable for Windows systems. For details, see the installation file type-imp-mscore.mkiv. If you set the body font, both OpenType and TrueType are OK.
On Thu, Oct 3, 2024 at 6:42 AM <h...@hongfeng.ch> wrote: > > I'm curious what Chinese font(s) you are using with ConTeXt? Are they > OpenType font, > or TrueType? > > > > October 2, 2024 at 12:56 PM, "黄复雄" <aahua...@gmail.com> wrote: > > > This is a preliminary solution for inserting spaces between Chinese > > > > characters and non-Chinese characters > > > > ```ConTeXt > > > > \mainlanguage[cn] > > > > \language[cn] > > > > \setscript[hanzi] > > > > \usetypescriptfile[mscore] > > > > \usebodyfont [mschinese,12pt] > > > > \showglyphs > > > > \startluacode > > > > Thirddata = Thirddata or {} > > > > local glyph_id = nodes.nodecodes.glyph --node.id("glyph") > > > > local node_insertbefore = node.insertbefore > > > > local node_insertafter = node.insertafter > > > > local node_new = node.new > > > > local tex_sp = tex.sp > > > > local function ischinesechar(c) > > > > -- for more ranges: > > > > -- https://wiki.contextgarden.net/List_of_Unicode_blocks > > > > return (c >= 0x04E00 and c <= 0x09FFF) > > > > or (c >= 0x03400 and c <= 0x04DBF) > > > > or (c >= 0x20000 and c <= 0x2A6DF) > > > > end > > > > function Thirddata.processmystuff(head) > > > > local n = head > > > > while n do > > > > if n.id == glyph_id and ischinesechar(n.char) then > > > > local n_prev = n.prev > > > > if n_prev > > > > and n_prev.id == glyph_id > > > > and not ischinesechar(n_prev.char) > > > > then > > > > local glue = node_new("glue") > > > > glue.width = tex_sp("0.25em") > > > > glue.stretch = tex_sp("0.25em") > > > > print("insert space before:", utf8.char(n.char)) > > > > head, glue = node_insertbefore(head, n, glue) > > > > end > > > > local n_next = n.next > > > > if n_next > > > > and n_next.id == glyph_id > > > > and not ischinesechar(n_next.char) > > > > then > > > > local glue = node_new("glue") > > > > glue.width = tex_sp("0.25em") > > > > glue.stretch = tex_sp("0.25em") > > > > print("insert space after:", utf8.char(n.char)) > > > > head, glue = node_insertafter(head, n, glue) > > > > n = glue.next > > > > end > > > > end > > > > n = n.next > > > > end > > > > return head, done > > > > end > > > > nodes.tasks.appendaction("processors", "after", "Thirddata.processmystuff") > > > > \stopluacode > > > > \starttext > > > > 今天出去买菜花了5000元。 > > > > 新MacBook Pro有15\%的CPU性能提升。 > > > > \stoptext > > > > ``` > > > > On Tue, Oct 1, 2024 at 2:07 PM <ai2472206...@yeah.net> wrote: > > > >> hi, > >> > >> Is there any way to automatically control the spacing between Chinese and > >> non-Chinese characters? > >> > >> I noticed that there is a tracker that tracks character types and > >> annotates them. > >> > >> But I don't know much about lua and the underlying tex. > >> > >> Any suggestions would be greatly appreciated. > >> > >> For example, glue is automatically added between Chinese characters and > >> English or numbers. > >> > >> input: 今天出去买菜花了5000元。 > >> > >> will get: 今天出去买菜花了 5000 元。 > >> > >> ---------------------------------- > >> > >> input: 新MacBook Pro有15%的CPU性能提升。 > >> > >> will get: 新 MacBook Pro 有 15% 的 CPU 性能提升。 > >> > >> Muyik > >> > >> ___________________________________________________________________________________ > >> > >> If your question is of interest to others as well, please add an entry to > >> the Wiki! > >> > >> maillist : ntg-context@ntg.nl / > >> https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl > >> > >> webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) > >> > >> archive : https://github.com/contextgarden/context > >> > >> wiki : https://wiki.contextgarden.net > >> > >> ___________________________________________________________________________________ > > > > ___________________________________________________________________________________ > > > > If your question is of interest to others as well, please add an entry to > > the Wiki! > > > > maillist : ntg-context@ntg.nl / > > https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl > > > > webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) > > > > archive : https://github.com/contextgarden/context > > > > wiki : https://wiki.contextgarden.net > > > > ___________________________________________________________________________________ > ___________________________________________________________________________________ > If your question is of interest to others as well, please add an entry to the > Wiki! > > maillist : ntg-context@ntg.nl / > https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl > webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) > archive : https://github.com/contextgarden/context > wiki : https://wiki.contextgarden.net > ___________________________________________________________________________________ ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___________________________________________________________________________________