\'. 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 }.

ここで問題が起こります。 は\TIPAaccent2 つの引数を必要としますが、\endは確かに適切なトークンではないことが分かります。

次に例を示します。

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

Latin Modern には必要なグリフがないため、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。これはフォントによって異なります。

ここに画像の説明を入力してください

関連情報