Handelt es sich hierbei um einen Fehler in der PFB-Datei oder um einen Fehler im „Glyph“ von Metapost?

Handelt es sich hierbei um einen Fehler in der PFB-Datei oder um einen Fehler im „Glyph“ von Metapost?

Ich habe erst vor kurzem angefangenspielenmit „Glyph“ von Metapost. Ich habe (MWE unten) bei diesen Experimenten eine Anomalie bei den Pfaden in Serifen für den cm-Schriftsatz entdeckt.

Ausgangspunkt: Es scheint, dass Metapost die Glyphen aus der .pfb-Datei für die Schriftart erhält (z. B. .../texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb).

Meine Frage lautet nun, welche der folgenden Ursachen die Anomalien verursacht, damit ich feststellen kann, ob ein Fehlerbericht gerechtfertigt ist und an wen ich ihn senden soll …

  1. Es gibt einen Fehler in der .pfb-Datei. Da es sich um einen Pfad handelt, derfastverdoppelt sich auf sich selbst, was möglicherweise nicht dazu führt, dass Pixel gefüllt werden, sodass es niemandem aufgefallen ist.
  2. Ich liege falsch mit meiner Einschätzung, woher Metapost die Glyphen bezieht, und wo auch immer das der Fall ist, der Fehler liegt dort.
  3. Es gibt einen Fehler im Glyphencode in Metapost.
  4. Etwas anderes.

Dinge, die ich getan habe:

  1. Habe überprüft, ob andere Programme, die diese Schriftarten verwenden, die gleiche .pfb-Datei verwenden (ja, soweit ich weiß, für pdflatexund für latex|dvips|pstopdf) und mir die stark vergrößerten Zeichen in der PDF-Ausgabe dieser angesehen – ohne Erfolg.
  2. Habe nach anderen Tools gesucht, um Glyphen aus einer .pfb-Datei zu extrahieren – konnte aber keines finden. (Tipps dazu wären nett)
  3. cmr.mfHabe die Striche (eigentlich ) geprüft cmbase.mf– Knuths Serifen sind ein vom Rest des Buchstabens getrennter Strich, also keine Ahnung.
  4. Habe nach den verschiedenen Tools gesucht, die möglicherweise zum Erstellen dieser Type1-Schriftarten (MFTOEPS usw.) aus Knuths Quelle verwendet wurden, bin jedoch zu dem Schluss gekommen, dass dies über mein Fachwissen hinausgeht.
  5. Habe auf Texexchange und weiter weg nachgesehen
  6. Versionsinformationen (MetaPost=v1.504, cmr10.pfb=v003.002) geprüft und das Änderungsprotokoll auf neuere Metaposts überprüft

Mein MWE zeigt, dass die Grenze des Glyphs überschießt, dann in der Serife zurückgeht und innerhalb des Glyphs für „I“ in ein wenig zusätzlichen Bereich vorhanden ist cmr10. Aufgrund der Geometrie der Serifen in cmti10gibt es immer noch den Überschießen, aber keinen zusätzlichen Bereich. Es erscheint auch in einigen anderen Schriftarten (fett, schräg) im cm-Schriftsatz und in Serifen in Groß- und Kleinbuchstaben.

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

Bildbeschreibung hier eingeben

Antwort1

pathpartDieses Problem scheint mit der Verwendung von auf dem von zurückgegebenen Bild zusammenzuhängen glyph. Betrachten Sie das folgende Programm:

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.

Dadurch entsteht das folgende Bild. Sie können die Zacken auf den gewölbten Serifen deutlich sehen (in Rot), aber beachten Sie, dass im grauen Teil keine Zacken vorhanden sind.

Der glyphOperator gibt ein Bild des angegebenen Zeichens in der angegebenen Schriftart zurück. Wenn ich nur drawdieses Bild verwende, sieht der Umriss richtig aus (der graue Teil des Bildes). Wenn ich jedoch den zurückgegebenen Pfad zeichne, pathparterhalten wir die zusätzlichen Zacken auf dem Geschirr.

Dies zeigt, dass kein Fehler in der Schriftdatei vorliegt, sondern dass ein Problem mit pathpartder Anwendung auf das von zurückgegebene Bild vorliegt glyph. Ich habe ein Problem beim MP-Entwicklungsteam angesprochen -> http://tracker.luatex.org/view.php?id=935

Aktualisieren: Seit dem 15. Mai 2015 ist dieser Fehler behoben.

Bildbeschreibung hier eingeben

Hier ist die Ausgabe mit einer neu kompilierten mpostVersion 1.999:

Bildbeschreibung hier eingeben

verwandte Informationen