数学字体为单笔画,无填充

数学字体为单笔画,无填充

我正在尝试为视频演示创建手写动画效果。标准打开工具技巧因为这是绘制 SVG 路径并为从 0 到路径末尾的虚线图案设置动画。

这对于标准路径很有效,但如果我简单地将字母或数学符号转换为 SVG 路径,它们就会变成填充的轮廓,并且绘制的路径看起来不自然。

对于标准文本,有一些字体(例如 Hershey)只有中心笔画,应该可以正常工作,但对于数学字体,我还没有找到一种可以通过 LaTeX 再进行 svg 转换来产生单笔画的字体(理想情况下是按照自然的书法绘图顺序)。

当然,这一切都让人想起 Metafont 本身——拿起一支笔,移动到那里,等等。我认为最优雅的解决方案是 Metafont/post 创建的字体,它只有单个笔画(没有填充)并且具有所有字距调整等可在 TeX 中使用的花哨功能。

我研究了一下朋克字体,http://metapolator.com等等,但由于没有使用 Metapost 的经验,我不清楚这项任务有多难。本质上,我想制作一个标准 Metafont 的简化版,这样每个字形都是一个骨架,而不是一个填充的轮廓。

我并不太担心美观度不佳,因为通常最终的 SVG 会用相当粗的笔绘制,同样是为了模仿粉笔/白板笔的笔迹——没有细衬线等......

PS:这个想法的一个可能的变体是使用骨架字体作为 SVG 蒙版来揭示其背后更好看的字体——单个笔画只是定义了揭示背后内容的顺序。

编辑:简化子问题


假设我已经创建了我需要的所有字形,包括文本和数学,例如在综合的列表,例如 Stix 字形,将其导入 FontForge 并创建字体(我不确定某些方面是如何工作的,但听起来可行)。那么我该如何为 LaTeX(/xe/lua,...)启用它,以便正确定位包含这些笔画的框?


附录:

经过进一步的谷歌搜索后,我发现了几个相关的链接:

如何从 LaTeX 公式创建无轮廓的 SVG 文件

https://github.com/KaTeX/katex-fonts/

听起来标准字体格式不喜欢单行描述,所以问题变成了:如何使用带有类似 TeX 的框定位引擎的 SVG 字体?可能 Katex/Mathjax 是这里更简单的途径(有明显的局限性,但我对足够简单的输出感兴趣)。

编辑(2021):经过进一步的搜索和试验(尤其是 dvisvgm),我相信我已经找到了一种有前途的 Mathjax 策略,它可以从给定的方程式生成 SVG 输出(覆盖范围相当大)。SVG 路径存储在 Mathjax 内部例程中,但原则上可以用单笔划替代方案替换它们。现在我剩下要做的就是绘制它们 ;)(或者,理想情况下,说服 Metapost 帮我做这件事?

在此处输入图片描述

答案1

使用 metafont 制作简单的形状并不特别困难,尤其是使用您概述的方案。对于学习 MF,必备工具是 Metafontbook 和可选的 Knuth 的 Computer Modern Typefaces(《Computers & Typesetting》E 卷)。

但是,我要指出的是,在某些方面,MF 并不比直接编写 svg 高级多少。它提供了代数工具,使以编程方式指定点的位置变得更加容易,而且我认为它对如何在点之间拟合曲线的规范比其他任何可用规范都更直观,但从 MF 到 SVG 可能不那么明显。也许你最好的选择是获得一个可视化的 SVG 编辑器并手动绘制你需要的字形?

相关内容