\'. gibt einen Fehler aus, wenn das Fontspec-Paket verwendet wird

\'. gibt einen Fehler aus, wenn das Fontspec-Paket verwendet wird

Folgendes Minimalbeispiel:

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

erzeugt den Fehler:

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

Was ist hier los?

Nur um zu vermeidenwarum sollte man einen Punkt mit einem Akut belegen?Art von Argument muss ich sagen, dass ich für einen TeX-Kurs, den ich unterrichte, das TeXBook verwende und dieses spezielle Beispiel aus dem TeXBook in Kapitel 3 stammt.

Antwort1

Der Befehl \'wird \EU1-cmd\' \EU1\'und prüft dann \EU1-cmd, ob die Kombination

\\EU1\'-.

definiert ist; die Kontrollsequenz hat \EU1\'-.als Namen und kann überprüft werden durch

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

was gibt

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

Nun folgt das Problem, denn \TIPAaccentes will zwei Argumente und findet, \endwelches sicherlich kein gutes Token dafür ist.

Hier ist ein Beispiel:

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

Gentium wird benötigt, da Latin Modern über die erforderliche Glyphe nicht verfügt.

Bildbeschreibung hier eingeben

Zusammenfassend \TeX\'.zeigt dies eine falsche Verwendung des Backslashs nach \TeX.

Wenn Sie es \'.zu Demonstrationszwecken benötigen, können Sie das Composite mit dem Befehl, den ich inhttps://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}

Die Platzierung des Akzents ist nicht identisch mit der bei cmr10; dies ist schriftartabhängig.

Bildbeschreibung hier eingeben

verwandte Informationen