thank you. I am trying to get some usable OpenType Chinese font for ConTeXt on GNU/Linux.
Cheers, Hong October 3, 2024 at 7:45 AM, "黄复雄" <aahua...@gmail.com> wrote: > 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 > > ___________________________________________________________________________________ ___________________________________________________________________________________ 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 ___________________________________________________________________________________