Die Verwendung pdftex
der folgenden Datei ändert die Kodierung für die Bitmap-Schriftart (dies kann durch Kopieren und Einfügen des Textes aus der resultierenden PDF-Datei überprüft werden):
\pdfmapline{=cmr10 <cmr10.enc}
`hello world'
\end
wobei cmr10.enc
Folgendes gilt (es unterscheidet sich vom Standard nur durch /quoteright
geändert in /uni0027
und /quoteleft
geändert in /uni0060
):
/MyCMRencoding [/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi
/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla
/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright
/numbersign/dollar/percent/ampersand/uni0027/parenleft/parenright
/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six
/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at
/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft
/quotedblleft/bracketright/circumflex/dotaccent/uni0060/a/b/c/d/e/f/g/h/i
/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
] def
Ändern Sie nun \pdfmapline
in =cmr10 <cmr10.enc <cmr10.pfb
. pdftex
schlägt mit diesem Fehler fehl:
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdftex)
restricted \write18 enabled.
entering extended mode
(./test.tex{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} [1] ){cmr10.enc}
</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
pdfTeX warning: pdftex (file /usr/share/texlive/texmf-dist/fonts/type1/public/a
msfonts/cm/cmr10.pfb): glyph `uni0027' undefined
pdfTeX warning: pdftex (file /usr/share/texlive/texmf-dist/fonts/type1/public/a
msfonts/cm/cmr10.pfb): glyph `uni0060' undefined
>
Output written on test.pdf (1 page, 11512 bytes).
Transcript written on test.log.
Das ist seltsam, weil in beiden Fällen dieselbe Enc-Datei verwendet wird. Und die Bitmap-Schriftart zeigt, dass es kein Problem mit dem Namen gibt uni0027
. Warum ist es also nicht möglich, die Kodierung für die Type1-Schriftart in pdftex zu ändern?
Antwort1
Wenn Sie die Kodierung für eine Bitmap verwenden, kodieren Sie die Schriftart nicht wirklich neu. Um den Unterschied zu sehen, tauschen wir A und B in Ihrer Map aus:
/B/A
Wenn du dann kompilierst (ich habe deine Map umbenannt):
\pdfmapline{=cmr10 <testcmrenc.enc <cmr10.pfb}
`AB'
\end
Die Ausgabe sieht folgendermaßen aus:
Daher wurden die Glyphen neu kodiert und haben ihre Plätze getauscht.
Wenn Sie kompilieren
\pdfmapline{=cmr10 <testcmrenc.enc}
`AB'
\end
Die Ausgabe sieht folgendermaßen aus:
Also keine Neukodierung. Wenn man dann aber ein Copy&Paste im PDF macht, ist das Ergebnis
`BA'
Wenn Sie den Mapline-Befehl entfernen und kopieren und einfügen:
‘AB’
Beachten Sie, dass sich sowohl die Bestellung als auch das Angebot geändert haben.
Die Verwendung eines Kodierungsvektors bei Bitmaps ändert also nicht die Kodierung der Bitmaps, sondern dient „nur“ der Verbesserung von Kopieren und Einfügen (was schon eine recht gute Sache ist).