部署 ConTeXt
安装
目前,只有 ConTeXt Minimals (ConTEXt最小包)提供了最新的 ConTeXt 版本,而且可以与系统内其它 TeX 发行版和睦相处
ConTeXt Minimals 通过脚本安装,安装脚本会下载安装文件到当前目录。为了避免混乱,有必要手动为 ConTeXt Minimals 创建目录
export CTXDIR=/opt/context
mkdir -p $CTXDIR
cd $CTXDIR
这是推荐的目录 |
使用 rsync 下载 ConTeXt Minimals 的安装脚本:
rsync -ptv rsync://contextgarden.net/minimals/setup/linux/first-setup.sh .
- 同样,安装脚本也使用 rsync 下载安装文件。这种方式只下载升级过的文件,便于增量更新;也能够最大程度的降低网络不稳定所带来的影响
执行安装脚本[64](#ftn.id3139012)\
./first-setup.sh
- 升级到最新版本,也使用这个脚本
下载完所有文件后,安装脚本会自动配置 ConTeXt Minimals [65]
快速通道
新建一个 ctx
文件,内容如下:
export CTEXDIR=/opt/context
source $CTEXDIR/tex/setuptex $CTEXDIR/tex
export OSFONTDIR="/usr/share/fonts/adobe"
这里的目录为 ConTeXt Minimals 安装目录 | |
ConTeXt 需要设置一些环境变量才能正常工作,使用 setuptex 脚本 | |
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"
中文字体的安装路径,建议写入 ctx 文件[68] |
执行以下命令刷新文档数据库:
context --generate
最后,使用 chinese.tex
文件生成 PDF
context chinese.tex
[64] 需要 ruby 支持
[65] 期间可能会出现几次如下提示:
! I can't find file `core-swd'.
键入core-swd.mkii
即可
[66] 如 $TEXMFLOCAL``/tex/context/third
mkdir -p $TEXMFLOCAL/tex/context/third
mv zhfonts.tex $TEXMFLOCAL/tex/context/third
context --generate
在 $TEXMFLOCAL 目录下新建第三方目录 | |
将 zhfonts.tex 文件移动到该目录 | |
刷新一下文档数据库,就可以使用该字体配置文件了 |
[67] 这个配置文件使用 Adobe Creative Suite 4 中附带的四种字体
[68] 前面给出的 ctx
文件已设置此变量