Linux下如何用RsTeX编译LaTeX文件?项目是否未完成?
关于RsTeX编译LaTeX文件的问题解答
核心结论
RsTeX无法直接编译标准LaTeX文件,它只是Knuth原始TeX的C++实现,不包含LaTeX宏集支持,且是一个功能不完整的TeX系统。
为什么你的示例报错?
你使用的是LaTeX专属语法(\documentclass、\begin{document}等),但RsTeX是纯原始TeX引擎——这些控制序列是LaTeX宏包定义的扩展命令,原始TeX本身并不识别,因此会触发“未定义控制序列”错误。
项目是否未完成?
是的,它属于功能残缺的TeX实现:
- 仅通过了trip测试(验证核心TeX引擎的排版逻辑正确性)
- 缺少TeX系统运行必需的配套组件:预编译的fmt文件(包括LaTeX的fmt)、字体文件(tfm、pk等)、自动路径搜索机制
- 无官方文档,完全未集成LaTeX宏集支持
能否用RsTeX编译基础LaTeX内容?
只能通过复杂的手动配置间接实现,且仅能支持最基础的LaTeX语法,步骤如下:
- 从完整TeX系统(如TeX Live)中提取LaTeX核心宏文件(如
latex.ltx、article.cls等) - 设置
TEXFORMATS环境变量,指向存放这些宏文件的目录 - 使用RsTeX的初始化模式(类似原始TeX的
initex)预编译LaTeX的fmt文件(过程中可能需要手动指定所有依赖文件的完整路径) - 编译LaTeX文件时,指定调用预编译好的LaTeX fmt文件
但上述过程繁琐且无文档指导,实际可用性极低。
关于rstex_unix和环境变量设置
rstex_unix支持的环境变量与原始TeX兼容,常用的包括:
TEXFORMATS:指定宏文件(.tex、.fmt)的搜索路径TEXFONTS:指定字体文件(tfm、pk等)的存储路径TEXFONTMAPS:指定字体映射文件路径
你需要将所有依赖文件放到对应路径下,再设置环境变量才能让RsTeX找到它们,但因项目无文档,需参考原始TeX的环境变量规则自行调试。
测试RsTeX的正确方式
先从纯Plain TeX示例入手,比如:
This is a plain TeX demonstration. $$a^2 + b^2 = c^2$$ \bye
执行rstex test.tex,如果RsTeX内置了Plain TeX宏集,或你将plain.tex放到了指定路径,就能生成正常的DVI文件。
内容的提问来源于stack exchange,提问作者Talmsmen
相关产品推荐
相关产品推荐

