2009-03-27 14 views
11

Tengo una estructura de lista/sublista en mi documento LaTeX. Por defecto, la lista secundaria está delimitado con letras, por lo que terminan con esto:¿Cómo personalizar las referencias a sublistas en LaTeX?

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

En mi documento, tengo más de 26 sub elementos, por lo que yo estaba corriendo en un error de desbordamiento del contador, que me fijado por la reescritura de la etiqueta del elemento secundario, de modo que ahora se ven así

1. Item 
    1.1 sub item 
    1.2 sub item 

he puesto una etiqueta en uno de los elementos para que pueda hacer referencia a la etapa específica más adelante. El problema es que cuando se representa la referencia, se representa utilizando una letra, no el número del elemento secundario.

Aquí hay un documento de muestra que muestra el problema.

\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} 

esto se pone dictó la siguiente manera:

1. Item 
    1.1 Label here 
Ref: 1a 

Así que en lugar de decir "Ref: 1.1", se trata de utilizar "Ref: 1.a". ¿Hay alguna manera de hacer que \ ref use la numeración de la enumeración de origen? Si no, ¿hay alguna forma de generar referencias correctas a los elementos en una sublista con más de 26 elementos?

Respuesta

10

estoy mirando a mi copia del látex Companion, p.129, y por lo que estoy viendo yo sugeriría algo como lo siguiente:

\renewcommand{\theenumii}{\arabic{enumii}} 
\renewcommand{\labelenumii}{\theenumi.\theenumii.} 
\makeatletter 
\renewcommand{\[email protected]}{\theenumi.} 
\makeatother 

que no tienen acceso a una Sin embargo, el entorno de LaTeX funciona para probar esto en este momento.

+0

Eso lo hizo - Realmente necesito conseguir ese libro. ¡Gracias! –

+0

Uno también puede usar \ usepackage {fncylab} –

3

Así por 2 listas anidadas se debe hacer de la siguiente manera:

\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{\[email protected]}{\theenumi.} 
\renewcommand{\[email protected]}{\theenumi.\theenumii.} 
\makeatother 

... 

\end{enumerate} 

Se me ha llevado demasiado tiempo para entenderlo. Espero que esto ayude ya que este hilo me ayudó.

Gracias.

Cuestiones relacionadas