![使用本地字体显示一些数学符号](https://linux22.com/image/235965/%E4%BD%BF%E7%94%A8%E6%9C%AC%E5%9C%B0%E5%AD%97%E4%BD%93%E6%98%BE%E7%A4%BA%E4%B8%80%E4%BA%9B%E6%95%B0%E5%AD%A6%E7%AC%A6%E5%8F%B7.png)
为了与我的出版商兼容,我不得不为一些数学符号制作自己的字体(使用 fontforge)。但是,我不知道如何让 latex 使用我的字体,所以我最终只制作了一个 pdf/eps,每个符号只有一个符号,并将 pdf/eps 作为图形包含在内。这可行,但现在即使只有几页,编译也会花费很长时间。
那么,如何让 latex 直接使用我的字体而不是包含图形呢?我需要一个解决方案,让我的合著者只需检查我们的目录并通过 latex 和 pdflatex 在 Windows 和 Linux 上进行编译(可能使用特殊标志和僵硬)(假设他们在 miktex 和 texlive 套件中安装了适当的软件包)。也就是说,任何要求我将文件放在包含我的 latex 文件或其子目录的目录之外的任何位置的解决方案都不幸是不够的。
任何帮助都将不胜感激(如果有解决方案的话)。我不是高级用户,因此需要详细说明。我可以访问 Windows 和 Linux(特别是 Ubuntu)机器来创建任何必要的文件。谢谢!
答案1
首先,您需要一个包含度量标准的 tfm 文件。(如果您有一个 afm 文件,则可以使用 afm2tfm 轻松生成 tfm。)首先将 tfm 和 pfb 放在与测试文档相同的文件夹中,以测试字体。在一个小的 latex 文档中添加行
\pdfmapline{=tfm-name fontname type1.pfb}
(使用正确的名称),然后尝试符号应该所在的位置。下面是使用 wasy 字体进行此类测试的示例:
\documentclass{article}
\pdfmapline{=wasy10 wasy10 <wasy10.pfb}
\begin{document}
\font\test=wasy10 \test \char62 \char63
\end{document}
当这项工作完成时,列出所有符号、它们的位置、您想要使用的命令名称、tfm 和 pfb 的名称,以便有人可以为您制作一个小猪圈和一个地图文件。
编辑:下一步:地图文件。如您所见,pdflatex 可以简单地使用\pdfmapline
(或\pdfmapfile
) 加载映射信息,但 dvips、dvidpfmx 等需要其地图中的信息。
制作一个 wpl.map,其中包含来自\pdfmapline
(不带等号)的行。将其保存在以下某处的本地 texmf 树中。在此过程中,还将其他文件移动到本地 texmf 树。更新 FNDB/运行 texhash。然后使用(通常)或(miktex 和特殊情况下使用 texlive)/fonts/map/...
添加映射文件。另请参阅 TeX-FAQ:updmap-sys
updmap
https://texfaq.org/FAQ-instt1font。
然后再次测试。首先使用 pdflatex。如果可以,尝试使用 dvips。如果 pdflatex 可以工作,但 dvips 不行,则地图行中的“字体名称”(中间条目)是错误的(dvips 更挑剔)。在 afm 中检查正确的名称,在地图中更正,然后使用重新生成地图udpmap(-sys)