Как настроить ссылки на подсписки в LaTeX? - PullRequest
11 голосов
/ 27 марта 2009

У меня есть структура списка / подсписка в моем документе 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

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

Ответы [ 2 ]

10 голосов
/ 27 марта 2009

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

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

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

3 голосов
/ 18 мая 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}

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

Спасибо.

...