XeLaTeX, nohyphen, espacio y babel/poliglosia

XeLaTeX, nohyphen, espacio y babel/poliglosia

Considere este MWE

\documentclass[french]{article}
\usepackage{babel}
\usepackage{hyphenat}


\begin{document}
\section{without relax}
Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\texttt{Cambridge} : University (C)

\verb|Cambridge| : University (D)


\section{with relax}

Cambridge\relax : University (E)

\nohyphens{Cambridge}\relax : University (F)

\texttt{Cambridge}\relax : University (G)

\verb|Cambridge|\relax : University (H)
\end{document}

Si lo ejecutamos con pdfLaTeX o LuaLaTeX, todos los dos puntos quedan bien alineados.

Pero si lo ejecutamos con XeLaTeX, parece que hay algunos espacios falsos (sección 1), que se pueden cancelar con relax. ¿Por qué obtuvimos este comportamiento? Si no cargamos babel o polyglossia, el resultado también está bien.

¿Alguna idea?

Respuesta1

Parece que se puede solucionar el problema \nohyphensinsertando un espacio de ancho cero (pero no probé con muchas fuentes):

\documentclass[french]{article}
\usepackage{babel}
\usepackage{hyphenat}

\begin{document}

Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\nohyphens{Cambridge}: University (C)

\renewcommand{\nohyphens}[1]{{{\language\langwohyphens #1}^^^^200b}}

Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\nohyphens{Cambridge}: University (C)
\end{document}

ingrese la descripción de la imagen aquí

Un truco similar funciona para \verb:

\documentclass[french]{article}
\usepackage{babel}

\begin{document}
Cambridge : University (A)

\verb|Cambridge| : University (C)

\makeatletter
\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup^^^^200d}
\makeatother

Cambridge : University (A)

\verb|Cambridge| : University (C)

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Esto es sólo un comentario. No soy un usuario francés de TeX y no sé qué es preferible escribir: a thin space before colon :o without thin space before colon:. Simplemente compare con las siguientes imágenes que son resultados de lo siguiente con diferentes opciones (sin/sin \FBsetspaces{colon}{0.5}{0}{0}):

\documentclass[french]{article}
\usepackage{babel}
\usepackage{hyphenat}

\FBsetspaces{colon}{0.5}{0}{0}


\begin{document}
\section{all without relax}
Cambridge : University (A)

\nohyphens{Cambridge} : University (B)

\texttt{Cambridge} : University (C)

\verb|Cambridge| : University (D)


\section{all with relax}

Cambridge\relax : University (E)

\nohyphens{Cambridge}\relax : University (F)

\texttt{Cambridge}\relax : University (G)

\verb|Cambridge|\relax : University (H)

\section{with relax just for typewriter and verbatim}

Cambridge : University (E)

\nohyphens{Cambridge} : University (F)

\texttt{Cambridge}\relax : University (G)

\verb|Cambridge|\relax : University (H)

\section{all without manual space}

Cambridge: University (E)

\nohyphens{Cambridge}: University (F)

\texttt{Cambridge}: University (G)

\verb|Cambridge|: University (H)
\end{document}

  • PDFLaTeXcon\FBsetspaces{colon}{0.5}{0}{0} ingrese la descripción de la imagen aquí

  • XeLaTeXcon\FBsetspaces{colon}{0.5}{0}{0} ingrese la descripción de la imagen aquí

  • PDFLaTeXsin\FBsetspaces{colon}{0.5}{0}{0} ingrese la descripción de la imagen aquí

  • XeLaTeXsin\FBsetspaces{colon}{0.5}{0}{0} ingrese la descripción de la imagen aquí

información relacionada