LuaTeX 的第一次尝试
从 http://foundry.supelec.fr/frs/?group_id=10&release_id=252 可以下载到最新的 luatex beta 版。我用的操作系统是 Gentoo Linux,便下载了 uatex-beta-0.11.2-linux-i386.tar.bz2 包。
将所下载的软件包解开后,得到的就是一个可执行程序 luatex,将它复制到我的 TeX Live 2007 bin/i386-linux 目录下。
随便写一个 TeX 源文档,使用 luatex 进行处理,得到一个错误:luatex.fmt 文件找不到。其实以前我也有过一次尝试,也是因为这个问题阻挡,就消失了试用它的耐心。但是前段时间在 ctex bbs 上 yulewang 给了一些提示,我又找回了一点信心:)
生成 luatex.fmt 的命令如下:
$ luatex --ini tex.ini --jobname=luatex --progname=luatex
执行该命令后,会在终端当前所在目录下生成 luatex.fmt 文件。有了这个文件,只需要执行:
$ luatex -fmt=yourpath/luatex.fmt filename.tex
即可正常编译 TeX 文档了。
我又想起 yulewang 曾经说过一次,使用 fmtutil 可以生成 fmt 文件,但当时事务繁杂,也没有深究。这次 man 了一下 fmtutil,大致知道了它的用法。
TeX Live 有一个配置文件 fmtutil.cnf,位于 $TEXMFVAR 目录下。这个文件可以指导 fmtutil 程序如何生成各种 fmt 文件。要生成 luatex.fmt,在 fmtutil.cnf 文件中找到这样一段内容:
# Standard formats (plain, latex) with all engines: # # Change "tex.ini -> bplain.ini" and "- -> language.dat" # if you want babel support in tex. Add -translate-file=cp227.tcx before # tex.ini if you want to make all characters directly "printable" for # any \write (instead of ^^xy). tex tex - tex.ini ... ... ... ... xetex xetex - -etex xetex.ini xelatex xetex language.dat -etex xelatex.ini
在这段代码之后,照葫芦画瓢地添上这样一行:
luatex luatex language.dat tex.ini
然后执行:
$ fmtutil --byfmt=luatex
这样也可以生成 luatex.fmt,并将其放置在 $HOME/$TEXMFVAR 目录下,这样再使用 luatex 编译 TeX 文档时,就不需要显式地设定 -fmt 选项了。
yulewang 给出了一个 luatex 处理中文 TeX 文档的示例,我根据我系统上的 ttf 字体略作改动,如下:
\pdfoutput1 \directlua0{ callback.register('define_font', function(name, size) filename=kpse.find_file(name,"truetype fonts") if (filename) then ttffont = fontforge.to_table(fontforge.open(filename)) if ttffont then f = { } f.name = ttffont.fontname f.fullname = ttffont.names[1].names.fullname f.size = size f.characters = {} for char, glyph in pairs(ttffont.map.map) do glyph_table = ttffont.glyphs[glyph] f.characters[char] = { index = glyph, width = glyph_table.width * size/256, name = glyph_table.name, } end f.filename = filename f.type = 'real' f.format = 'truetype' f.cidinfo = { registry = "Adobe", ordering = "Identity", supplement = 0, version = 1 } end else f = font.read_tfm(name, size) end return f end ) } \font\myfont /usr/share/fonts/winfonts/simsun.ttf at 11pt \font\cmrfont cmr10 at 11pt \myfont在\cmrfont Lua\TeX{}\myfont中使用中文。 \bye
对于生成的 pdf 文档,我用 evince 阅读时,出现了 “cairo context error: out of memory” 错误。不知何故。
另外也不知道如何使用 luatex 断行。
2007年11月09日 20:22 根据目前的消息,ConTeXt的下一个beta版本(使用LuaTeX 0.15 beta)将解决中文问题。敬请关注。
2007年11月10日 01:53 前几日尝试了一下 ConTeXt + lua,死活搞不定,又要培养自信心了。
2007年11月10日 20:36 >又要培养自信心了。 我怎么老觉得你在不停地折腾一些东西啊。还是把原理搞搞清楚再去操作,这样的话心情舒畅也节省时间。
2007年11月11日 02:03
恩。现在按照 wiki.contextgarden.net 上所说的安装方式搞定了。
2020年2月27日 19:38
Obtaining Nursing Writing Services Online online is fulfilling for most students who have to struggle with deadlines on Custom Nursing Writing Services and Nursing Research Paper Writing Services.
2020年4月14日 12:55
My insights come from a lot of the knowledge you guys shared above, thank you for all of these things that helped me a lot.
2023年9月12日 04:30
This is such an awesome asset, to the point that you are giving and you give it away for nothing. I adore seeing blog that comprehend the benefit of giving a quality asset to free. best Breakfast restaurant seminyak
2023年9月21日 00:53
A debt of gratitude is in order for posting this information. I simply need to tell you that I simply look at your site and I discover it exceptionally fascinating and useful. I can hardly wait to peruse loads of your posts. myforexhelp.com
2023年11月17日 05:25
Appreciating the time and exertion you put into your site and nitty gritty data you offer!.. custom peptide synthesis companies