tags:

views:

264

answers:

4

I'm typesetting in LaTeX, and I'd like to display a "variable" (in my case, a reference \ref{blah} to an item number in list) in roman rather than the default arabic. Is there an easy way to do this? Thanks for any pointers!

+1  A: 

lowercase

\romannumeral 0\ref{blah}\relax

uppercase

\uppercase\expandafter{\romannumeral 0\ref{blah}}

Alexey Malistov
Thanks for thinking about this. I tried the first suggestion, however, and it didn't seem to work: the output is still arabic.
anon
@anon: it is impossible. It works fine for me.
Alexey Malistov
Perhaps I can troubleshoot better if I know what the various bits of the expression are doing. What are the "0" and the "\relax" for?
anon
`0` is needed because of if `\ref{blah}` is `??` then `\romannumeral` gives an error and `\romannumeral 0??` gives `??`. `\relax` is needed because of if there are digits after `\ref{blah}` you have a wrong result. For example, if `\ref{blah}` is `1` then `\romannumeral 0\ref{blah}0` gives `x` rather than `i`. And `\romannumeral 0\ref{blah}\relax 0` gives `x0` as you wish.
Alexey Malistov
+1  A: 

What are the references to? Usually, you would redefine how that particular counter is displayed.

For example, to change how a section number is displayed, you could use the following command:

\renewcommand\thesection{\Roman{section}}

Now, each command that internally uses \thesection will print the section number as a roman numeral.

Similar commands work for chapter, figure etc.

\roman (lowercase r) yield lowercase roman numerals.

Konrad Rudolph
The references are to an item number in a list. I've made the item numbers output in roman using \renewcommand{\labelenumi}{(\roman{enumi})}, but this doesn't seem to carry over to references. Is there a better way of doing this?
anon
@anon: Oops, I didn’t notice the part about list items.
Konrad Rudolph
+2  A: 

You can try \def\theenumi{\roman{enumi}} inside an enumerate environment -- this changes both labels and refs, but you'll have to then explicitly undo it (if you want to).

AVB
+1  A: 

For lowercase: {\romannumeral \ref{blah}}

For uppercase: \uppercase\expandafter{\romannumeral \ref{blah}}

Etaoin