在以下文件上使用pdftex
可變更點陣字體的編碼(可以透過從生成的 PDF 複製貼上文字來檢查):
\pdfmapline{=cmr10 <cmr10.enc}
`hello world'
\end
其中cmr10.enc
如下(與預設值不同僅/quoteright
更改為/uni0027
和/quoteleft
更改為/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
現在將 更改\pdfmapline
為=cmr10 <cmr10.enc <cmr10.pfb
.pdftex
失敗並出現此錯誤:
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.
這很奇怪,因為這兩種情況都使用相同的 enc 檔案。且點陣字體說明名稱沒有問題uni0027
。那麼,為什麼無法更改 pdftex 中 Type1 字體的編碼呢?
答案1
當您使用點陣圖編碼時,您實際上並沒有重新編碼字體。要查看差異,讓我們交換地圖中的 A 和 B:
/B/A
如果您隨後編譯(我已重命名您的地圖):
\pdfmapline{=cmr10 <testcmrenc.enc <cmr10.pfb}
`AB'
\end
輸出如下圖所示:
因此,這些字形已被重新編碼並交換了位置。
如果你編譯
\pdfmapline{=cmr10 <testcmrenc.enc}
`AB'
\end
輸出如下圖所示:
所以沒有重新編碼。但如果你然後在 pdf 中進行複製和貼上,結果是
`BA'
如果刪除 mapline 命令並進行複製和貼上:
‘AB’
請注意,訂單和報價均已更改。
因此,使用具有位圖的編碼向量不會改變點陣圖的編碼,而是「僅」用於改進複製和貼上(這已經是一件非常好的事情)。