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 \nohyphens
insertando 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}
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}
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}