我已经尝试过设计字体,并为 Inkscape 上的每个字符制作了单独的 SVG 文件。看看关于这个主题的其他事情,答案似乎总是类似于“你应该在实际的字体应用程序中制作字体”。我知道这一点,但是有没有办法将一个/许多 Inkscape 文件转换为 .ttf 格式?如果需要,我可以将每个字符放在一个文件中。
我可以将 Inkscape SVG 导出为 TTF 文件吗?
简短的回答——不。设计字体不仅仅是设计字形和执行“另存为”。对于您的新字体,Illustrator 或 Inkscape 无法做很多事情 - 间距、字距调整、提示、元数据等。这就是您需要字体编辑器的原因。
大多数字体设计师将直接在字体编辑器中绘制形状,因为他们的绘图工具是专门为创建字体而设计和优化的。然而,大多数字体编辑器都允许您从 Illustrator 或 Inkscape 导入路径,但您需要首先考虑一些事项。
您在字体编辑器中的路径通常会对齐到 UPM 网格(PostScript 字体通常为 1000×1000,TruType 字体通常为 1024x1024 或 2048x2048),因此您需要首先在 Illustrator/Inkscape 中设置相应的网格并将所有内容对齐到该网格或者你最终可能会得到扭曲的路径。
路径也需要正确的大小,我通常设置一个 1000pt × 1000pt 的画板,然后使用设置为 import 1pt = 1UPM 的设置导入(假设我使用的 UPM 为 1000)。
您可能还需要移动标尺上的零点,以便路径导入到正确的位置。这可能会因您使用的程序而异。
这里有一些关于将路径从 Illustrator 导出到 FontLab 的帖子 - 但这个想法应该转化为您正在使用的任何程序。
在字体编辑器中设置路径后,您就可以开始担心间距和字距调整等问题了。
FontForge 允许您通过文件 → 导入批量导入 SVG(和其他矢量文件)。我引用文档:
[...] 您可以选择多个图像文件并将它们连续加载到选定的字形中,或者您可以选择一个图像模板并且文件名与该模板匹配的所有图像将被加载到相应字形的背景中。图像模板看起来像“uni*.png”或“enc*.gif”或“cid*.tiff”。您可以通过选择与该模板匹配的文件名来选择模板 – 因此,如果您选择“uni1100.gif”,那么所有以“uni”开头并以“.gif”结尾并包含有效 unicode 编号的图像文件都将被加载并放置在适当的地方。名为“enc*”或“cid*”的文件的处理方式类似,只是它们指定了当前编码(并且数字必须是十进制而不是十六进制)。
然后理论上可以直接将结果保存为TTF,但结果很可能不是一个好的字体,也不符合标准。因此,您最好在将字体导入 FontForge 后对其进行一些处理。
Icomoon将很好地从多个 svg 文件创建自定义字体。
正如您在问题中提到的那样,这不能替代在专业应用程序中制作字体,但它肯定是将您的 svg 文件用作一个字体文件的好方法。如果您想要一种在网络上使用字形的简单方法,这是/一种方法。