Type1 글꼴에 대한 pdfTeX에서 인코딩 변경이 작동하지 않는 이유는 무엇입니까?

Type1 글꼴에 대한 pdfTeX에서 인코딩 변경이 작동하지 않는 이유는 무엇입니까?

다음 파일에 사용하면 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-file이 사용되기 때문에 이것은 이상합니다. 그리고 비트맵 폰트는 이름에 문제가 없음을 보여줍니다 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’

주문과 견적이 모두 변경되었음을 확인하세요.

따라서 비트맵과 함께 인코딩 벡터를 사용하면 비트맵의 인코딩이 변경되지 않고 복사 및 붙여넣기를 개선하는 데 "오직" 사용됩니다(이미 상당히 좋은 기능임).

관련 정보