Re: Bibliografia ordinata

#16056
Up
0
Down
::

Salve a tutti,

Ho cercato di trovare la risposta al mio quesito, ma mi pare non ci sia, se c’e’ chiedo venia.
Dunque, sto usando the bibliography (non bibtex), e mi piacerebbe ordinare i titoli in bibliografia a seconda del tipo di appartenenza (libri, riviste, articoli, etc…). Cioe’ vorrei avere una sezione (non un \bibtem) che viene letto come testo, qualcosa del genere:

LIBRI

[1] Nervi Pier Luigi, Costruire correttamente, Hoepli, Milano, 1955
[2]…,…,…,…,…

ARTICOLI

[3] Pallo Pinco, qwerty oggi, Casabella, 56, 1939,

Si puo’ fare?

Grazie degli eventuali consigli,

Ammettiamo che usi la classe book, nella quale la bibliografia è un capitolo. Un’occhiata a book.cls mostra che il contatore usato per numerare gli elementi della bibliografia è “enumiv”. Quindi dobbiamo portarci dietro il suo valore a ogni parte successiva, se vogliamo che la numerazione prosegua. Inoltre vogliamo che ogni ambiente thebibliography usato inizi una sezione. Ecco qua:
`\newcommand{\keepenumiv}{0}
\newenvironment{thebibchapter}
{\chapter*{\bibname}\let\chapter\section}{}
\newenvironment{thebibsection}[2]
{\renewcommand{\bibname}{#1}%
\begin{thebibliography}{#2}\setcounter{enumiv}{\keepenumiv}}
{\xdef\keepenumiv{\arabic{enumiv}}\end{thebibliography}}`
Adesso puoi scrivere
`\begin{thebibchapter}
\begin{thebibsection}{Libri}{9}
\bibitem{nervi55} Pier Luigi Nervi, Costruire correttamente, Hoepli, Milano, 1955

\bibitem{pippo99} …
\end{thebibsection}

\begin{thebibsection}{Articoli}{9}
\bibitem{Pinco39} Pallo Pinco, qwerty oggi, Casabella, 56, 1939,

\bibitem{pluto00} …
\end{thebibsection}
\end{thebibchapter}`
All’interno di thebibchapter il comando \chapter vale \section; l’ambiente thebibliography, richiamato da ciascun thebibsection, emette un comando \chapter*{\bibname} che diventerà come \section*{#1}, in virtù della ridefinizione locale di \bibname a #1. Il secondo argomento di thebibsection è come l’unico di thebibliography, per il corretto allineamento dei numeri di riferimento.

Particolare TeXnico degno di nota: per portar dietro il valore ultimo di enumiv, uso \xdef, che significa “definizione globale con espansione”: quindi \arabic{enumiv} viene espanso al valore attuale di enumiv in cifre, per poi essere usato dall’ambiente thebibsection successivo tramite la macro \keepenumiv.

Ciao
Enrico

Go to top