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!
5 Answers
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).

- 3,994
- 22
- 21
lowercase
\romannumeral 0\ref{blah}\relax
uppercase
\uppercase\expandafter{\romannumeral 0\ref{blah}}

- 26,407
- 13
- 68
- 88
-
1Thanks for thinking about this. I tried the first suggestion, however, and it didn't seem to work: the output is still arabic. – anon Apr 05 '10 at 15:31
-
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 Apr 05 '10 at 18:57
-
1`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 Apr 06 '10 at 06:37
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.

- 530,221
- 131
- 937
- 1,214
-
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 Apr 05 '10 at 15:33
-
For lowercase: {\romannumeral \ref{blah}}
For uppercase: \uppercase\expandafter{\romannumeral \ref{blah}}

- 8,444
- 2
- 28
- 44
A good solution seems to me to declare
\renewcommand{\theenumi}{\roman{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}
in the header and then cite by \eqref{blah}
to get your (iii) for the third item. (Note that \eqref
requires the amsmath package. Alternatively, write (\ref{blah})
.)

- 1
- 1
-
Your use of `\eqref` requires the inclusion of [`amsmath`](//ctan.org/pkg/amsmath), I guess?. – Werner Jan 04 '21 at 21:40
-