如何将 METAFONT 校样模式叠加在 PDF 或 EPS 或 TIFF 上?

如何将 METAFONT 校样模式叠加在 PDF 或 EPS 或 TIFF 上?

基本上,我有一个很多图纸很多我正在研究的字体复兴文件 --- 它是光学尺寸的,我只有几套完整的字体(根据记忆,28 和 72 pt)并且只有一对字母具有所有尺寸(大写和小写 N/n),所以我想做的是制定一个系统,使我能够:

  • 将字母设计成笔画METAFONT,并调整视觉尺寸(也许还有其他尺寸)
  • 轻松/自动/至少以某种方式在屏幕上验证这些字母
  • 将校样字母与我已有的轮廓重叠
  • 从设计中获得漂亮的轮廓METAFONT,然后我可以使用它来制作 Opentype 字体

我卡在了制作校样并覆盖它的步骤上 --- 有没有一些简单/优雅的方法来做到这一点?我设法用它METAFONT来制作一个 .2602gf 文件,然后用gftodvi它来制作一个我可以查看的 .dvi 文件,但它比一页大得多。

然后,一旦我得到了,METAFONT我将必须努力从中获取漂亮的轮廓并制作 OpenType 字体,但首先我需要设计设计。

好的,给出一个METAFONTeight.mf:

mode_setup;
u# := 2mm#;
define_pixels(u);

beginchar("A", 8u#, 9u#, 5u#);
  z1 = ( 0u,  0u);
  z2 = ( 8u,  0u);
  z3 = ( 1u,  8u);
  z4 = ( 7u,  8u);
  pickup pencircle scaled 1u#;
  draw z4 ..  z1 .. z2 ..  z3 .. cycle;
  pickup pencircle scaled 3u#;
  drawdot z1;
  drawdot z2;
  drawdot z3;
  drawdot z4;
endchar;

\end

我们使用来处理它

mf eight.mf

并获取文件 eight.2602gf

然后我们运行

gftodvi eight.2602gf

这样我们就得到了 eight.dvi,但是当我们打开它时,我们看到:

8.dvi 截图

理想情况下,我想要一个利用 lualatex 和 PDF 的解决方案。

答案1

通过您的eight.mf,我们可以做到以下几点:

  1. 首先运行mf,然后gftodvi生成eight.dvi

    mf-nowin eight.mf && gftodvi eight.2602gf
    
  2. 生成一个 PDF 文件eight.dvi,其大小足够大(在本例中意味着真的大)纸张尺寸:

    dvipdfmx -p a0 eight.dvi
    

(请注意,A0 的面积是 A4 的 16 倍:每个维度都大四倍。)

产生的结果eight.pdf如下:

8.pdf 小于 200 dpi

(请注意左上角“METAFONT 输出...”文本的大小;单击图像可查看其较大尺寸:但此处上传的是光栅化图像,而不是 PDF。)

除了手动指定纸张尺寸外,您还可以使用可以自动计算边界框的 DVI 驱动程序。我在 中找不到这样的选项dvipdfmx,但dvips有一个-E选项记录为Try to create EPSF(无论“尝试”是什么意思),它似乎有效:

dvips -E eight.dvi
epstopdf eight.ps

获得此 PDF 文件后eight.pdf,您可以使用任何常用方式(包括图像或 PDF 页面)将其包含在 lualatex 中。例如:

\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf{eight.pdf}
\end{document}

所包含的 PDF 是“透明的”,因此如果您想将其覆盖在现有图像上,我认为您可以将该图像作为背景。此网站上有很多关于如何做到这一点的问题(答案各不相同且令人困惑);以下是一种对我有用的方法:

\documentclass{article}
\usepackage{pdfpages}
\usepackage{graphicx}

\usepackage{eso-pic}
\newcommand\BackgroundPic{
  \put(0,0){
    \includegraphics[width=\paperwidth]{Jersey.pdf}
  }}

\begin{document}
\AddToShipoutPictureBG{\BackgroundPic}
\includepdf{eight.pdf}
\end{document}

(以下Jersey.pdf是我打开这个 svg在我的浏览器中,并使用浏览器的打印功能“另存为 PDF”。)这会产生类似以下内容的结果:

覆盖 8

相关内容