Appropriate OT feature for Roman Numerals

pablohoney77's picture

What would be the most approprate feature to include replacement of things such as XXVII and iX or simply V with connecting strands of Roman Numerals? just wondering....

Thomas Phinney's picture

Roman numerals actually have their own codepoints in Unicode (goofy though that might seem). So, you can just use those codepoints.

In addition, or instead, if you want a substitution feature to exchange default forms for ones that have connecting serifs, I'd suggest simply using stylistic sets. I can't see roman numerals being common enough to justify their own unique feature.

Regards,

T

pablohoney77's picture

i knew i had seen those unicode character slots somewhere. i realize this would be totally useless to anybody but me, but i was curious. and since i have no shame... what are stylistic sets?

hrant's picture

I don't think Roman numerals are goofy. I think they're about as important as unicase fonts (especially in Spanish for example), and look how many designers make those!

http://www.typophile.com/forums/messages/4100/32161.html

hhp

Thomas Phinney's picture

I didn't say Roman numerals were goofy. I said it was goofy that they had their own slots in Unicode.

Although, on further consideration, it is true that they have semantically different meaning than the same glyphs used as letters, so the argument that they should have separate Unicodes is not without merit. Still, I suspect that their existence in Unicode is due to compatibility with some other encoding.

T

twardoch's picture

Thomas,

I think Roman numerals should have their own Unicode values. The difference between European numerals and Roman numerals are somewhat like between uppercase and lowercase -- they share some characteristics, but are also different in some regard. For example, in scientific or legal texts, Roman numerals may designate a different level of structure than the European numerals, so keeping them separate makes sense.

Encoding Roman numerals as a mere styllistic variants of European digits isn't obvious at all -- you would need to do very elaborate contextual substitutions.

First, because depending on the position within the number, the European numeral converts to a different Roman numeral, and secondly, obviously, because for certain numbers, the Roman numeral must be repeated. So for example, 4444 translates to MMMMCDXLIV. Making an OpenType layout feature that does the conversion is possible but not trivial. Also, in some older sources, alternate renditions of various Roman numbers were used, e.g. XXC = LXXX, IC = XCIX, IIXX = XVIII. Therefore, I think it's better when Roman numerals have their own Unicodes.

Best,
Adam

Thomas Phinney's picture

I was actually thinking of treating them as variants of European *letters*. But since they have their own legitimate Unicodes, and the semantic meaning of the letters is quite different, that would be against the philosophies of Unicode and OpenType.

That being said, the practical implication is that you stick the characters in the font, but have no easy way to input them, unless you use a custom keyboard setup. Otherwise, you'll have to hunt and peck them from a utility palette (glyph palette / character palette / character map).

T

pablohoney77's picture

WoW! OT converting Arabic numerals to Roman? I hadn't even thought of that! And i'm afraid i'm not that ambitious to try to figure it out. I just meant a feature that would Roman caps symbolizing numerals into forms that actually link with each other. That's all, nuffin more.

Thomas Phinney's picture

Although I don't know that I recommend *any* OpenType feature for this purpose (for reasons mentioned above), the "stylistic sets" features I mentioned earlier are substitution features with names 'ss01' to 'ss20'.

For full documentation on all registered OpenType layout feature tags, see:
<http://partners.adobe.com/asn/tech/type/opentype/appendices/feattags.jsp>

Regards,

T

Thomas Phinney's picture

Here's info on Stylistic Sets from the spec:

Function: In addition to, or instead of, stylistic alternatives of individual glyphs (see 'salt' feature), some fonts may contain sets of stylistic variant glyphs corresponding to portions of the character set, e.g. multiple variants for lowercase letters in a Latin font. Glyphs in stylistic sets may be designed to harmonise visually, interract in particular ways, or otherwise work together. Examples of fonts including stylistic sets are Zapfino Linotype and Adobe's Poetica. Individual features numbered sequentially with the tag name convention 'ss01' 'ss02' 'ss03 ... 'ss20' provide a mechanism for glyphs in these sets to be associated via GSUB lookup indexes to default forms and to each other, and for users to select from available stylistic sets.

Recommended implementation: An ssXX table maps GIDs for default forms to one GIDs for corresponding stylistic alternatives in each set. Each ssXX feature uses one-to-one (GSUB lookup type 1) substitutions. Font developers may choose to map only from default forms to variants for each stylistic set, or may choose to map between all stylistic sets in each feature, depending on intended user experience. For example, feature 'ss03' might contain lookups mapping variant glyphs from 'ss01' and 'ss02' to corresponding variants in 'ss03', in addition to mapping from default forms.

Application interface: Note that the application is responsible for counting and enumerating the number of features in the font with tag names of the format 'ss01' to 'ss20', and for presenting the user with an appropriate selection mechanism. For GIDs found in the ssXX coverage table, the application passes the GIDs to the ssXX table and gets back one or more new GIDs.

UI suggestion: This feature should be off by default.

...

pablohoney77's picture

thanks a lot tom for satisfying my curiosity
;^)

paul d hunt's picture

and my curiosity returns...

Making an OpenType layout feature that does the conversion is possible but not trivial.
Adam, do you know anyone who has done this? If not I may be taking a stab at it. Anyone who want's to contribute their genius on how to work this out, feel free to comment.

Syndicate content Syndicate content