2009-03-27 2 views
11

Ho una lista/struttura di sottolista nel mio documento LaTeX. Per impostazione predefinita, l'elenco secondario è delimitato con le lettere, così si finisce con questo:Come personalizzare i riferimenti alle sottoliste in LaTeX?

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

Nel mio documento, ho più di 26 articoli sub, così mi è stato in esecuzione in un errore di overflow del contatore, che ho fissato riscrivendo l'etichetta voce secondaria, in modo che ora appaiono così

1. Item 
    1.1 sub item 
    1.2 sub item 

ho messo un'etichetta su uno degli elementi in modo che io possa fare riferimento alla fase specifica in seguito. Il problema è che quando il riferimento viene reso, viene reso utilizzando una lettera, non il numero dell'elemento secondario.

Ecco un esempio di documento che mostra il 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} 

questo viene reso in questo modo:

1. Item 
    1.1 Label here 
Ref: 1a 

Così, invece di dire "Rif: 1.1", che sta utilizzando "Rif: 1.a". C'è un modo per fare \ ref usare la numerazione dell'enumerazione sorgente? In caso contrario, c'è comunque la possibilità di generare riferimenti corretti agli articoli in una sottolista con più di 26 articoli?

risposta

10

Sto guardando la mia copia di The LaTeX Companion, p.129, e da quello che sto vedendo vorrei suggerire qualcosa di simile a quanto segue:

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

non ho accesso a un lavorare l'ambiente LaTeX per testare questo al momento, però.

+0

L'ho fatto - ho davvero bisogno di prendere quel libro. Grazie! –

+0

Si può anche usare \ usepackage {fncylab} –

3

Quindi per 2 liste annidate dovrebbe essere fatto nel modo seguente:

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

adottate per me troppo tempo per capirlo. Spero che questo aiuti come questo thread mi ha aiutato.

Grazie.