\'. da error cuando se utiliza el paquete fontspec

\'. da error cuando se utiliza el paquete fontspec

El siguiente ejemplo mínimo:

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

produce el error:

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

¿Qué pasa aquí?

solo para evitar¿Por qué querrías poner un acento agudo sobre un peroide?Como tipo de argumento, debo decir que para un curso de TeX que estoy enseñando, uso The TeXBook y este ejemplo en particular proviene del TeXBook en el capítulo 3.

Respuesta1

El comando \'se convierte \EU1-cmd\' \EU1\'y luego \EU1-cmdverifica si la combinación

\\EU1\'-.

se define; la secuencia de control tiene \EU1\'-.como nombre y puede ser comprobada por

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

lo que da

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

Ahora el problema sigue, porque \TIPAaccentquiere dos argumentos y encuentra \endque seguramente no es una buena señal para ello.

He aquí un ejemplo:

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

Se necesita Gentium porque Latin Modern no tiene el glifo requerido.

ingrese la descripción de la imagen aquí

En conclusión, \TeX\'.muestra un mal uso de la barra invertida después de \TeX.

Si lo necesita \'.con fines de demostración, puede anular la declaración del compuesto usando el comando que sugerí enhttps://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}

La ubicación del acento no es la misma que con cmr10; esto depende de las fuentes.

ingrese la descripción de la imagen aquí

información relacionada