[mpeg-OTspec] Toward a Composite Font format specification

Daniel Strebe dstrebe at adobe.com
Fri Sep 4 20:34:26 CEST 2009


Karsten & colleagues:

Thanks for the comments.

Right, the transformation matrix specifically would not affect metrics.


 1.  Sometimes one does not wish for the metrics to be affected at all, and often one wants the metrics to be adjusted in some way beyond what the matrix achieves. We could provide for adjusting the metrics after the metrics have been transformed, but then what was the point of transforming the metrics in the first place?
 2.  The effect of a general transformation matrix on horizontal/vertical metrics would make them deviate from vertical or horizontal. While we could state that the effect on metrics would be to discard the non-horizontal component of the horizontal result and non-vertical of the vertical result, that result alone is unlikely to correspond to the desired result.

These reasons seem to beg that we separate the metrics from the glyph impression entirely. Certainly we must state this explicitly in the specification.

Regards,

- daan Strebe
Senior Computer Scientist
Adobe Systems Incorporated


On 09/09/04 1:26, "Karsten Luecke" <karstenluecke at yahoo.de> wrote:


Wrote but forgot to send it ...

A transformation matrix is a very good idea.
(This is also nice in that it introduces something to glyf-based OTFs
that I missed so far -- or does it exist and I only didn't notice?)

> Perhaps we should apply a transformation matrix to the
> glyph, and a separate x/y scaling to the metrics.

Do I understand it correctly that the transformation matrix would not
affect metrics? If so, then this needs to be made very explicit in the
spec, to make sure that a designer/producer cares that matrix and
scaling are in tune.

Best wishes,
Karsten

Daniel Strebe wrote:
> Karsten & colleagues,
>
> In order to achieve the effect of magnifying the glyph without affecting
> the associated metrics, one would need to apply Karsten’s proposed
> tracking on both sides of the glyph. That’s feasible, but it makes me
> worry about how the font machinery ends up reporting metrics to the
> client and how the client interprets those metrics. Something reported
> to the client as tracking will cause behavioral changes in the client
> that are specific to the client, particularly at line starts and ends
> and in distribution of excess whitespace.
>
> As I consider this proposed magnification, I realize it would be better
> to have a full linear transformation matrix that may be applied
> uniformly to a component font. This allows for 斜体 (shatai), the
> technique in phototypesetting of interposing a lens, generally tilted
> with respect to the beam, between the projector and the film. This is
> fairly common in CJK layout and also has precedence in Western
> typography. It can approximate italicization or effectively change slant
> angle in order to better match component fonts. In this case there is no
> longer any specific notion of “center-based”; the entire glyph gets
> magnified, sheared, translated, and rotated in one operation as referred
> to the glyph origin. For center-based typography, the adjustment would
> be made in the translation component of the matrix.
>
> Until now we have considered scaling with metrics, and magnification
> independent of metrics. Perhaps we should break the problem apart
> differently. Perhaps we should apply a transformation matrix to the
> glyph, and a separate x/y scaling to the metrics. In this way we can
> eliminate any conflict, confusion, or compounding of scaling of the
> glyph itself, provide for all cases considered, and avoid special cases
> for ideographic fonts.
>
> Regards,
>
> - daan Strebe
> Senior Computer Scientist
> Adobe Systems Incorporated
>
>
> On 09/08/26 3:11, "Karsten Luecke" <karstenluecke at yahoo.de <mailto:karstenluecke%40yahoo.de> > wrote:
>
>
>
>
>
>     So as I understand Mr Strebe's and Mr Lunde's descriptions, there
>     should be:
>      -- ScaleFactorX/ScaleFactorY
>      (scaling everying including all metrics)
>      -- CompressFactorX/CompressFactorY
>      (compressing outlines but no other metrics)
>     I would then omit uniform counterparts ScaleFactor and CompressFactor
>     since the same can be expressed with -X and -Y ones.
>
>     However, I wonder if the latter is not too CJK-specific. As far as I
>     see, the effect of CompressFactorX can be achieved as well by
>     ScaleFactorX + tracking, and CompressFactorY by ScaleFactorY + leading.
>     Because IF CompressFactorX/CompressFactorY is available, why not also
>     use CompressFactorX/CompressFactorY in combination with
>     ScaleFactorX/ScaleFactorY with Latin script fonts, to achieve a tracking
>     effect. This however might have odd effects on mark positioning: Imagine
>     that CompressFactorX "scales" a glyph with respect to its center while
>     not adjusting its width, but since this does not affect other metrics
>     like mark attachment points defined in GPOS, the mark position will
>     be off.
>
>     Weren't it easier to introduce an additional TrackingX factor so that
>     via ScaleFactorX plus TrackingX you achieve the desired effect of
>     CompressFactorX? And via ScaleFactorY plus BaselineAdjustment you
>     achieve the desired effect of CompressFactorY?
>
>     This just "for consideration". I have not thought through it in detail.
>
>     Best wishes,
>     Karsten
>
>     Ken Lunde wrote:
>     >  daan,
>     >
>     >  I consider InDesign's Composite Font functionality to be near or at
>     >  the high end of the typographic spectrum, in terms of such
>     typographic
>     >  attributes, so if these attributes in this Composite Font
>     >  specification are equivalent to what InDesign supports, I think it
>     is
>     >  safe to assume that we're in a good position.
>     >
>     >  Like you, I'd like to know if anyone else has any additional details
>     >  that could help with this discussion.
>     >
>     >  Regards...
>     >
>     >  -- Ken
>     >
>     >  On 2009/08/25, at 17:08, Daniel Strebe wrote:
>     >
>     > > Thanks, Ken.
>     > >
>     > > Anyone else? Any conceivable use case for square advance widths
>     in a
>     > > non-square design space?
>     > >
>     > > I don’t like to advocate limiting what people can do. Still,
>     > > everything we allow in manipulating component fonts costs
>     > > engineering and testing time in clients, discouraging their
>     interest
>     > > in implementing the facility. Without examples of such fonts or
>     even
>     > > use cases for such fonts, I’m leery of incorporating the
>     > > functionality. Also, I think a uniform magnification pared with
>     > > independently specifiable x/y scalings might perhaps help people
>     > > keep the semantics distinct in their own minds when creating recipes.
>     > >
>     > > I do not think my arguments carry much weight; if anyone could come
>     > > up with a hypothetical reason someone might need asymmetric
>     > > magnification then I would favor adding semantics for it in the
>     > > grammar.
>     > >
>     > > Regards,
>     > >
>     > > - daan Strebe
>     > > Senior Computer Scientist
>     > > Adobe Systems Incorporated
>     > >
>     > >
>     > > On 09/08/25 14:57, "Ken Lunde" <lunde at adobe.com <mailto:lunde%40adobe.com>
>     <mailto:lunde%40adobe.com> > wrote:
>     > >
>     > > daan,
>     > >
>     > > There are non-square designs, but their horizontal and vertical
>     > > advances match the extent to which they are non-square. In other
>     > > words, their horizontal and vertical advances are uniform, but
>     not the
>     > > same for both axes.
>     > >
>     > > Newspaper fonts in Japan are compressed along the Y-axis. Those in
>     > > China, because horizontal is the official writing direction, are
>     > > compressed along the X-axis. AXIS, a type foundry in Japan, released
>     > > condensed and compressed versions of their AXIS family, which have
>     > > compression done along the X-axis. This allows more glyphs to fit
>     into
>     > > a fixed area, and seems very suited for use on mobile devices.
>     > >
>     > > Anyway, what I have described are fonts that have been designed using
>     > > a non-square design space.
>     > >
>     > > Regards...
>     > >
>     > > -- Ken
>     > >
>     > > On 2009/08/25, at 14:44, Daniel Strebe wrote:
>     > >
>     > >> Mikhail,
>     > >>
>     > >> Thanks for the comment.
>     > >>
>     > >> I am uncertain about the need for independent x/y
>     > >> “magnification”. You correctly note that you cannot
>     > >> achieve “everything” with just uniform magnification
>     > >> combined with x/y scaling. And, like you, I cannot come up with a
>     > >> scenario that requires it.
>     > >>
>     > >> For the font experts at large: Do we know of any CJK fonts that use
>     > >> a square character advance (that is, same advance horizontally as
>     > >> vertically) but whose effective ideographic M-box is rectangular?
>     > >> (That is, the “average” glyph impression is
>     > >> significantly not-square.) Can we see any reason why anyone would
>     > >> ever create such a thing? Without a font constructed like this, I do
>     > >> not see any point in non-uniform magnification, since there would
>     > >> never be anything to adjust for.
>     > >>
>     > >> Regards,
>     > >> - daan Strebe
>     > >>
>     > >>
>     > >> On 09/08/25 13:12, "Mikhail Leonov" <mleonov at microsoft.com <mailto:mleonov%40microsoft.com>
>     <mailto:mleonov%40microsoft.com> > wrote:
>     > >>
>     > >> Daan,
>     > >> I agree, these properties need to have distinct names that emphasize
>     > >> the difference in how metrics are scaled, as opposed to how scale
>     > >> factors are specified.
>     > >>
>     > >> In addition, should glyph magnification property have separate X and
>     > >> Y scale factors as well? I don’t have concrete scenarios in
>     > >> mind that would use this feature yet, but it makes sense in terms of
>     > >> symmetry.
>     > >>
>     > >> Best regards,
>     > >> Mikhail Leonov
>     > >> Microsoft
>     > >>
>     > >>
>     > >> From: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com>
>     <mailto:mpeg-OTspec%40yahoogroups.com>  [mailto:mpeg-
>     > >> OTspec at yahoogroups.com <mailto:OTspec%40yahoogroups.com>  <mailto:OTspec%40yahoogroups.com> ] On
>     Behalf Of Daniel Strebe
>     > >> Sent: Friday, August 21, 2009 5:04 PM
>     > >> To: Ken Lunde; mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com>
>     <mailto:mpeg-OTspec%40yahoogroups.com>
>     > >> Subject: Re: [mpeg-OTspec] Toward a Composite Font format
>     > >> specification
>     > >>
>     > >>
>     > >>
>     > >>
>     > >> Colleagues,
>     > >>
>     > >> As I explained in my earlier message found at the bottom of this e-
>     > >> mail, the two kinds of scaling are independent and mutually
>     > >> compatible operations. Both are necessary simultaneously for a good
>     > >> recipe in some situations.
>     > >>
>     > >> ScaleFactorX/ScaleFactorY use the baseline as an anchor and scale
>     > >> everything concerning the glyph, including the outline, kerning,
>     > >> escapements, and advance.
>     > >>
>     > >> Uniform scaling, on the other hand, scales from the center of the
>     > >> ideographic box, and does not affect anything but the glyph
>     > >> impression. Most importantly, it does not affect horizontal or
>     > >> vertical advance.
>     > >>
>     > >> Both kinds of scaling are needed simultaneously when adjusting
>     > >> component fonts of an ideographic script when the component fonts
>     > >> contain ideographic boxes of differing aspect ratios and
>     > >> differing “color”. Color refers to the foreground/
>     > >> background ratio of a glyph as determined by of amount of the
>     > >> advance width that the average glyph consumes, and the design weight
>     > >> of the typeface.
>     > >>
>     > >> They should be given distinct names to distinguish the semantics.
>     > >> Perhaps:
>     > >>
>     > >> Glyph magnification, in place of “uniform scaling”
>     > >> Character scaling, to refer to ScaleFactorX/ScaleFactorY
>     > >>
>     > >> Regards,
>     > >>
>     > >> - daan Strebe
>     > >> Senior Computer Scientist
>     > >> Adobe Systems Incorporated
>     > >>
>     > >>
>     > >> On 09/08/21 13:59, "Ken Lunde" <lunde at adobe.com <mailto:lunde%40adobe.com>
>     <mailto:lunde%40adobe.com> > wrote:
>     > >>
>     > >>
>     > >> Mikhail,
>     > >>
>     > >> While I cannot answer for daan, I have observed that InDesign's
>     > >> Composite Font dialog allows all three to be applied independent of
>     > >> one another. My gut feeling is that their use should be mutually
>     > >> exclusive, meaning ScaleFactor to be applied to both axes, or
>     > >> ScaleFactorX+ScaleFactorY as a pair to be set independent of one
>     > >> another. Perhaps daan can describe a usage scenario in which both
>     > >> forms of scaling are required.
>     > >>
>     > >> I would think that any use of both forms of scaling could also be
>     > >> adequately described in terms of only ScaleFactorX+ScaleFactorY as a
>     > >> pair.
>     > >>
>     > >> Regards...
>     > >>
>     > >> -- Ken
>     > >>
>     > >> On 2009/08/21, at 13:53, Mikhail Leonov wrote:
>     > >>
>     > >>> Ken and Daan,
>     > >>> Do you think ScaleFactorX+ScaleFactorY pair and ScaleFactor should
>     > >>> be mutually exclusive, or are there examples where using both
>     > > forms
>     > >>> of scaling in the same entry provides value to the recipe creator?
>     > >>>
>     > >>> Mikhail Leonov
>     > >>> Microsoft
>     > >>>
>     > >>> -----Original Message-----
>     > >>> From: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com>
>     <mailto:mpeg-OTspec%40yahoogroups.com>
>      <mailto:mpeg-OTspec%40yahoogroups.com
>     > >>>  [mailto:mpeg-
>     > >>> OTspec at yahoogroups.com <mailto:OTspec%40yahoogroups.com>  <mailto:OTspec%40yahoogroups.com>
>      <mailto:OTspec%40yahoogroups.com> ] On
>     > >> Behalf Of Ken Lunde
>     > >>> Sent: Friday, August 14, 2009 6:07 PM
>     > >>> To: mpeg-OTspec at yahoogroups.com <mailto:mpeg-OTspec%40yahoogroups.com>
>     <mailto:mpeg-OTspec%40yahoogroups.com>
>      <mailto:mpeg-OTspec%40yahoogroups.com
>     > >>>
>     > >>> Subject: Re: [mpeg-OTspec] Toward a Composite Font format
>     > >>> specification
>     > >>>
>     > >>> daan,
>     > >>>
>     > >>> Thank you. This is exactly the sort of use-scenario description
>     > > that
>     > >>> I was hoping to elicit with my post.
>     > >>>
>     > >>> Two additional <ComponentFont> attributes should be added:
>     > >>>
>     > >>>   ScaleFactorX
>     > >>>   ScaleFactorY
>     > >>>
>     > >>> Regards...
>     > >>>
>     > >>> -- Ken
>     > >>>
>     > >>> On 2009/08/14, at 15:58, Daniel Strebe wrote:
>     > >>>
>     > >>>> Ken,
>     > >>>>
>     > >>>> Thanks for wading into this.
>     > >>>>
>     > >>>> I think we should look at Adobe InDesign's scaling in more
>     > > detail.
>     > >>>> What InDesign provides relevant to this discussion is:
>     > >>>>
>     > >>>>      * Adjust baseline of a component font.
>     > >>>>      * Scale glyphs in a component font horizontally.
>     > >>>>      * Scale glyphs in a component font vertically.
>     > >>>>      * Scale glyphs in a component font uniformly with respect to
>     > >> the
>     > >>>> glyph's center while preserving its width.
>     > >>>>
>     > >>>> You cannot fully replicate both semantics by dropping any of the
>     > >>>> three
>     > >>>> provisions. The purpose of (2) and (3) is to adjust a component
>     > >> font
>     > >>>> whose glyphs normally run along some baseline, such as Latin-
>     > > script
>     > >>>> or
>     > >>>> Indic-script fonts. The adjustment applies to the glyph outline
>     > > as
>     > >>>> well as its horizontal and vertical advance. The purpose of (4)
>     > >> is to
>     > >>>> adjust a component font whose glyphs run along a center line,
>     > >> such as
>     > >>>> Chinese ideographs. The adjustment applies to the glyph outline
>     > > but
>     > >>>> not its horizontal or vertical advance.
>     > >>>>
>     > >>>> To elaborate, in Latin-script composite fonts, it is common to
>     > >> scale
>     > >>>> glyphs of a component font horizontally, and this scaling
>     > > typically
>     > >>>> applies to all behavior of the font: the amount of horizontal
>     > > space
>     > >>>> the glyph takes up, kerning amounts, escapements. In ideographic
>     > >>>> fonts, normally ideographs are considered fixed-width for
>     > >> typographic
>     > >>>> purposes, and you do not want mixed widths regardless of which
>     > >>>> component fonts the glyphs came from. Yet meanwhile you must
>     > >> balance
>     > >>>> the space of the ideographs for two or more different source
>     > > fonts,
>     > >>>> each of which has a different idea of "color" for the font.
>     > >>>> (Color, meaning, the amount of whitespace consumed by the
>     > > "average"
>     > >>>> glyph in the ideographic repertoire.) Therefore you scale from
>     > > the
>     > >>>> center of the ideographic box but leave the metrics alone.
>     > >>>>
>     > >>>> The reason InDesign allows both forms of scaling is because (4)
>     > > may
>     > >>>> be
>     > >>>> required to balance the color, while (2) and/or (3) may be
>     > > required
>     > >>>> to
>     > >>>> adjust for a non-square construction of the fixed-width
>     > > ideographic
>     > >>>> glyphs. While square in most fonts, especially in the past, some
>     > >> are
>     > >>>> not, and this practice is increasing. Hence, it is not so exotic
>     > >>>> for a
>     > >>>> well-constructed composite font to require all of (1), (2), (3),
>     > >> and
>     > >>>> (4).
>     > >>>>
>     > >>>> Regards,
>     > >>>>
>     > >>>> - daan Strebe
>     > >>>> Senior Computer Scientist
>     > >>>> Adobe Systems Incorporated
>     > >>
>     > >> .
>     > >>
>     > >>
>     > >>
>     > >>
>     > >>
>     > >
>     >
>     >
>     >
>     >  ------------------------------------
>     >
>     >  Yahoo! Groups Links
>     >
>     >
>     >
>     >
>
>
>
>
>
>
>





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20090904/102c00b2/attachment.html>


More information about the mpeg-otspec mailing list