Computer Modern TFM 文件的长度

Computer Modern TFM 文件的长度

除和之外cmfi10.tfmcmmi5.tfm所有 TFM 文件计算机现代分布末尾有一个额外的 0x00 字节,这使得它们比前两个字节(lf整数)所声称的长一个字节。顺便说一句(?),这两个例外是较新的文件(它们的日期是 1996-07-08,而不是 1992-08-10)。

这是为什么?较新的文件是由不同版本的 Metafont 生成的吗?tex.webmf.web源代码中的 TFM 规范没有提到额外的 0x00。

当我用 ISO Pascal 编译 TeX 版本时,我不得不从原始 WEB 程序中省略一些文件结束检查,因为它们只有在存在额外的 0x00 字节时才有效。因此我的更改文件包含以下内容

@x
if eof(tfm_file) then abort;
for k:=np+1 to 7 do font_info[param_base[f]+k-1].sc:=0;
@y
{|eof(tfm_file)| is true after the last byte has been read}
for k:=np+1 to 7 do font_info[param_base[f]+k-1].sc:=0;
@z

是否有任何版本的 TeX 存在多余的 0x00 或缺失的问题?我假设每个版本在文件系统接口中都有系统相关的更改。

答案1

TFM 文件已更新CTAN 档案现在,它们的长度等于整数所要求的长度lf。换句话说:多余的最后 0x00 已被删除。感谢所有参与的人!

对于我的 ISO Pascal 更改文件,这意味着像这样的语句

if eof(tfm_file) then abort;

必须继续被注释掉,因为我使用 ISO Pascal 读取文件的方式。

相关内容