我最近才開始玩與metapost的「字形」。我發現(MWE 下面)這些實驗中 cm 字體集的襯線路徑有異常。
起點:似乎 Metapost 從 .pfb 檔案中取得字體的字形(例如.../texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
)。
我的問題是以下哪一項導致了異常,因此我可以弄清楚是否有必要提交錯誤報告以及將其發送給誰...
- .pfb 檔案中存在錯誤。既然這是一條路徑幾乎自身加倍,這可能不會導致任何像素被填充,因此沒有人注意到。
- 我對 Metapost 從哪裡獲取字形的說法是錯誤的,而錯誤就在哪裡。
- Metapost 中的字形代碼存在錯誤。
- 還有別的事。
我做過的事:
- 檢查使用這些字體的其他程式是否使用相同的 .pfb 檔案(是的 AFAICT for
pdflatex
和 forlatex|dvips|pstopdf
)並查看這些字體的 pdf 輸出中大大放大的字元 - 沒有運氣。 - 尋找其他工具從 .pfb 中提取字形 - 找不到任何工具。 (有這方面的建議就更好了)
cmr.mf
檢查了(實際上)的筆畫cmbase.mf
- Knuth 的襯線是與字母其餘部分分開的筆畫,所以沒有任何線索。- 從 Knuth 的來源找到了可能用於生成這些 type1 字體(MFTOEPS 等)的各種工具,但認為這超出了我的專業知識。
- 查看 texexchange 和更遠的地方
- 檢查版本資訊(MetaPost=v1.504、cmr10.pfb=v003.002)並檢查更新日誌以取得最新的 Metapost
我的 MWE 顯示了字形過衝的邊界,然後在襯線中加倍,以及 中“I”字形內的少量額外區域cmr10
。由於襯線的幾何形狀,cmti10
仍然存在超調,但沒有額外的區域。它也以 cm 字體集中的一些其他字體(粗體、傾斜)以及大寫和小寫的襯線顯示。
picture pic[];
path p[];
pair d;
pic0=btex I\it I etex; % <---- the text to be analysed
_i:=1;
for $ within pic0:
p[_i]=pathpart glyph (textpart $) of (fontpart $) scaled 1/100 shifted llcorner $ scaled 20;
_i:=_i+1;
endfor
beginfig(1)
for i = 1 upto 20:
if known p[i]:
fill p[i] withcolor (.8,.8,.9);
for j = 0 upto (length(p[i])-1):
draw point j of p[i]--postcontrol j of p[i] dashed withdots scaled 1/4;
draw point j+1 of p[i]--precontrol j+1 of p[i] dashed withdots scaled 1/4;
fill fullcircle scaled 0.5mm shifted point j of (p[i]);
d:=direction j of p[i];
if abs(d)=0: d:=point j+4 of p[i] - point j-4 of p[i]; fi
a:= if abs(d)=0: 0 else: angle(d) fi;
draw thelabel.lft(decimal j infont "cmbx5",(0,0))
rotated (a+90)
shifted (point j of (p[i] )) withcolor blue;
endfor
draw p[i] withpen pencircle scaled 0.1;
fi
endfor
endfig;
bye
答案1
pathpart
此問題似乎與在 返回的圖片上使用 相關glyph
。考慮以下程序:
prologues := 3;
outputtemplate := "glyph%c.eps";
beginfig(1);
picture a;
a = glyph "I" of "cmti12";
draw a withcolor .9 white;
draw pathpart a withcolor red;
endfig;
end.
產生下圖。您可以清楚地看到碟形襯線上的鋸齒(紅色),但請注意灰色部分沒有鋸齒。
該glyph
運算符傳回給定字體的給定字元的圖片。如果我只是draw
那張圖片,那麼輪廓看起來是正確的(圖像的灰色部分)。但如果我畫出返回的路徑,pathpart
那麼我們就會在盤子上得到額外的鋸齒。
pathpart
這表明字體檔案沒有錯誤,而是應用於返回的圖片時存在問題glyph
。我向 MP 開發團隊提出了問題 ->
http://tracker.luatex.org/view.php?id=935
更新:截至 2015 年 5 月 15 日,此錯誤現已修復。
這是使用新編譯的版本 1.999 的輸出mpost
: