latex: printing a variable in roman numerals
Asked Answered
M

5

8

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!

Misfeasor answered 5/4, 2010 at 15:5 Comment(0)
I
3

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).

Incorporated answered 5/4, 2010 at 21:42 Comment(0)
F
2

lowercase

\romannumeral 0\ref{blah}\relax

uppercase

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

Fluted answered 5/4, 2010 at 15:15 Comment(3)
Thanks for thinking about this. I tried the first suggestion, however, and it didn't seem to work: the output is still arabic.Misfeasor
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?Misfeasor
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.Fluted
M
1

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.

Misadventure answered 5/4, 2010 at 15:24 Comment(2)
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?Misfeasor
@anon: Oops, I didn’t notice the part about list items.Misadventure
E
1

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

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

Epaulet answered 5/4, 2010 at 22:49 Comment(0)
W
0

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}).)

Whidah answered 4/1, 2021 at 14:11 Comment(2)
Your use of \eqref requires the inclusion of amsmath, I guess?.Sandor
True. I'll amend my post.Whidah

© 2022 - 2024 — McMap. All rights reserved.