Open Type Ornaments in Indesign? (How to)

Yehan's picture

I have a question with regards to the OpenType ornaments feature (ornm):

How can I activate the feature in Indesign? In case of Adobe Caslon qwwwwe should be replaced by a border. I mean, I know, how to access the characters with the glyph pallet, but can I access them in the same way as the ligatures by activating the feature?

I only found the explanation in the OpenType specs, but it is no help:
http://www.microsoft.com/typography/otspec/features_ko.htm#ornm

Any help much appreciated.

Thomas Phinney's picture

the short answer is, "ornm" is one of the OpenType layout features not directly supported by InDesign CS4 and earlier. You'd have to use the glyph panel.

See http://www.adobe.com/type/browser/pdfs/OTGuide.pdf

There's a table at the back that shows which apps support which features.

Cheers,

T

Yehan's picture

Hi Thomas..I was kinda hoping you would reply:)

Thanks for confirming what I suspected though. I was hoping that there MIGHT be a way to activate it somehow...oh well.

Thomas Phinney's picture

Well,behind the scenes... inserting stuff via the Glyph Panel can in fact activate OpenType features which there is no UI for otherwise. If there's more than one way to get to the glyphs by base character + features, InDesign uses its own order of preference to decide which feature(s) to activate to get to the glyphs.

Cheers,

T

Arno Enslin's picture

@ Thomas

feature ornm {
sub [r s t] by [rose sunflower tulip];
} ornm;

Well,behind the scenes... inserting stuff via the Glyph Panel can in fact activate OpenType features which there is no UI for otherwise.

When you pick up the character rose from the glyph panel and type s or t then, s and t will not be replaced by the characters sunflower and tulip. Doesn’t that mean, that the feature is not activated? I have recognized, that features are activated sometimes, when I pick up a glyph from the panel. Sometimes I first have to delete the glyph, that I had picked up from the panel, before the feature is permanently activated. I did not find real rules behind the behavior of Indesign with regard to that.

And I have recognized a bug:

feature ss01 {#Stylistic Set 1
ignore sub a' @allExceptSpace;
sub a' by a.fina;
} ss01;

In the moment, in which you add the ignore statement, the stylistic feature is not listed in the drop down list of the glyph panel anymore.

Except from that it would be very cool, if you could add a real name to those features. Example:

feature ss01 [title="latn dflt: Carl, DEU: Paul, TRK: Peter"] {#Stylistic Set 1
ignore sub a' @allExceptSpace;
sub a' by a.fina;
} ss01;

k.l.'s picture

Get the latest AFDKO and you can assign names to Stylistic Set features.

I didn't try to reproduce the effect which you mention (which InDesign version?), but you could include both commands in an explicit lookup to see if this helps:

feature ss01 {
lookup ss01_1 {
ignore sub a' @allExceptSpace;
sub a' by a.fina;
} ss01_1;
} ss01;

Arno Enslin's picture

@ Karsten

I didn't try to reproduce the effect which you mention (which InDesign version?)

Indesign CS3.

but you could include both commands in an explicit lookup to see if this helps

I will try that. Although, if it is more a bug than a feature in Indesign, I don’t like hacks very much. And coding anything in a differnt way just because of a bug in an application, is already a hack.

Get the latest AFDKO and you can assign names to Stylistic Set features.

Wow, Karsten! Thank you very much for that tip! I already have and use the AFDKO (all versions), but I did use TTX and the autohint programs only. I tried makeotf, but I found it more comfortable to build the features with FontLab. However, I will try to generate stylistic sets with names. Which versions of QuarkXPress and Indesign do support that?

I think I will use makeotf for creating the gsub-table only and later I merge it (with TTX) into the font generated with FontLab.

Arno Enslin's picture

@ Karsten

<name>
<namerecord nameID="256" platformID="1" platEncID="0" langID="0x0">
Hallo Welt
</namerecord>
<namerecord nameID="256" platformID="3" platEncID="1" langID="0x409">
Hallo Welt
</namerecord>
</name>

Part of the name table of a font, that I just had generated with makeotf belonging to AFDKO 2.5. Decompiled with TTX. And unfortunately that does not seem to be yet supported by Indesign CS3 and QuarkXPress 8. But the output indicates, that I did not make a mistake, doesn’t it?

By the way, there is a slight bug in syntax description: Either ' or ".

Edited:

A comparison between the GSUB tables of the font genarated without the name tag has shown, that the only difference are a few empty featureParams-tags:

WITHOUT THE NAME TAG
<FeatureRecord index="59">
<FeatureTag value="ss01"/>
<Feature>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="16"/>
</Feature>
</FeatureRecord>

WITH THE NAME TAG
<FeatureRecord index="59">
<FeatureTag value="ss01"/>
<Feature>
<FeatureParams>
</FeatureParams>
<!-- LookupCount=1 -->
<LookupListIndex index="0" value="16"/>
</Feature>
</FeatureRecord>

From the Adobe OT feature file spec:
“The implementation will store the name strings in the name table, and will create a feature parameter data block which references them.”

So the feature parameter block was created, but shouldn’t there be anything stored, that links to the name table, to the nameID 256?

At least I think, that my test has shown, that it is relatively easy to add those names with the help of TTX.

--------------

Now I will check, if your tip with the lookup helps.

Result:
1. The lookup does not help.
2. It is not the ignore-statement, that makes the feature name missing in the drop down list of the glyph panel, but the pure presence of “'” in “a'”. And even if I trash the ignore statement and simply write “sub a' b by b”, the name is missing on the panel. Sorry, that I partly miss the correct terms.

I think, it is more a bug than a feature. At least I get no idea, why it could be intended.

k.l.'s picture

Feature names are not supported in any application yet. They are a pretty recent addition to the specification.

I have reported the quote typo quite a while ago. :)

FeatureParams points to a "name" table record. Obviously, TTX recognizes it but cannot interpret its content.

Arno Enslin's picture

FeatureParams points to a "name" table record. Obviously, TTX recognizes it but cannot interpret its content.

Wouldn’t the process break in this case? If not, it should.

blokland's picture

Karsten: Get the latest AFDKO and you can assign names to Stylistic Set features.

Or as a somewhat more expensive but probably more convenient option, you could use DTL OTMaster, which supports the latest AFDKO 2.5. version. You could generate for instance an OpenType font with FLS, export the features file in OTM, subsequently do some syntax editing to support the latest AFDKO and use the new features file to generate new GSUB (and/or GPOS features). The same features file can be used then for compiling GSUB tables for other OT fonts (which use the same character naming convention, of course).

Arno Enslin's picture

@ Frank

I don’t program the features in FontLab, but in UltraEdit. So there is no need to export anything from FontLab.

But what I did not do yesterday, is to check with OTMaster Light, if the feature parameters really point to the name table. TTX should stop (de)compiling, if it cannot interpret anything.

Edited:

Yes, the feature parameters point to the name table. And TTX kills the information, unfortunately without any error message. Shit.

So OTMaster beats TTX. The first time, that I feel a need for OTMaster.

@ Karsten

I assume, that you likewise have checked with OTMaster, if the feature parameters point to the namerecords. Or how could you check that without OTMaster?

k.l.'s picture

When doing some tests earlier last year I checked the content of FeatureParams with AFDKO's spot. But OTMaster is more convenient: Choose 'GSUB' table > 'GSUB' feature list (left side), then navigate to an 'ssXX' feature (right side) and click on the plus sign in the FeatureParams column to see its content. If there is a minus rather than a plus sign in this column, no FeatureParams has been defined.

This is really off-topic now.

Arno Enslin's picture

TTX 2.3 is likewise not able to decompile the content of the FeatureParams-tag and does not post an an error message.

Arno Enslin's picture

Too much off topic. Sorry.

Syndicate content Syndicate content