RE: About combination of thai and devanagrari

From: Peter Constable <petercon_at_microsoft.com>
Date: Wed, 7 Sep 2011 14:41:15 +0000

“TrueType” can mean different things depending on context.


- The TrueType font format specification

- The TrueType glyph outline/ hinting format

- The “sfnt” font file format

These are all inter-related. The TrueType font format was defined around 20 years ago by Apple. Two aspects of that format are (1) an overall file structure, often referred to as the “sfnt” format, and (2) a particular way of describing glyph outlines and hinting.

One particular thing to note regarding the sfnt container format is that it involves a set of data tables and a table directory which are inherently extensible. The TrueType font format defined a particular set of tables, but a font could include additional tables and still be considered a TrueType font.

The OpenType format builds on the TrueType format but leverages the extensibility of the sfnt format in three particular ways:


- It defines additional tables, known collectively as OpenType Layout tables (GDEF, GSUB, GPOS, JSTF and BASE), that provide functionality needed for complex scripts and fine typography

- It defines an additional table, DSIG, to support digital signing of font files

- It allows for glyph outline data using Adobe’s CFF format (the outline format used in Type 1)

In principle, any OpenType font that includes glyph data in TrueType format can be considered a TrueType font. (If it includes CFF outlines, not TrueType outlines, then it is not a valid TrueType font.) Likewise, any font that conforms to the TrueType spec is, in principle, also an OpenType font. But to avoid confusion it’s best to use these terms in a distinctive way: if a font has one or more of the three additional types of data (OTL tables, DSIG tables, CFF outlines), then it’s best to refer to that as an “OpenType” font and not a “TrueType font”.

To support Thai or Devanagari, software that has some higher-level layout engine is required. OpenType Layout tables require rendering engines that know how to interact with the data in those tables. There are other sfnt-based font formats that use different data tables for complex-script support; in particular, Graphite and AAT. Each of those require corresponding layout engines.


Hope that helps.
peter


From: unicode-bounce_at_unicode.org [mailto:unicode-bounce_at_unicode.org] On Behalf Of li bo
Sent: Wednesday, September 07, 2011 2:06 AM
To: verdy_p_at_wanadoo.fr
Cc: unicode_at_unicode.org
Subject: Re: About combination of thai and devanagrari

If I use truetype font, Does it mean i need a higher-level layout engine to layout the font?
I know that there are OpenType tables (GPOS and GSUB) to handle the shape and combine for complex scripts.
But Is the OpenType tables support truetype font? I even don't know the difference between the truetype font and opentype font.
Thanks!




On Tue, Sep 6, 2011 at 1:53 PM, Philippe Verdy <verdy_p_at_wanadoo.fr<mailto:verdy_p_at_wanadoo.fr>> wrote:
Devanagari, not Decanagrari I suppose... Starts by looking at the
TrueType and OpenType specifications:
http://www.microsoft.com/typography/SpecificationsOverview.mspx
Then look at the details of the OpenType features needed for
Devanagari and Thai.

You'll immediately see that Thai is much less complex than Devanagari
to implement.

There are other competing technologies, base on TrueType (AAT for
MacOS, Graphite portable across platforms, but not very well supported
in applications).

SVG fonts for now cannot support these scripts very well due to the
impossibility to map precisely the contextual forms that are unified
in Unicode (for Thai, well it could work with modern texts, but for
Devanagari, it's impossible without additional data for mapping the
contextual glyphs): there's still no specification in SVG fonts for
"features" like in OpenType, AAT and Graphite. In addition, the DOM
API for SVG fonts is not accessible in a documented way (only "opaque"
interfaces are available; you have to rely to the XML DOM instead).

There are tricks to support Devanagari with Type1 fonts, but this
requires integratinf additional Postscript routines, specific to the
PostScript engine, to keep context variables in some accessible global
directory, such as the device context, normally not made for that, or
by self modifying the font's directory (such trick is used to generate
some Barcode fonts; font tools generally provide no help to integrate
those routines).

But you may want to create a composite font, in which case a SVG font
can be built that combines two existing OpenType fonts (without
modifying them and without importing or converting their glyph
definitions), grouped under a single family-name and usable on the web
for CSS. Of you can do that with CSS "@font{ ...}", for later use of
the new family in a stylesheet or in HTML.

-- Philippe --

2011/9/6 li bo <libo.imc_at_gmail.com<mailto:libo.imc_at_gmail.com>>:
> I'd like to implement the combination of thai and decanagrari scripts using
> vector font. But I have no idea about it. How do i adjust the position of
> the combined glyph? Could anyone give some advices or references? Thanks a
> lot!
>

Received on Wed Sep 07 2011 - 09:45:21 CDT

This archive was generated by hypermail 2.2.0 : Wed Sep 07 2011 - 09:45:22 CDT