- Questo topic ha 2 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 20 anni, 1 mese fa da .
-
Topic
-
Ciao a tutti!Per personalizzare gli elenchi, sto sperimentando il pacchetto enumitem: penso sia davvero eccellente, IMHO superiore a enumerate e a paralist.
Per esempio, in tutti i miei documenti uso elenchi con i numeri romani minuscoli. La soluzione “manuale”
`\documentclass{article}\renewcommand{\labelenumi}{(\textit{\roman{enumi}})}
\begin{document}
\begin{enumerate}
\item foo
\item bar\label{itm:bar}
\end{enumerate}Per la propriet\`a~(\ref{itm:bar}), si ha che\dots
\end{document}
`
non è edeguata: il riferimento non è reso in corsivo -come dev’essere.Il pacchetto enumerate risolve il problema:
`\documentclass{article}\usepackage{enumerate}
\usepackage{varioref} %notare l'aggiunta\begin{document}
\begin{enumerate}[\upshape(\itshape i\/\upshape)]
\labelformat{enumi}{\textit{#1}}
\item foo
\item bar\label{itm:bar}
\end{enumerate}Per la propriet\`a~(\ref{itm:bar}), si ha che\dots
\end{document}
`
ma il codice è (per me) un po’ ostico e poco intuitivo.La soluzione più elegante è IMO offerta dal pacchetto enumitem:
`\documentclass{article}\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=(\emph{\roman*}),ref=(\emph{\roman*})]
\item foo
\item bar\label{itm:bar}
\end{enumerate}Per la propriet\`a~\ref{itm:bar}, si ha che\dots
\end{document}`
Questa soluzione, oltre ad essere più intuitiva di quella precedente, presenta il vantaggio di scindere la resa grafica del contatore dell’elenco (label) da quella del riferimento (ref).Il pacchetto enumitem permette di personalizzare gli elenchi con semplicità e con grande versatilità. Per esempio:
`\begin{itemize}[leftmargin=*]
\item Tizio
\item Caio
\item Sempronio
\end{itemize}
`
o
`\begin{itemize}[noitemsep]
\item Tizio
\item Caio
\item Sempronio
\end{itemize}
`L’unica cosa che non sono riuscito a realizzare in modo pienamente soddisfacente con enumitem è un elenco come l’asparaenum del pacchetto paralist (i due pacchetti sono incompatibili). Ci sono quasi:
`\documentclass{article}\usepackage{enumitem}
\newenvironment{citazione}%
{\begin{quotation}\small\ignorespaces}%
{\end{quotation}}\begin{document}
Testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo
\begin{citazione}
Citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione\begin{enumerate}[label=\emph{\roman*}),ref=\emph{\roman*}),nolistsep,fullwidth,itemindent=1.5em]
\item foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
\item bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar bar
\end{enumerate}Citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione citazione
\end{citazione}Testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo
\end{document}
`
Il codice funziona, ma non è molto elegante. Bisognerebbe sosituire al manuale
`itemindent=1.5em`
dove 1.5em è il valore di \itemindent relativo al documento in questione ottenuto con il pacchetto layouts, il valore di \itemindent, che può cambiare da un documento all’altro. Se imposto l’opzione
`itemindent=\itemindent`
non succeda niente: evidentemente, all’interno dell’ambiente enumerate (con le opzioni selezionate), il valore di \itemindent viene portato a zero. Una soluzione -invero non molto elegante- potrebbe essere quella di memorizzare, nel preambolo, il valore di \itemindent in una “variabile tipografica”, diciamo \mylen, ed usare quella… ma non so come si fa!Grazie anticipate a chi vorrà aiutarmi!
Ciao,
L.
- Devi essere connesso per rispondere a questo topic.