
이 질문은 다음과 관련이 있습니다.이 하나. 문서를 인용하려면 다음을 수행하십시오.
pdftex.map 이외의 기본 맵 파일 이름을 사용하거나 pdfTeX 형식을 통해 처리 옵션을 변경하려면 -ini 실행을 위한 토큰 목록
\pdfmapfile
에 명령을 추가하여 수행할 수 있습니다. 예: 이것은 항상 다음과 같습니다. 기본 파일 다음의 파일 .\everyjob{}
\everyjob\expandafter{\the\everyjob\pdfmapfile{+myspecial.map}} \dump
myspecial.map
pdftex.map
형식 생성 시 이 지침을 따르려고 했지만 성공하지 못했습니다. 파일 pdftexconfig.tex
에서 작동했던 방식대로 파일 끝에 명령을 배치했지만 pdftex.cfg
오류가 발생합니다.
MLTeX v2.2 enabled
***pdflatex.ini
(/texmf/tex/initex/pdflatex.ini (/texmf/tex/initex/pdftexcf.tex
! Missing { inserted.
<to be read again>
{
l.23 \everyjob\expandafter{\the\everyjob
\pdfmapfile{+cmfonts.map}}
? x
그렇지 않으면(파일 끝에 이 추가가 없으면 pdftexcf.tex
) 형식 생성이 문제 없이 진행됩니다. 왜 이런 일이 일어나는지 짐작할 수 있습니까?
주의 사항: DOS에서 실행 중이므로 구성 파일의 이름을 줄였습니다. 바로 그 이유 때문에 나는 출마할 여유가 없습니다 updmap
.
답변1
처음에는 오류가 정말 이상해 보였습니다. 왜냐하면 레지스터 \the\everyjob
의 내용으로 확장되어야 \everyjob
하고 모든 것이 정상적으로 작동해야 하기 때문입니다. 메시지 Missing { inserted
는 분명합니다. TeX는 (분명히 거기에 있는) a를 찾고 있었지만 {
찾지 못했습니다. 그것을 가질 수 있는 유일한 방법은 그렇지 {
않은 경우입니다.실제로ㅏ {
:
\everyjob{}
\catcode`\{=12
\everyjob\expandafter{\the\everyjob\pdfmapfile{+cmfonts.map}}
오류 메시지는 동일합니다.
! Missing { inserted.
<to be read again>
{
l.3 \everyjob\expandafter{\the\everyjob
\pdfmapfile{+cmfonts.map}}
?
GuM이 댓글에서 지적했듯이 INITEX는 실제로 사용할 수 있도록 최소한의 catcode 설정을 수행하며 다른 모든 문자는 catcode 12로 초기화됩니다.TeXBook:
시작 되면
INITEX
TeX의 기본 요소 외에는 아무것도 모릅니다. 모든 256개 문자는 처음에 카테고리 12에 속합니다. 단,<return>
카테고리 5,<space>
카테고리 10,<null>
카테고리 9,<delete>
카테고리 15,A
...Z
및a
... 문자z
는 카테고리 11,%
각각\
카테고리 14 및 0을 갖습니다. 따라서INITEX
처음에는 그룹화에 의존하는 TeX의 기본 요소 중 일부를 수행할 수 없습니다. 범주 1과 2의 문자가 있을 때까지는\def
또는를 사용할 수 없습니다 . 부록 B의 형식은 필요한 범주의 문자를 제공하는 명령으로 시작됩니다. 예:\hbox
\catcode
\catcode`\{=1
실제로 다음 오류 메시지( )를 건너뛰면(최소한 catcode-2 가정 }
) 오류 메시지( Too many }'s
)가 \showthe\everyjob
표시됩니다 {\pdfmapfile {+cmfonts.map
. 즐겁습니다 :-)
해당 메시지를 통해 TeX 는 {
. {
아래쪽 두 개의 컨텍스트 줄은 도착하지도 않았다는 것을 보여줍니다. \pdfmapfile
따라서 문제는 아니며 \everyjob
비어 있습니다(위에서 확인했습니다). 남은 것은 자기 {
자신뿐이다. 이 줄은 누락된 부분이 삽입된 후 <to be read again>
토큰을 {
다시 읽을 것임을 의미합니다(TeX는 재미있습니다).{
교훈: TeX의 오류 메시지는 다음과 같습니다.매우의미가 분명합니다. 일부를 이해하려면 정말 열심히 생각해야합니다.
완전성을 위해 원래 기능을 복원하려면 pdftex.cfg
다음을 추가해야 합니다.
\begingroup
\catcode`\{=1 %
\catcode`\}=2 %
\global\everyjob\expandafter{\the\everyjob\pdfmapfile{+cmfonts.map}}
\endgroup
파일 끝에 pdftexconfig.tex
. 필요에 따라 나머지 구성 파일을 편집합니다.