读取 Metafont 定义的代码

读取 Metafont 定义的代码

我需要一些 C 代码来从 Metafont 源代码生成贝塞尔曲线。理想情况下,我希望有一个具有以下规格的 C/C++ 函数:

输入:文本字符串数组(MetaFont 程序中的行)

输出:表示“笔”笔画中心线的贝塞尔曲线数组(以及有关每笔笔画所用笔的一些信息)。

因此,在内部,该代码将解析 MetFont 源,求解小线性方程组,并计算贝塞尔曲线的控制点。

这样的代码肯定存在于 MetaFont 和 MetaPost 中,但我找不到它。我应该先查看哪些文件/函数?谢谢。

按照指示在此处添加编辑:剩余的问题是:

(1)mplib.c 和 mplib.h 是最好的起点吗?

(2)如果是的话,我在哪里可以找到它们?

(3)如果不是,我还应该去哪里寻找?

我想我知道答案,但我不知道如何回答我自己的问题:

我认为 mplib.c 和 mplib.h 可能是最好的起点。它们不是源分发的一部分。您必须通过将 ctangle 应用于 mp.w(非常大)来生成它们。

答案1

mplib 包非常接近我想要的(尽管它的架构很老旧)并且 mplib.h 和 mp.c 是相关文件。

在源代码库中找不到它们,因为它们是使用“tangle”实用程序生成的。了解 tangle 后,您可能会想寻找一个名为 mplib.w 的源文件。但它也不存在——实际的源文件名为 mp.w。

mp.w 中有大约 27000 行代码,它生成的 TeX 文件有大约 800 页。但是,看起来所需的功能就在那里。在某个地方。

对于简单的任务,记录的 API 就是所需要的,因此无需深入研究旧的内部代码。

相关内容