部署 ConTeXt

安装

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

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

  1. export CTXDIR=/opt/context
  2. mkdir -p $CTXDIR
  3. cd $CTXDIR

1

这是推荐的目录

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

  1. rsync -ptv rsync://contextgarden.net/minimals/setup/linux/first-setup.sh .
  • 同样,安装脚本也使用 rsync 下载安装文件。这种方式只下载升级过的文件,便于增量更新;也能够最大程度的降低网络不稳定所带来的影响

执行安装脚本[64](#ftn.id3139012)\

  1. ./first-setup.sh
  • 升级到最新版本,也使用这个脚本

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

快速通道

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

  1. export CTEXDIR=/opt/context
  2. source $CTEXDIR/tex/setuptex $CTEXDIR/tex
  3. export OSFONTDIR="/usr/share/fonts/adobe"

1

这里的目录为 ConTeXt Minimals 安装目录

2

ConTeXt 需要设置一些环境变量才能正常工作,使用 setuptex 脚本

3

OSFONTDIR 为字体路径变量,设置为系统中字体的实际路径,见“字体设置”一节

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

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

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

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

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

字体设置

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

  1. \usetypescriptfile[zhfonts] %加载打印字体配置文件(typescript) zhfonts.tex
  2. \usetypescript[myscript] %使用打印字体配置文件中定义打印字体的脚本 myscript
  3. \setupbodyfont[myfont,rm,11pt] %设置正文字体
  4.  
  5. \setupindenting[always,2em,first] %设置中文缩进格式(首行缩进两字)
  6. \setupheads[indentnext=yes] %每节的首段也要缩进
  7. \setupinterlinespace[big] %设置行距(big=1.5倍)
  8. \setupwhitespace[medium] %设置段间距[small, medium, big]
  9. \definepapersize[SCREEN][width=21cm,height=29.7cm] %设置页面尺寸
  10. \setuppapersize[SCREEN][SCREEN] %纸张尺寸,通常和页面尺寸相同。(除非在印刷用纸上实现多页排版)
  11.  
  12. \starttext
  13. 世界,你好!
  14. \stoptext

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

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

  1. % engine=luatex
  2. % \ctxlua{fonts.collections.trace = true}
  3. \let\synchronizetext\relax
  4. \synchronizemathfontsfalse
  5. \spaceskip .25em plus .25em \relax
  6. \definefontfeature[zh][mode=node,script=hang,lang=zhs]
  7. \starttypescript [serif] [zhfont]
  8. \definefontsynonym
  9. [ZhSerif][name:AdobeSongStd-Light][features=zh]
  10. \definefontsynonym
  11. [ZhSerifBold][name:AdobeHeitiStd-Regular][features=zh]
  12. \definefontsynonym
  13. [ZhSerifItalic][name:AdobeKaitiStd-Regular][features=zh]
  14. \definefontsynonym
  15. [ZhSerifBoldItalic][name:AdobeHeitiStd-Regular][features=zh]
  16. \definefontfallback
  17. [WesternSerif][name:TeXGyrePagella-Regular][0x0000-0x0400][force=yes]
  18. \definefontfallback
  19. [WesternSerifBold][name:TeXGyrePagella-Bold][0x0000-0x0400][force=yes]
  20. \definefontfallback
  21. [WesternSerifItalic][name:TeXGyrePagella-Italic][0x0000-0x0400][force=yes]
  22. \definefontfallback
  23. [WesternSerifBoldItalic][name:TeXGyrePagella-BoldItalic][0x0000-0x0400][force=yes]
  24. \definefontsynonym
  25. [Serif][ZhSerif][fallbacks=WesternSerif]
  26. \definefontsynonym
  27. [SerifBold][ZhSerifBold][fallbacks=WesternSerifBold]
  28. \definefontsynonym
  29. [SerifItalic][ZhSerifItalic][fallbacks=WesternSerifItalic]
  30. \definefontsynonym
  31. [SerifBoldItalic][ZhSerifBoldItalic][fallbacks=WesternSerifBoldItalic]
  32. \stoptypescript
  33. \starttypescript [sans][zhfont]
  34. \definefontsynonym
  35. [ZhSans][name:AdobeKaitiStd-Regular][features=zh]
  36. \definefontsynonym
  37. [ZhSansBold][name:AdobeHeitiStd-Regular][features=zh]
  38. \definefontsynonym
  39. [ZhSansItalic][name:AdobeKaitiStd-Regular][features=zh]
  40. \definefontsynonym
  41. [ZhSansBoldItalic][name:AdobeHeitiStd-Regular][features=zh]
  42. \definefontfallback
  43. [WesternSans][name:TeXGyreAdventor-Regular][0x0000-0x0400][force=yes]
  44. \definefontfallback
  45. [WesternSansBold][name:TeXGyreAdventor-Bold][0x0000-0x0400][force=yes]
  46. \definefontfallback
  47. [WesternSansItalic][name:TeXGyreAdventor-Italic][0x0000-0x0400][force=yes]
  48. \definefontfallback
  49. [WesternSansBoldItalic][name:TeXGyreAdventor-BoldItalic][0x0000-0x0400][force=yes]
  50. \definefontsynonym
  51. [Sans][ZhSans][fallbacks=WesternSans]
  52. \definefontsynonym
  53. [SansBold][ZhSansBold][fallbacks=WesternSansBold]
  54. \definefontsynonym
  55. [SansItalic][ZhSansItalic][fallbacks=WesternSansItalic]
  56. \definefontsynonym
  57. [SansBoldItalic][ZhSansBoldItalic][fallbacks=WesternSansBoldItalic]
  58. \stoptypescript
  59. \starttypescript [mono][zhfont]
  60. \definefontsynonym
  61. [ZhMono][name:AdobeFangsongStd-Regular][features=zh]
  62. \definefontsynonym
  63. [ZhMonoBold][name:AdobeHeitiStd-Regular][features=zh]
  64. \definefontsynonym
  65. [ZhMonoItalic][name:AdobeFangsongStd-Regular][features=zh]
  66. \definefontsynonym
  67. [ZhMonoBoldItalic][name:AdobeHeitiStd-Regular][features=zh]
  68. \definefontfallback
  69. [WesternMono][name:TeXGyreCursor-Regular][0x0000-0x0400][force=yes]
  70. \definefontfallback
  71. [WesternMonoBold][name:TeXGyreCursor-Bold][0x0000-0x0400][force=yes]
  72. \definefontfallback
  73. [WesternMonoItalic][name:TeXGyreCursor-Italic][0x0000-0x0400][force=yes]
  74. \definefontfallback
  75. [WesternMonoBoldItalic][name:TeXGyreCursor-BoldItalic][0x0000-0x0400][force=yes]
  76. \definefontsynonym
  77. [Mono][ZhMono][fallbacks=WesternMono]
  78. \definefontsynonym
  79. [MonoBold][ZhMonoBold][fallbacks=WesternMonoBold]
  80. \definefontsynonym
  81. [MonoItalic][ZhMonoItalic][fallbacks=WesternMonoItalic]
  82. \definefontsynonym
  83. [MonoBoldItalic][ZhMonoBoldItalic][fallbacks=WesternMonoBoldItalic]
  84. \stoptypescript
  85. \starttypescript[myscript]
  86. \definetypeface[myfont][rm][serif][zhfont]
  87. \definetypeface[myfont][ss][sans][zhfont]
  88. \definetypeface[myfont][tt][mono][zhfont]
  89. \stoptypescript

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

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

1

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

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

  1. context --generate

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

  1. context chinese.tex

[64] 需要 ruby 支持

[65] 期间可能会出现几次如下提示:

  1. ! I can't find file `core-swd'.

键入core-swd.mkii即可

[66] 如 $TEXMFLOCAL``/tex/context/third

  1. mkdir -p $TEXMFLOCAL/tex/context/third
  2. mv zhfonts.tex $TEXMFLOCAL/tex/context/third
  3. context --generate

1

$TEXMFLOCAL 目录下新建第三方目录

2

zhfonts.tex 文件移动到该目录

3

刷新一下文档数据库,就可以使用该字体配置文件了

[67] 这个配置文件使用 Adobe Creative Suite 4 中附带的四种字体

[68] 前面给出的 ctx 文件已设置此变量