部署 ConTeXt (original) (raw)

安装

目前,只有 ConTeXt Minimals (ConTEXt最小包)提供了最新的 ConTeXt 版本,而且可以与系统内其它 TeX 发行版和睦相处

ConTeXt Minimals 通过脚本安装,安装脚本会下载安装文件到当前目录。为了避免混乱,有必要手动为 ConTeXt Minimals 创建目录

export CTXDIR=/opt/context1 mkdir -p $CTXDIR cd $CTXDIR

1 这是推荐的目录

使用 rsync 下载 ConTeXt Minimals 的安装脚本:

rsync -ptv rsync://contextgarden.net/minimals/setup/linux/first-setup.sh .

执行安装脚本[64](第一次安装可能会等待较长时间)

./first-setup.sh

下载完所有文件后,安装脚本会自动配置 ConTeXt Minimals[65]

快速通道

新建一个 ctx 文件,内容如下:

export CTEXDIR=/opt/context1 source CTEXDIR/tex/setuptexCTEXDIR/tex/setuptex CTEXDIR/tex/setuptexCTEXDIR/tex 2 export OSFONTDIR="/usr/share/fonts/adobe" 3

1 这里的目录为 ConTeXt Minimals 安装目录
2 ConTeXt 需要设置一些环境变量才能正常工作,使用 setuptex 脚本
3 OSFONTDIR 为字体路径变量,设置为系统中字体的实际路径,见“字体设置”一节

执行 source ctx 命令,设置好需要的环境变量,ConTeXt 工作环境便准备就绪

新建一个 a.tex 文件,内容如下:

% a.tex %这里是注释 \starttext %正文开始 Hello World. %正文内容 \stoptext %正文结束

执行 context a.tex 命令,会得到 a.pdf 文件

[提示] 提示
执行 context --purge 命令清除中间文件。但保留中间文件可以提高编译速度

字体设置

下面是一个包含中文的 chinese.tex 文件

\usetypescriptfile[zhfonts] %加载打印字体配置文件(typescript) zhfonts.tex \usetypescript[myscript] %使用打印字体配置文件中定义打印字体的脚本 myscript \setupbodyfont[myfont,rm,11pt] %设置正文字体

\setupindenting[always,2em,first] %设置中文缩进格式(首行缩进两字) \setupheads[indentnext=yes] %每节的首段也要缩进 \setupinterlinespace[big] %设置行距(big=1.5倍)
\setupwhitespace[medium] %设置段间距[small, medium, big] \definepapersize[SCREEN][width=21cm,height=29.7cm] %设置页面尺寸 \setuppapersize[SCREEN][SCREEN] %纸张尺寸,通常和页面尺寸相同。(除非在印刷用纸上实现多页排版)

\starttext 世界,你好! \stoptext

打印字体配置文件(typescript) 文件是一个 TeX 文件,要求与 chinese.tex 文件在同一目录,或者位于 ConTeXt Minimals 可以检索到的某个目录中[66]

新建一个打印字体配置文件(typescript),名为 zhfonts.tex,内容如下:

% engine=luatex % \ctxlua{fonts.collections.trace = true} \let\synchronizetext\relax \synchronizemathfontsfalse

\spaceskip .25em plus .25em \relax

\definefontfeature[zh][mode=node,script=hang,lang=zhs]

\starttypescript [serif] [zhfont] \definefontsynonym [ZhSerif][name:AdobeSongStd-Light][features=zh] \definefontsynonym [ZhSerifBold][name:AdobeHeitiStd-Regular][features=zh] \definefontsynonym [ZhSerifItalic][name:AdobeKaitiStd-Regular][features=zh] \definefontsynonym [ZhSerifBoldItalic][name:AdobeHeitiStd-Regular][features=zh]

\definefontfallback
[WesternSerif][name:TeXGyrePagella-Regular][0x0000-0x0400][force=yes]
\definefontfallback
[WesternSerifBold][name:TeXGyrePagella-Bold][0x0000-0x0400][force=yes]
\definefontfallback
[WesternSerifItalic][name:TeXGyrePagella-Italic][0x0000-0x0400][force=yes]
\definefontfallback
[WesternSerifBoldItalic][name:TeXGyrePagella-BoldItalic][0x0000-0x0400][force=yes]

\definefontsynonym [Serif][ZhSerif][fallbacks=WesternSerif] \definefontsynonym [SerifBold][ZhSerifBold][fallbacks=WesternSerifBold] \definefontsynonym [SerifItalic][ZhSerifItalic][fallbacks=WesternSerifItalic] \definefontsynonym [SerifBoldItalic][ZhSerifBoldItalic][fallbacks=WesternSerifBoldItalic] \stoptypescript

\starttypescript [sans][zhfont] \definefontsynonym [ZhSans][name:AdobeKaitiStd-Regular][features=zh] \definefontsynonym [ZhSansBold][name:AdobeHeitiStd-Regular][features=zh] \definefontsynonym [ZhSansItalic][name:AdobeKaitiStd-Regular][features=zh] \definefontsynonym [ZhSansBoldItalic][name:AdobeHeitiStd-Regular][features=zh]

\definefontfallback
[WesternSans][name:TeXGyreAdventor-Regular][0x0000-0x0400][force=yes]
\definefontfallback
[WesternSansBold][name:TeXGyreAdventor-Bold][0x0000-0x0400][force=yes]
\definefontfallback
[WesternSansItalic][name:TeXGyreAdventor-Italic][0x0000-0x0400][force=yes]
\definefontfallback
[WesternSansBoldItalic][name:TeXGyreAdventor-BoldItalic][0x0000-0x0400][force=yes]

\definefontsynonym
[Sans][ZhSans][fallbacks=WesternSans]
\definefontsynonym
[SansBold][ZhSansBold][fallbacks=WesternSansBold]
\definefontsynonym
[SansItalic][ZhSansItalic][fallbacks=WesternSansItalic]
\definefontsynonym
[SansBoldItalic][ZhSansBoldItalic][fallbacks=WesternSansBoldItalic]

\stoptypescript

\starttypescript [mono][zhfont] \definefontsynonym [ZhMono][name:AdobeFangsongStd-Regular][features=zh] \definefontsynonym [ZhMonoBold][name:AdobeHeitiStd-Regular][features=zh] \definefontsynonym [ZhMonoItalic][name:AdobeFangsongStd-Regular][features=zh] \definefontsynonym [ZhMonoBoldItalic][name:AdobeHeitiStd-Regular][features=zh]

\definefontfallback
[WesternMono][name:TeXGyreCursor-Regular][0x0000-0x0400][force=yes]
\definefontfallback
[WesternMonoBold][name:TeXGyreCursor-Bold][0x0000-0x0400][force=yes]
\definefontfallback
[WesternMonoItalic][name:TeXGyreCursor-Italic][0x0000-0x0400][force=yes]
\definefontfallback
[WesternMonoBoldItalic][name:TeXGyreCursor-BoldItalic][0x0000-0x0400][force=yes]

\definefontsynonym
[Mono][ZhMono][fallbacks=WesternMono]
\definefontsynonym
[MonoBold][ZhMonoBold][fallbacks=WesternMonoBold]
\definefontsynonym
[MonoItalic][ZhMonoItalic][fallbacks=WesternMonoItalic]
\definefontsynonym
[MonoBoldItalic][ZhMonoBoldItalic][fallbacks=WesternMonoBoldItalic]

\stoptypescript

\starttypescript[myscript] \definetypeface[myfont][rm][serif][zhfont] \definetypeface[myfont][ss][sans][zhfont] \definetypeface[myfont][tt][mono][zhfont] \stoptypescript

下载中文字体[67],安装,并设置 OSFONTDIR 变量:

export OSFONTDIR="/usr/share/fonts/adobe"1

1 中文字体的安装路径,建议写入ctx 文件[68]

执行以下命令刷新文档数据库:

context --generate

最后,使用 chinese.tex 文件生成 PDF

context chinese.tex