TeX 的宏 / 第二集
luatex plain 从零构建

luatex 引擎 + plain TeX 格式

Garfileo posted @ 2010年9月19日 23:58 in LuaTeX 道阻且长 with tags luatex plain tex , 7400 阅读

本来觉得没必要知道如何去折腾这个,但是最近 luoyi 同学问了这个,就发一下。喜欢折腾的就去折腾……

首先,建议安装 ConTeXt Minimals(beta 2010.09.18 12:08),可参考在下拙文“这就是 ConTeXt Minimals”。

下面简单说一下如何在 ConTeXt Minimals 的层层目录中穿行。对于 Linux 用户(Windows 用户只好以此类推),假定 ConTeXt Minimals 的安装目录为 /opt/context,那么在 ConTeXt Minimals 安装完毕后,所的目录结构如下图所示:

通常,我们需要在终端(命令行窗口)使用 source 命令执行位于 /opt/context/tex/ 目录中的 setuptex 脚本开启 ConTeXt 运行环境(在 Windows 系统中,直接执行相应目录中的 setuptex.bat 批处理文件即可),即:

$ . /opt/context/tex/setuptex

或

$ source /opt/context/tex/setuptex

ConTeXt 运行环境启用成功时,会在终端中给出以下信息:

Setting "/opt/context/tex" as ConTeXt root.

当我们看到上述信息时,应当知道,从此便有了一个叫做 TEXROOT 的环境变量,在本文的示例中,它的值是“/opt/context/tex”。所以,我们就可以一直使用 $TEXROOT 来指代那个用于存放 ConTeXt Minimals 中所有的 TeX、ConTeXt 相关文件的目录(当然,在 Windows 的命令行程序中,需要使用 %TEXROOT%)。

当使用 setuptex 脚本开启 ConTeXt 运行环境时,除 TEXROOT 变量外,还会出现一个 TEXMFOS 变量。对于 Linux 系统,TEXMFOS 变量的值是 $TEXROOT/texmf-linux;对于 Windows 系统,TEXMFOS 变量的值应该是 %TEXROOT%\texmf-mswin。

在 ConTeXt 运行环境启动后,在终端中进入 $TEXROOT/texmf-context/tex/generic/context/  目录,然后执行命令

$ luatex --ini luatex-plain

即可在当前目录生成 luatex-plain.fmt 文件,这就是基于 luatex 引擎的 plain TeX 格式。然后,可将这一格式文件存储于 $TEMXFOS/web2c/luatex 目录(若无该目录,可手动建立),并改名为 luatex.fmt,具体步骤如下:

$ mkdir -p $TEXMFOS/web2c/luatex
$ mv luatex-plain.fmt $TEXMFOS/web2c/luatex/luatex.fmt

然后执行 `luatools --generate` 或 `context --generate` 命令刷新 TeX 目录树。

若测试 luatex/plain TeX 是否可用(特别是能否支持中文),可使用以下示例文件 test.tex:

\font\asong={AdobeSongStd-Light.otf} at 10pt
\asong
测试
\bye

假设你拥有 AdobeSongStd-Light.otf 字体,测试命令如下:

$ export OSFONTDIR=/your/font/dir   # 设定 AdobeSongStd-Light.otf 字体所在目
                                    # 如果是 Windows 系统,需将 export 换为 set,并且路径格式也替换为 Windows 风格的

$ source /opt/context/tex/setuptex
$ luatex test

注意,目前使用 luatex/plain TeX,仅能实现中文字体支持,对中文排版的还是 0。这个问题也许需要中文用户自己去解决。

转载时,希望不要链接文中图片,另外请保留本文原始出处:http://garfileo.is-programmer.com

Avatar_small
scmer 说:
2012年9月10日 20:25

请问一下
你用什么软件画得那个目录图的?

Avatar_small
Garfileo 说:
2012年9月11日 09:32

@scmer:

freemind or freeplane


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter