2010-01-12 10 views
5

Chcę produkować następujących w LaTeX:Zmiana numeracja zagnieżdżonych list w środowisku wyliczyć, w LaTeX

1. Item 
    2. Item 
    3a. Item 
    3b. Item 
    4. Item 
5. Item 

Zasadniczo mam już wypróbowany przy zagnieżdżonych enumerate środowisk, ale mam problem z realizacją różne numeracje.

Jak mogę to zrobić w LaTeX?

+2

Przykro mi, ale czy wcięcie odpowiada poziomowi zagnieżdżonych środowisk wyliczeniowych, które chcesz? – YuppieNetworking

+1

To powinno zostać przeniesione na tex.stackexchange.com ... – Bart

Odpowiedz

9

Celem środowiska {enumerate} jest zliczyć rzeczy algorytmicznie. Jeśli naprawdę chcesz, aby liczby były wyświetlane w sposób pokazany w pytaniu, nie mogę określić, jaki algorytm chcesz zastosować. Na przykład, który pokazujesz, myślę, że najłatwiejszą metodą jest zaprogramowanie etykiet samemu, zamiast próbować programować LaTeX, aby to zrobić. Chciałbym po prostu zrobić to w ten sposób:

\begin{itemize} 
\item[1.] Item 
    \begin{itemize} 
    \item[2. ] Item 
    \item[3a. ] Item 
    \item[3b. ] Item 
    \item[4. ] Item 
    \end{itemize} 
\item [5. ] Item 
\end{itemize} 

lateksem, najszybsza droga do rozwiązania często wiąże brutalnej siły :-)

+0

Lekki: -> –

+0

"Dzięki LaTeX najszybsza droga do rozwiązania często wymaga brutalnej siły :-)" - Kocham cię. – sjas

1
\renewcommand{\labelenumi}{\Roman{enumi}.} 
\renewcommand{\labelenumii}{\Roman{enumi}. \alph{enumii}} 

\noindent Here's my list: 

\begin{enumerate} 
\item Item 1. 
\begin{enumerate} 
\item List 2, Item 1 
\item List 2, Item 2 
\end{enumerate} 
\item Item 2. 
\item Item 3. 
\end{enumerate} 

Następnie zmień \Roman w renewcommand aby cokolwiek chcesz go mieć: \alph lub \arabic

+0

+1: To naprawdę nie odpowiada na pytanie - powinno być drugie środowisko, które ponownie używa pierwszego licznika, a najgłębszy env powinien być wcięty jako drugi element , ale oparłem na nim mój kod, więc przydało mi się to. –

2

szybki i brudny:

 
\documentclass{article} 
\begin{document} 

\renewcommand{\labelenumii}{\addtocounter{enumi}{1}\arabic{enumi}} 
%% Second list uses first counter 

\def\startenumtuple{\setcounter{enumii}{1}\addtocounter{enumi}{1} 
    \renewcommand{\labelenumii}{\arabic{enumi}.\alph{enumii}}} 
\def\endenumtuple{ 
    \renewcommand{\labelenumii}{\addtocounter{enumi}{1}\arabic{enumi}}} 

\noindent Here's my list: 

\begin{enumerate} 
\item Item 
\begin{enumerate} 
\item Item 
\startenumtuple 
\item Item 
\item Item 
\endenumtuple 
\item Item 
\item Item 
\end{enumerate} 
\item Item 
\end{enumerate} 
\end{document} 

(wersja Mica została używane w pierwszej iteracji tego kodu)

Właściwy sposób polega na zdefiniowaniu środowisk opartych na wyliczeniu, które postępują właściwie z licznikami: powyższy kod wymagałby poprawienia do spraw, aby działała poprawnie, jeśli chcesz zmienić zagnieżdżanie środowisk list.

Powiązane problemy