\'. Fontspec 패키지를 사용할 때 오류가 발생합니다.

\'. Fontspec 패키지를 사용할 때 오류가 발생합니다.

다음과 같은 최소한의 예:

\documentclass{article}
\usepackage{fontspec}
\begin{document}
The logo `\TeX\'.
\end{document}

오류가 발생합니다.

./test.tex:5: Argument of \end has an extra }.
<inserted text> 
                \par 
l.5 \end
        {document}
? 

여기서 무슨 문제가 있습니까?

단지 피하기 위해왜 페리로이드 위에 악센트를 붙이고 싶나요?제가 가르치는 TeX 과정에서 저는 The TeXBook을 사용하는데 이 특별한 예는 3장의 TeXBook에서 나온 것입니다.

답변1

명령 \'은 다음 \EU1-cmd\' \EU1\'\EU1-cmd같은 조합인지 확인합니다.

\\EU1\'-.

정의되어 있습니다. 제어 시퀀스에는 \EU1\'-.이름이 있으며 다음으로 확인할 수 있습니다.

\expandafter\show\csname\string\EU1\string\'-.\endcsname

이는

> \\EU1\'-.=macro:
->\TIPAaccent {\textdotacute }.

이제 문제가 발생합니다. 왜냐하면 두 개의 인수를 원하고 그에 대한 좋은 토큰이 아닌 것을 \TIPAaccent발견하기 때문입니다 .\end

예는 다음과 같습니다.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Gentium}
\begin{document}
\'.e
\end{document}

라틴 모던에는 필요한 글리프가 없기 때문에 Gentium이 필요합니다.

여기에 이미지 설명을 입력하세요

결론적으로 는 \TeX\'.뒤에 백슬래시를 잘못 사용한 것을 보여줍니다 \TeX.

데모 목적으로 필요한 경우 \'.제가 제안한 명령을 사용하여 복합 선언을 취소할 수 있습니다.https://tex.stackexchange.com/a/58115/4427

\documentclass{article}
\usepackage{fontspec}
\setmainfont{CMU Serif}

\providecommand*\UndeclareTextComposite[3]{%
  \expandafter\let\csname\expandafter\string\csname
  #2\endcsname\string#1-#3\endcsname\relax}

\UndeclareTextComposite{\'}{EU1}{.}

\begin{document}
`\TeX\'.
\end{document}

악센트의 위치는 와 동일하지 않습니다 cmr10. 이는 글꼴에 따라 다릅니다.

여기에 이미지 설명을 입력하세요

관련 정보