Betrachten Sie dies als 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}
Wenn wir es mit pdfLaTeX oder LuaLaTeX ausführen, sind alle Doppelpunkte richtig ausgerichtet.
Wenn wir es jedoch mit XeLaTeX ausführen, scheinen einige unzulässige Leerzeichen vorhanden zu sein (Abschnitt 1), die mit gelöscht werden können relax
. Warum haben wir dieses Verhalten? Wenn wir Babel oder Polyglossia nicht laden, ist die Ausgabe auch in Ordnung.
Irgendeine Idee?
Antwort1
Es sieht so aus, als könne man das Problem umgehen, \nohyphens
indem man ein Leerzeichen mit der Breite Null einfügt (ich habe es aber nicht mit vielen Schriftarten getestet):
\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}
Ein ähnlicher Trick funktioniert für \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}
Antwort2
Dies ist nur ein Kommentar. Ich bin kein französischer TeX-Benutzer und weiß nicht, was beim Schreiben bevorzugt wird: a thin space before colon :
oder without thin space before colon:
. Vergleichen Sie einfach die folgenden Bilder, die Ausgaben der folgenden mit verschiedenen Optionen (mit/ohne \FBsetspaces{colon}{0.5}{0}{0}
) sind:
\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}