[XeTeX] Roman Numerals as stylistic alternatives

Tobias Schoel liesdiedatei at googlemail.com
Mon Jun 20 08:05:47 CEST 2011



Am 20.06.2011 00:03, schrieb Peter Baker:
> It seems to me (having worked with OpenType fonts for some years) that
> while it might be possible to make an Arabic-->Roman converter at the
> font level, that's going to be one of the most inefficient possible ways
> to handle it.

Then why is Unicode proposing / imposing it that way?

  With OT you can make a set of rules that says
>
> Here's a 1 followed by two digits; substitute a C;
> Here's a 2 followed by one digit; substitute XX
> Here's a 3 followed by a something other than a digit; substitute III.
>
> But it can't understand numbers the way a programming language can do.

Does it have to? I thought arabic->roman to merely be a (somewhat 
complex) substitution of glyphs.

> If you want to be able to write XC for 90, the task gets somewhat more
> complex, because OT definitely can't say
>
> For a number in the range 90-99, do the following . . .

9 followed by  one digit: substitute XC
9 followed by two digits: substitute CM
9 followed by something other than a digit: IX
(9 followed by three digits: MMMMMMMMM)

>
> Surely a programmatic solution would be better; and (La)TeX has an
> understanding of roman numbers built in. With a little Googling I was
> able to come up with this file, which works:
>
> %&program=xelatex
> %&encoding=UTF-8 Unicode
>
> \documentclass[11pt,letterpaper,twoside,openany]{book}
>
> \usepackage{fontspec}
>
> \makeatletter
> \newcommand{\rmnum}[1]{\romannumeral #1}
> \newcommand{\Rmnum}[1]{\expandafter\@slowromancap\romannumeral #1@}
> \makeatother
>
> \begin{document}
>
> There are \rmnum{123}\ fish in the sea.
>
> And there are \Rmnum{5123}\ leaves on the tree.
>
> \end{document}
That one uses letters to represent roman numerals. As was said before, 
that's not my intention, as roman numerals have a different meaning than 
letters.

But thanks for the macro recommendation. Until now, I only knew of 
\roman{counter}.


bye

Toscho


More information about the XeTeX mailing list