\'. выдает ошибку при использовании пакета 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, который я преподаю, я использую TeXBook, и этот конкретный пример взят из TeXBook в главе 3.

решение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; это зависит от шрифта.

введите описание изображения здесь

Связанный контент