Adobe Opentype Univers Roman set to metrics…

stephen_k's picture

Adobe Opentype Univers has some dodgy Ligatures when set to metrics – see the "f T"

http://store2.adobe.com/cfusion/store/html/index.cfm?pid=930349&code=127...

The inverted quote marks seem to be off too. They look fine set to Optical kerning, but I wouldn't want to use that setting for text?

Any ideas what's going on? Think it has something to do with opentype?

Help greatly appreciated.

Stephen

Nick Cooke's picture

f T isn't a ligature - it's simply a small word space. Perhaps the space is kerned towards the f and the T towards the space, maybe it's just an unfortunate character combination.

Thomas Phinney's picture

Also, worth noting that this sort of thing has nothing to do with OpenType per se. Adobe's OpenType version of Univers simply inherited its kerning from the PostScript Type 1 version (though possibly extended to cover more accented characters).

Nick Shinn's picture

A Tale of Two Cities (classic problematic kerning setting).

Until three-character kerning is implemented in fonts, and supported in layout apps, you will have to manually apply “Optical” kerning.
Perhaps there is some way to code specific exceptions?

Actually, now that I think about it, it would be possible to solve this instance in an OpenType font:
sub f space T by fTspecial;

…where fTspecial is one glyph.

dezcom's picture

Or perhaps use a {calt} sub for the "f"? The "f.alt" may be the same one used to make a {calt} variation on the "fl, fh, fb,..." lig?

JanekZ's picture

Done:

kentlew's picture

f_space_T ligature is a bad idea. In justified text, this ‘word space’ would remain inflexible. Not a good thing. Maybe you were just being facetious, Nick.

nina's picture

I might not be getting something here, but this doesn't need a fancy three-letter super kern if the 2 pairs are present... This kind of thing is precisely why I'd argue it's a Good Idea™ to kern things like f/space and space/T. And maybe Q/space and space/J, depending on the design. Overhanging glyph parts that optically diminish the space. Even if an f/space combination isn't met with yet another overhanging thing on the other side of the space (a not-too-unlikely worst-case scenario), it can still optically make the space appear smaller than it should be.

dezcom's picture

I usually kern space to overhanging glyphs like space T and f space

stephen_k's picture

Thanks for the replies… I have found a post-script version of Adobe Univers and it doesn't have any of these problems so I'm switching. It seems odd that the more up-to-date open type version has these problems?

Thomas Phinney's picture

> I might not be getting something here, but this doesn't need a fancy three-letter super kern if the 2 pairs are present...

In many Adobe fonts, the two pairs are present, but the kerning pulls things closer together, not further apart. So three-letter kern combos are one solution. Or just not kerning against the space in the first place.

nina's picture

What, they have negative kerning in pairs like f/space and space/T? Why?

dezcom's picture

"What, they have negative kerning in pairs like f/space and space/T? Why?"

The same reason you have any other kerning pairs,to adjust the optical space to "appear to be" more even.

JanekZ's picture

Univers has space/T kerning -180, about 2/3 of a space (278), hence the problem. -20 or -30 is quite good.
BTW in John Hudson's Brill: f/space +25 and space/T -20, and looks like the best solution.

William Berkson's picture

In Williams Caslon Text I used 'calt', as Chris notes. In general f before a space is substituted by a shorter-nosed f, and in combinations 'f space T' a still shorter nose. The right extension of the crossbar is also adjusted. And these are also used in various situations with f and a following letter.

hrant's picture

William, I understand the practical issues, but
shortening the beak of the "f" before a space is
pretty much opposite of what should be done!

hhp

William Berkson's picture

I don't agree, Hrant. I think it is preferable to keep the word spaces uniform looking, and I'm supposing you agree. Violation of that was what disturbed Stephen K, who started this thread.

The original of Caslon does have a very long-nosed f, and I preserved that as the default, as I liked it. I tested all of the options, and it looked to me best to slightly shorten the nose before a space; I also extended the crossbar a bit to the right, so there is less of a 'hole' before the space.

The hole under the T is why it is preferable to kern it with a space before. But then you really get into trouble with an 'f' before. So that has a still shorter nose substituted. If I have time I'll put up a picture later...

hrant's picture

I think a minimum (apparent) wordspace is important,
but if wordspace variance were that bad justified setting
would have far fewer proponents. I think boumas are
more important.

hhp

dezcom's picture

You can also create an alternate space glyph (kinda like the old metal days)
sub f space' T by space.4m;

nina's picture

Maybe this depends [too] much on spacing (and design) to formulate a general rule.
If the "f" already has a negative sidebearing, I can't really imagine it would need a negative kern on top of that.

FWIW, I personally don't see things like "T"s as having "a hole under" them. The x-ht region isn't the only thing one needs to consider when kerning, is it?

paul d hunt's picture

InDesign supports contextual kerning triplets.

William Berkson's picture

Here's the illustration. Top is what CALT gives you. Middle is with the default long-nosed f, and the negative kerning of the space and the left side of the T. Bottom the negative kerning of the left side of the T to the space is removed. The other kerning (Ta, Tw) is retained.

To me the top looks better. In the middle the closeness of the f T is distracting. In the bottom, without the negative kerning of the space and T, the relevant word spaces seem a bit wide.

hrant's picture

To me #3 is best.
You might be seeing the space as too large
because you're fixating on the hole, which
however doesn't happen in reading.

hhp

Nick Shinn's picture

@Kent: Maybe you were just being facetious, Nick.

No, before I posted I considered that this “ligature” would default to multiple glyphs once beyond a certain tracking value.

I also like the suggestions made by Chris and Bill, to substitute alternate “f” or “space” glyphs.

**

Paul, how does one implement contextual kerning triplets in a font?

William Berkson's picture

In #3, the f T is not bad, but you have to turn off the left kerning only, which I don't think you can do, or at least without using CALT and an alternatively kerned T. The A T in #3 is a little too wide—there the negative kerning of the space T in the top line shows to advantage. So to me the top is still the best of these.

There may be a still better way to do this, but my main point is that #2 is a problem. And you are going to get that with a long-nosed f and if you do negative kerning of space T and do no CALT tricks. I think there is a minor word image or 'bouma' problem when you get something like the middle situation. That's because you might have to look twice—your eyes have to regress—to distinguish the two words.

I don't think any of this is a big problem, but I think there is a slight gain in readability if you avoid the middle situation.

kentlew's picture

Nick: No, before I posted I considered that this “ligature” would default to multiple glyphs once beyond a certain tracking value.

Hmm. Interesting assumption. I’m not sure that the adjustment of word spaces by the justification engine would trigger the same mechanism that tracking does, such that an f_space_T {liga} substitution would be disassembled in a looser line. But maybe you’re right. One would have to test this.

Nick Shinn's picture

Bill, you didn’t show the setting with no kerning.
My preference for historic designs is with historic kerning (if not set with “original” instruments!)
For instance, I see no reason to kern T-a quite so much as you have — there is plenty of space between A and T, and T and w, so that a larger space between T and a would not look out of place, and those letters would not suffer the forced proximity caused by the prominent serif of T, the design of which mitigates gappiness in the first place.

By the same token, I prefer h&js with no adjustment to letterspacing.

This wasn’t always my preference, no doubt it is an acquired taste.

Nick Shinn's picture

@Kent: I’m not sure that the adjustment of word spaces by the justification engine would trigger the same mechanism that tracking does … One would have to test this.

Good point, I didn’t think of that.

William Berkson's picture

Nick, I think no kerning—which is historic for text as opposed to titles—would look odd or antiquarian. But I think you're right that my Ta is bit tight.

hrant's picture

How much is "maa" compared to "a hair"?

hhp

William Berkson's picture

Hrant, I suppose it would be better if it were a great new measurement, but it was a typo that I accidentally posted and then corrected.

hrant's picture

Urban Dictionary is inconclusive.
I therefore propose that "maa" is between "a hair" and "slightly".

hhp

JanekZ's picture

@Kent [ http://typophile.com/node/90561#comment-497596 ]
unluckily not. So probably CALT will win.

Nick Shinn's picture

@Bill: … odd or antiquarian.

That’s me alright, I’m afraid I much prefer the originals to Linotype’s makeovers—but good for Frutiger and Zapf to be making a buck off them.

Thomas Phinney's picture

I like Bill's solution.

I also note that there are some OpenType engines that break the glyph run (the unit of OpenType feature processing) at the space. In these engines, layout that requires something like 'calt' to work across spaces won't work. :( Presumably kerning triplets across spaces won't work in these either.

Two environments I know have this limitation are Adobe Flash and Mozilla Firefox.

paul d hunt's picture

Nick, there is no mechanism to add kerning triplets (or quadruplets, or... I’ll just call it contextual kerning) when exporting from FontLab, but if you’re compiling your fonts with AFDKO, then the syntax would look something like this:

pos glyph1' 22 glyph2 glyph3;

paul d hunt's picture

Also, I should note that if you you already have a kern pair for glyph1, glyph 2, the contextual value (22 in my example above) is added to the default kern pair, so your kerning information is additive.

charles ellertson's picture

I might not be getting something here, but this doesn't need a fancy three-letter super kern if the 2 pairs are present... This kind of thing is precisely why I'd argue it's a Good Idea™ to kern things like f/space and space/T.

It's a bad idea. If you're going to use kerns with spaces, as Nick says, you need three letters. You can never anticipate what will fall together. One of my test words in my test-text checks "f_space_J" as with "of Jewish" You use a pull-back kerning with the f, and the space can disappear.

Or look at Adobe Jenson, with the f_space _quotedblleft. Again, the space disappears -- really, it usually looks like it falls after the qutedblleft...

Better to use an alternate f when followed by a space. Take part of the space out of terminal of the f, and add a little to the sidebearing.

A lot also depends on how tightly you set type. If it's set as tightly as Kinross's books, you'll find all sorts of oddities with the spaceband. In Hochuli's book, Detail in Typography, he argues for a certain generosity with the sidebearing space around parenthesis, quote marks, brackets, etc. (p. 37) . Good point. But with tight setting, you'll find that space sometimes greater than the wordspace. There isn't an example in the text of DT, but you can find plenty in Dowding's Finer points.

Remember, back in the days of foundry type, the comp just didn't add space -- or as much space, when optical considerations were made, when driving out the line to justify. To get a computer do have the same effect is a lot of work. If it's ever published, I spent a good bit of time on this in my chapter of Rich Hendel's new book. Everyone is encouraged to buy a copy (Shameles plug) (Hey, Kent has a chapter in it, too) (if it's ever published). (Except Hrant, who insists he'll get it from the library.) (And no, I get no royalties -- it's Rich's book).

hrant's picture

I used to buy a lot of books for myself; I have
a decent library. These days I prefer to spend
the money on books for my kids. Shoot me.

hhp

charles ellertson's picture

Ah. You remember my hobby.

hrant's picture

:-)
Good luck. I grew up dodging Lebanese snipers.

hhp

JanekZ's picture

"InDesign supports contextual kerning triplets" Paul


A-space-T and f-space-T are triplets, first -100, second +300 (/2000)
Lower row - kerning is set to zero

hrant's picture

In a triplet, is the value applied between the last two? And what happens to regular (double) kern values that might also be specified?

hhp

JanekZ's picture

Hrant: 'what happens to regular (double) kern values that might also be specified?'

"Contextual positioning rules must be in a different lookup than pair positioning rules, since the rules are of different lookup types. Because each lookup is applied independently of the other lookup(s) over the entire text stream, the positioning change specified in a pair kerning rule will be added to the positioning change specified in a contextual kerning rule, whenever the two rules match the same glyph pair in the text stream."
[ http://www.adobe.com/devnet/opentype/afdko/topic_feature_file_syntax.htm... ]

Hrant: 'In a triplet, is the value applied between the last two?'
examples from cited site:
position quoteleft T' <0 0 20 0 > quoteright;
This form shows a full value record which allows you to alter both the (x,y) coordinates of the origin and the (x,y) coordinates of the advance width. So in this example the advance width of "T" will increase by 20 (the origin remain unaltered).

position quoteleft T' 20 quoteright;
The simple form of the value record which specifies a value for only a change to the (x) value of the advance width."
So it is your choice: you can shift the glyph and/or change its advance width.

And the Contextual Kerning is not limited to two or three glyphs:
position s f' 10 t period;

hrant's picture

Wow, fancy stuff. Thanks for explaining.

Out of curiosity, is there a limit to how many characters can be contextually positioned?

hhp

JanekZ's picture

HaHa! Got it! You can do it with probably many glyphs/classes, as far as you keep them in three groups and one glyph/class (middle) is affected:
pos o f space' T w o 300;
or even more than one glyph/class:
position s f'10 t' -5 period;
where in sequence s-f-t-. the x-advance of f is increased by 10, and the x-advance of t is decreased by 5.


The upper text matches the rule, the lower not, so only first space is wider.
[support in AFDKO added Jan 2009]

[edit]
"pos o f space' T w o 300;" is not correct, at least now. It ought to be:
position f o space' 300 T w o;

dezcom's picture

Thanks!

JanekZ's picture

POC:
lookup kern1 {
pos \s \f' 200 \t' 100 \period ;
} kern1;
feature kern {
script DFLT;
language dflt ;
lookup kern1;
} kern;


Update: "start" and "end" groups aren't mandatory. You can do something like this:
pos \a' <100 0 200 0> \b' <100 0 200 0> \c' <100 0 200 0> \d' <100 0 200 0>;
at every occurrence of the string "abcd" the letters "a b c d" are extra spaced (in this example no matter what is before and after).
(tested in FireFox 14.0.1; pair kerning is still additive)

Syndicate content Syndicate content