[HarfBuzz] Fwd: ZWNJ is being ignored

Georg Duffner g.duffner at gmail.com
Sun Apr 28 14:27:22 PDT 2013


Hi,

I posted this on the XeTeX list. Khaled meant it could have something to 
do with 
http://cgit.freedesktop.org/harfbuzz/commit/?id=607feb7cff0e50f8738d2e49ca463fc9d7d494de

Recently I’ve changed the behaviour of liga. The f-ligatures are now 
formed by component glyphs which get substituted by means of contextual 
chaining lookups. Thus, instead of

sub f f by f_f; the lookup is now sub f' f by f._f;

This way I need much less glyphs in the font and it’s much easier to 
produce the whole range of ligatures.


-------- Original-Nachricht --------
Betreff: ZWNJ is being ignored
Datum: Sun, 28 Apr 2013 14:56:11 +0200
Von: Georg Duffner <g.duffner at gmail.com>
An: xetex at tug.org >> Unicode-based TeX for Mac OS X and other platforms 
<xetex at tug.org>

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 HarfBuzz mailing list