I’ve been fighting with multiple language documents in LibreOffice for some
time, and am determined to understand what’s going on. To that end I have a
few questions and some thoughts. My intent is either to have someone point
out that I’m doing it all wrong, or to star some sort of conversation about
how to improve things. So here goes …
According to the Document Foundation Wiki’s Localization Guide for
LibreOffice, versions of LibreOffice (and I’m particularly concerned with
Writer here) running on Unix/Linux rely on the fontconfig utility to suggest
a font replacement when a requested font is not available. Apparently
LibreOffice uses its own routines under Windows.
First Question: Is this still true in current versions?
According to the documentation (man pages and such) for FontConfig, that
utility matches fonts using a very specific set of font characteristics that
are weighted in the following order: foundry, charset, family, lang, etc.
With the advent of “free” fonts over the past decade, I’ve found that many –
even most – such fonts have no foundry listed. Since that is the most
heavily weighted attribute in the matching process, and since null is never
equal to null, the matches returned are sometimes inappropriate.
Second Question: Is FontConfig called by LibreOffice only when a complete
font is missing, or if the font in question just doesn’t have some
This is particularly of interest with fonts having Complex Text Layouts.
Although it is possible to set a CTL replacement for fonts in Writer (e.g.
Tools | Options | LibreOffice Writer | Basic Fonts (CTL), Format | Character
and so forth), this is always limited to a single font, which isn’t always
As an example, let’s say we go to Tools | Options | Language Settings |
Languages, check off “Complex Text Layout” and specify the language as Thai
(again, this can only be done for one language at a time). If we use a font
such as FreeSerif that has all the characters needed for both English and
Thai (as well as most other languages you’re likely to run across),
everything works just fine.
On the other hand, if we use a free Google font such as Droid Sans (which
has no foundry property), we get into trouble. Apparently in order to keep
fonts to a reasonable size, Google offers additional unicode pages as
separate font files: Droid Sans Armenian, Droid Sans Ethiopic, Droid Sans
Thai, etc. If the current font is Droid Sans and some Thai characters are
typed, fontconfig does NOT return Droid Sans Thai, but rather (seems to)
return the first font in which it locates the requested language.
Of course, this can be corrected for ONE font with Tools | Options |
LibreOffice Writer | Basic Fonts (CTL), but if more than one font is used
and neither is a so-called “pan-unicode” font, you must go through some
annoying machinations to get things working correctly (this can be done with
character styles, of course, but that can’t be considered anything other
than a work-around). Character styles were really not meant for this –
that’s what selecting a font is supposed to do.
All of this tends to make creation of bi-lingual documents, particularly
those using CTL, less flexible than normal single language document
creation – sprinkling a document with multiple documents is of course
generally considered a bit tacky, but there are legitimate reasons for doing
so. Creation of documents that use more than one language (and yes, I’ve
done that) is even more tedious; if more than one CTL language is used (e.g.
mixing Arabic and Hebrew, or Thai and Arabic) it’s a very difficult, if not
impossible task. Could this perhaps be the real underlying reason a
middle-east peace agreement can’t be reached? Is it just because there’s no
way to write it down. (Sorry – I know this isn’t the place for politics, but
the problem seems real enough to mention).
Even officially sanctioned free fonts can be problematic. The government of
Thailand, for instance, in an effort to bring some standardization to
official documents and avoid font piracy, has specified a set of thirteen
customized free fonts – SIPA.zip contains these – but none of these has any
foundry property defined. They are quite suitable for documents mixing Thai
and English, but don’t help if some third language is introduced into a
Writer document as well, particularly if the third language also requires
CTL. That isn’t actually far-fetched, as they have neighbors that use CTL
Has anyone given much thought to permitting finer-grained control of CTL
font substitution – e.g. making the CTL font substitutions page similar to
the Options | LibreOffice | Fonts page used for general font substitution of
missing fonts. In other words, permitting multiple fonts to have
substitutions defined? And then also reversing the order of the Complex Text
Layout section of Tools | Options | Language Settings | Languages from
[CTL=On, CTL Language=Whatever] to [Language=Whatever and then for each
I apologize if this sounds like a rant; it's not intended to be - it's just
a stream of consciousness thing caused by frustration at trying to
understand this whole subject ...
Thanks in advance for any comments, suggestions, and so forth.
View this message in context:
Sent from the Users mailing list archive at Nabble.com.
To unsubscribe e-mail to: firstname.lastname@example.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted
- [libreoffice-users] Font versus Character Substitution · CVAlkan
Impressum (Legal Info)
: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (MPLv2
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our trademark policy