JLREQ <-> fonts

Eric Muller emuller at Adobe.com
Fri Oct 7 18:59:34 CEST 2011


In the model of Japanese layout presented in JLREQ [1], a number of 
characters such as the ideographic punctuations and the brackets are 
described as 1/2 em wide, and the spacing tables add some space around 
them as needed, typically an 1/2 em on one side, or 1/4 em on each side. 
See for example figure 64 in JLREQ; the blue cells are space which is 
added by the layout engine (and there is no space character in the 
text). Not apparent from the figure: the added space is elastic, and is 
adjusted as needed for the justification of the lines; and there is 
space added on each side of each character - you don't see them in the 
figure because the default width of many of those spaces is 0, but they 
can grow for justification.

The note 1 following that table states:


> In font <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#font> 
> implementations, punctuation marks 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#punctuation-marks> can 
> be given a different character width, but it is expected that the font 
> is capable of following the line composition rules explained here to 
> produce the final result. For example, when opening brackets (cl-01) 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#cl-01> and closing 
> brackets (cl-02) 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#cl-02> are implemented 
> with full-width size, it is possible that a minus half em space is 
> inserted between adjacent closing brackets (cl-02) 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#cl-02> and opening 
> brackets (cl-01) 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#cl-01> (Some 
> implementations prepare minus half em 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#half-em> and quarter 
> em <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#quarter-em> 
> spaces). In letterpress printing 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#letterpress-printing>, 
> it was also common practice to combine punctuation marks with a 
> half-width body and half em spaces in order to make it easier to 
> remove the space later for adjustment. Because of that, the types were 
> picked up except for the punctuation marks at the type-picking 
> <http://www.w3.org/TR/2009/NOTE-jlreq-20090604/#type-picking> phase, 
> following the manuscript, and the punctuation marks were picked only 
> when they were necessary in composing a page. Later, with the 
> increasing adoption of Monotype machines, punctuation marks with a 
> full-width body became popular and both full-width and half-width 
> punctuation marks have been used, mixed together, since then.

It is indeed the practice in OpenType fonts to have the advance width of 
those glyphs at 1em and to place the ink accordingly. For example, the 
ink of a left parenthesis is in the right half of the em, and the left 
half is empty; the ink of a right parenthesis is in the left half of the 
em; the ink in a middle dot is in the center half em, with the left and 
right quarter em empty.

I suspect that in addition to the letterpress heritage, this allowed 
"western" layout engines to produce acceptable results. Essentially, the 
most typical space that is normally added by a JLREQ-aware engine is 
built in the glyph, and a non-JLREQ-aware engine will therefore produce 
an acceptable layout most of the time (in unjustified lines, at least).

The consequence for a JLREQ-aware layout engine is that it must 
fundamentally "remove" that built-in space. This means a table in the 
layout engine to record what to remove (how much, on which side) from 
which character.  While such a table is often adequate, there are some 
problems:

- first, this convention is not recorded anywhere in the OT specs, yet 
it is clearly crucial for the interoperability of layout engines and fonts

- proportional and non-square fonts present a challenge; should one 
remove 1/2em or 1/2 the advance width of the glyph

- the situation is a bit different for Chinese, where the ideographic 
comma and period are centered in the em, instead of being on the left 
half; yet, there is no reliable way for a layout engine to know if it 
deals with a Japanese font or with a Chinese font (not to mention 
pan-CJK fonts)

It seems to me that we would have a much more reliable system if we used 
an OT feature that would fundamentally deliver glyphs in the JLREQ 
model. I understand that this also begs for a Chinese equivalent of 
JLREQ; it's unclear to me whether we want/need a separate feature for 
Chinese. And then there is the question of Hangul as well.

Discussion?


Eric

[1] JLREQ : Requirements for Japanese Text Layout, W3 Working Group 
Note, http://www.w3.org/TR/2009/NOTE-jlreq-20090604/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20111007/8b6d1383/attachment.html>


More information about the mpeg-otspec mailing list