[XeTeX] ZWNJ is being ignored

Georg Duffner g.duffner at gmail.com
Sun Apr 28 14:56:11 CEST 2013


Hi,

I’ve run across a bug in v.0.9999.0 from tlcontrib and I’d like to know 
if this is still true:

XeTeX 0.9999.0 ignores uni200C (zero width non joiner) with latin 
script. It is needed for inhibiting ligatures at certain places in 
german. Babel provides a shorthand for this purpose ("|) which inserts a 
tiny kern between the two letters but that prevents contextual lookups. 
If I insert a ZWNJ at that place, the ligature substitution takes place 
nevertheless.

In EB Garamond this matters because there are two differently shaped 
"f"s and I want two non ligated "f"s following each other to take the 
same shape. LuaTeX and FF21 do this correctly (see: 
http://georgduffner.at/ebgaramond/tests/zwnj.html).

The minimal example contains different ways of (not) breaking up 
ligatures. The last two contain the ZWNJ character. Please use this 
version of the font: 
http://georgduffner.at/ebgaramond/fonts/EBGaramond12-Regular.otf

\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\usepackage[german]{babel}
%\defineshorthand{"|}{\char"200C}
\begin{document}
\addfontfeature{Language=German}
auffallend auffällig\\
auf"|fallend auf"|fällig\\
auf\/fallend auf\/fällig\\
auf{}fallend auf{}fällig\\
auf\char"200C fallend auf\char"200C fällig\\
auf‌fallend auf‌fällig
\end{document}

Best regards,
Georg


More information about the XeTeX mailing list