латекс: печать переменной римскими цифрами

Я печатаю в LaTeX и хочу отображать «переменную» (в моем случае ссылку \ref{blah} на номер элемента в списке) на римском языке, а не на арабском по умолчанию. Есть простой способ сделать это? Спасибо за любые указатели!


person anon    schedule 05.04.2010    source источник


Ответы (5)


Вы можете попробовать \def\theenumi{\roman{enumi}} внутри среды enumerate -- это изменит как метки, так и ссылки, но вам придется отменить это явно (если вы хотите).

person AVB    schedule 05.04.2010

нижний регистр

\romannumeral 0\ref{blah}\relax

верхний регистр

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

person Alexey Malistov    schedule 05.04.2010
comment
Спасибо, что подумали об этом. Однако я попробовал первое предложение, и оно, похоже, не сработало: вывод по-прежнему арабский. - person anon; 05.04.2010
comment
Возможно, я смогу лучше устранять неполадки, если буду знать, что делают различные части выражения. Для чего нужны 0 и \relax? - person anon; 05.04.2010
comment
0 необходим, потому что если \ref{blah} равно ??, то \romannumeral выдает ошибку, а \romannumeral 0?? выдает ??. \relax необходимо, потому что если после \ref{blah} есть цифры, у вас будет неправильный результат. Например, если \ref{blah} равно 1, то \romannumeral 0\ref{blah}0 дает x, а не i. А \romannumeral 0\ref{blah}\relax 0 дает x0 как хотите. - person Alexey Malistov; 06.04.2010

На что ссылаются на? Обычно вы переопределяете способ отображения этого конкретного счетчика.

Например, чтобы изменить способ отображения номера раздела, вы можете использовать следующую команду:

\renewcommand\thesection{\Roman{section}}

Теперь каждая команда, которая внутри использует \thesection, будет печатать номер раздела в виде римской цифры.

Аналогичные команды работают для chapter, figure и т.д.

\roman (строчные r) дают строчные римские цифры.

person Konrad Rudolph    schedule 05.04.2010
comment
Ссылки относятся к номеру элемента в списке. Я сделал вывод номеров элементов в римском стиле, используя \renewcommand{\labelenumi}{(\roman{enumi})}, но, похоже, это не распространяется на ссылки. Есть ли лучший способ сделать это? - person anon; 05.04.2010
comment
@anon: Ой, я не заметил часть об элементах списка. - person Konrad Rudolph; 05.04.2010

Для нижнего регистра: {\romannumeral \ref{blah}}

Для верхнего регистра: \uppercase\expandafter{\romannumeral \ref{blah}}

person Etaoin    schedule 05.04.2010

Мне кажется хорошим решением объявить

\renewcommand{\theenumi}{\roman{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}

в заголовке, а затем процитируйте \eqref{blah}, чтобы получить (iii) для третьего пункта. (Обратите внимание, что для \eqref требуется пакет amsmath. Либо напишите (\ref{blah}).)

person Alm    schedule 04.01.2021
comment
Ваше использование \eqref требует включения amsmath, я полагаю?. - person Werner; 05.01.2021
comment
Истинный. Я поправлю свой пост. - person Alm; 06.01.2021