Как настроить ссылки на подсписки в LaTeX?

У меня есть структура списка/подсписка в моем документе LaTeX. По умолчанию подсписок разделен буквами, поэтому в итоге вы получите следующее:

1. Item
    (a) sub item
    (b) sub item

В моем документе у меня более 26 подэлементов, поэтому я столкнулся с ошибкой переполнения счетчика, которую я исправил, переписав метку подэлемента, чтобы теперь они выглядели так.

1. Item
    1.1 sub item
    1.2 sub item

Я поместил метку на один из элементов, чтобы позже сослаться на конкретный шаг. Проблема в том, что когда ссылка отображается, она отображается с использованием буквы, а не номера подэлемента.

Вот образец документа, который показывает проблему.

\documentclass[11pt]{report}

\begin{document}

\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}}

\begin{enumerate}
    \item Item
    \begin{enumerate}
        \item \label{lbl} Label here
    \end{enumerate}
\end{enumerate}

Ref: \ref{lbl}

\end{document}

Это отображается следующим образом:

1. Item
    1.1 Label here
Ref: 1a

Поэтому вместо «Ссылка: 1.1» используется «Ссылка: 1.a». Есть ли способ заставить \ref использовать нумерацию исходного перечисления? Если нет, можно ли каким-либо образом генерировать правильные ссылки на элементы в подсписке с более чем 26 элементами?


person Matt McMinn    schedule 27.03.2009    source источник


Ответы (2)


Я смотрю на свою копию The LaTeX Companion, стр. 129, и из того, что я вижу, я бы предложил что-то вроде следующего:

\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumi.\theenumii.}
\makeatletter
\renewcommand{\p@enumii}{\theenumi.}
\makeatother

Однако на данный момент у меня нет доступа к рабочей среде LaTeX, чтобы проверить это.

person David Z    schedule 27.03.2009
comment
Это сделало это - мне действительно нужно получить эту книгу. Спасибо! - person Matt McMinn; 27.03.2009
comment
Можно также использовать \usepackage{fncylab} - person Ma Ming; 07.03.2012

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

\begin{enumerate}
\renewcommand{\theenumi}{\arabic{enumi}}
\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\theenumiii}{\arabic{enumiii}}

\renewcommand{\labelenumi}{\theenumi.}
\renewcommand{\labelenumii}{\theenumi.\theenumii.}
\renewcommand{\labelenumiii}{\theenumi.\theenumii.\theenumiii.}

\makeatletter
\renewcommand{\p@enumii}{\theenumi.}
\renewcommand{\p@enumiii}{\theenumi.\theenumii.}
\makeatother

...

\end{enumerate}

Мне потребовалось слишком много времени, чтобы понять это. Я надеюсь, что это поможет, поскольку эта тема помогла мне.

Спасибо.

person Siempre    schedule 18.05.2012