在 ConTeXt 中开始使用中文

在 ConTeXt 中开始使用中文

我正在尝试使用 ConTeXt 设置一个基本文档,但甚至在开始时都遇到了困难。

首先,我尝试了ConTeXt wiki:中文。我尝试了该页面上的示例代码:

\enableregime[utf]
\usemodule[chi-00]
\starttext
    你好!
\stoptext

编译时没有错误,但显示一个空文档。

接下来,我尝试根据我对汉语拼音

\usemodule[chinese]
\usemodule[chi-simplified]
\defineunicodefont [SimChi] [SimplifiedChinese] [chinese]
\definefontsynonym [SimChiLiShuRegular] [gbls] [encoding=gbk]
\definefontsynonym [SimChiLiShuSlanted] [gbls] [encoding=gbk]
\definefontsynonym [SimChiLiShuItalic]  [gbls] [encoding=gbk]
\definefontsynonym [SimChiLiShuBold]    [gbls] [encoding=gbk]
\definefontsynonym [SimChiLiShuBoldSlanted] [gbls] [encoding=gbk]
\definefontsynonym [SimChiLiShuBoldItalic] [gbls] [encoding=gbk]
\starttext
    \completecontent
    \chapter{你好}
        你好
\endtext

我不确定这段代码适用于哪个编译器:

  • context test.tex编译器抱怨的是\defineunicodefont“未定义的控制序列”。
  • 使用时texexec --xtx test.tex,编译器抱怨\setupunicodefont“未定义的控制序列”。

最后,我忽略了所有关于使用中文的文档,并尝试按照以下方法构建一个最小的工作文档ConTeXt wiki:XeTeX 中的字体有了这个,我终于有了一些可以编译的代码(至少可以用texexec --xtx test.tex):

\mainlanguage[chinese]
\definetypeface[Song][rm][Xserif][Adobe Song Std]
\definetypeface[Heiti][ss][Xsans][Adobe Heiti Std]
\definefont[TitleFont][Song]
\setupbodyfont[Song, 12 pt]
\setuphead[chapter][number=yes, style=Heiti]
\starttext
    \chapter{你好}
        你好
\stoptext

这段代码编译通过,并且显示中文,但是我很快发现了一些问题:

  • \mainlanguage设置为[chinese],但文档使用英文标题(例如“Contents”),而不是中文标题(例如“目录”),并且使用西式章节编号(例如“1, 1.1”),而不是中文编号(例如“第一章”),以及所有其他在汉语拼音ConTeXt 最新版 1999/7 中文文档。
  • 编译时,它会在任何地方放置换行符,因此所有句子都会超出页面范围。

如何在 ConTeXt 中创建基本的中文文档(最好使用 OpenType 字体)?是否有类似ctexxecjk可用于 ConTeXt 的工具?

答案1

这是 ConTeXt mkiv 的基本中文文档。您可以使用“context test.tex”编译它(当然,您需要有 STFangSong 字体)。我不懂中文,但据我所知,数字和章节标题看起来像中文。

\setscript[hanzi]
\starttypescript [serif] [stfangsong]
      \definefontsynonym [Serif] [name:stfangsong][features=chinese]
\stoptypescript

\starttypescript [stfangsong]
      \definetypeface [stfangsong] [rm] [serif] [stfangsong] [default]
\stoptypescript

\setuppagenumber [numberconversion=cn]

\definestructureconversionset [chinese] [numbers] [cn]

\setupheads [sectionconversionset=chinese]

\define[2]\ChineseChapter
  {第#1章 #2}

\setuphead [chapter] [command=\ChineseChapter]

\setupbodyfont [stfangsong,12pt]

\mainlanguage[cn]

\setuppagenumbering[state=start]

\starttext

\startchapter[title={你好}]

你好!

\stopchapter

\completecontent[criterium=all]

\stoptext

相关内容