[XeTeX] Zero Width Non Joiner, or how not to make a ligature

Gerrit Sangel z0idberg at gmx.de
Thu Nov 15 14:59:41 CET 2007

Am Donnerstag 15 November 2007 schrieb François Charette:
> > I tried it in Fontforge in the metric window, and of Computer Modern,
> > Gentium and Linux Libertine, only Computer Modern works as espected.
> Not sure I understand what you mean...

Take a look at the attached pictures :)

> You're right.
> By the way, if you don't like inputing invisible glyphs in your editor,
> you could use a font mapping (like tex-text.map) specifically for
> Fraktur with this line in it:

Hm, but I think the way with ZWNJ is the best for storing, because one would 
then be more or less independent from XeTeX.
Also, maybe some time in the future a text editor will come up which can deal 
with Opentype fonts and features and could show the ligatures on the fly. 
Then, if I insert a ZWNJ between two characterds, he could automatically 
breaks the ligatures and show the distinct glyphs. The user could then see if 
a ZWNJ is inserted or not and it would not be so invisible after all.

But I think that would be a bit optimistic... But I’m using Kate/Kile, maybe 
they have improved Unicode support in QT4 and it is a step toward full 
Unicode/Opentype support on the fly. That would be great.

> But of course, you first need to find a Fraktur font which supports
> ZWNJ, which does not seem obvious!

I wrote a mail to a person who digitalized some Fraktur fonts, but she didn’t 
really know about Unicode and Opentype, she mapped ſ to s and \ was s and the 
individual ligatures were mapped to % or ] or something like that... The 
problem is, almost all Fraktur fonts handle the ligatures that way, the best 
is if someone maps ſ to U+017F, but apart from that, I don’t see a 
really “good” Fraktur font which supports all Unicode and Opentype features.
Maybe some really expensive ones, but the free or relatively cheap ones don’t 
have these features.

But that would be the best way. I guess one can then also make websites in 
Fraktur... I found the Script code “Latf” on this page: 

I guess if the designer would design a website with

<p xml:lang="de-Latf">Das iſt Fraktur</p>

the user could really have a convenient page with Fraktur fonts. But this 
would require that
a) The browser knew about the “Latf” code and the user could specify a font 
for this code
b) The browser would support Opentype
c) The designer would use ſ and ZWNJ and not some weird mappings.
d) A technically up to date Fraktur font would be available (at best free of 

I guess this would take years...

> An alternative would be to make a character (such as |) active in your
> Fraktur environment, and define it as a \strut : this will also prevent
> the ligature.

Hm, I guess this would be a bit too inconvenient. If I did it that way, I 
could also use the frakturx package for normal Latex. But the advantage of 
XeTeX would be that one could really have the ſ inserted.
But the problem then is that babel does not understand the long s and could 
not wrap the words correctly... This problem does not occur with frakturx.


More information about the XeTeX mailing list