TeX e LaTeX

L'ambiente thebibliography

Se i riferimenti sono pochi oppure quello che state scrivendo riguarda un argomento breve i cui riferimenti non vi saranno più utili in nessun altro lavoro (per esempio state scrivendo di un argomento di cui molto probabilmente non riparlerete) l'ambiente thebibliography è la soluzione giusta.

Nel punto in cui volete che compaia la bibliografia scrivete

% obbligatorio per book e report,
%facoltativo per article
\cleardoublepage

% per le classi book e report
% bibliografia nell'indice come capitolo
% (personalizzare a piacimento)
\addcontentsline{toc}{chapter}{\bibname}

% altrimenti per la classe article
% bibliografia nell'indice come section
% (personalizzare a piacimento)
\addcontentsline{toc}{section}{\refname}

% la bibliografia vera e propria
\begin{thebibliography}{numero massimo chiavi}
\bibitem{chiave} Voce bibliografica
\bibitem{chiave} Voce bibliografica
...
\end{thebibliography}

Al posto di "Voce bibliografica" dovete scrivere per intero i dati bibliografici. Questo vi fa capire che l'ambiente thebibliography è completamente manuale. In sostanza equivale a scrivere a mano una lista di voci bibliografiche che poi possono essere richiamate nel testo.

Al posto di "numero massimo di chiavi" si scrive 9 se le voci sono da 1 a 9, 99 se le voci sono da 10 a 99, 999 se le voci sono da 100 a 999, e così via. Serve solo a lasciare lo spazio giusto per la scrittura delle chiavi.

Per inserire un riferimento nel testo usare ~\cite{chiave} (la tilde serve per non staccare il riferimento dalla parola che lo precede). Questo comando produrrà una cosa tipo "... [3] ...". Ha anche un argomento opzionale per scrivere qualsiasi cosa vogliate: per esempio \cite[pag. 34]{chiave} produrrà "... [3, pag. 34] ...". È infine possibile specificare anche più riferimenti insieme cioè scrivere \cite{pippo, pluto, paperino} che produrrà "... [1,2,3] ...".

Compilate tre volte e il gioco è fatto.

Il titolo della bibliografia

Come avrete notato, non ho inserito nell'esempio un comando \chapter o \section per inserire il titolo della bibliografia. Il motivo è che il titolo viene scritto automaticamente dall'ambiente thebibliography: come \section* se la classe è article, come \chapter* se la classe è book. Nel caso vogliate modificare il titolo di default o semplicemente il suo stile, una maniera molto semplice è quella di ridefinire i comandi \refname nel caso usiate la classe article o \bibname nel caso usiate la classe book.

Ecco un esempio in cui ho rinominato la bibliografia chiamandola "References" e ho aumentato la dimensione del carattere. Questa riga di codice può essere messa nel preambolo oppure nel corpo del testo, ma ovviamente prima dell'ambiente thebibliography

\renewcommand\refname{\large References}

Altri schemi di citazione

Come avrete notato, lo schema di citazione di default quando si usa l'ambiente thebibliography è di tipo numerico. In realtà il comando \bibitem ha un argomento opzionale che viene stampato al posto del numero, sia nella citazione che nella bibliografia. Per esempio, supponiamo di volere usare uno stile di citazione Autore, ANNO.

\begin{thebibliography}{chiave più lunga}
\bibitem[Pippo, 1980]{chiave} Riferimento
\bibitem[Rossi, 1998]{chiave} Riferimento
...
\end{thebibliography}

Bibliografia per capitolo

L'ambiente thebibliography è molto semplice, e non è stato pensato per generare bibliografie multiple, per esempio uno alla fine di ogni capitolo. Mettendo però il seguente codice nel preambolo del vostro documento si ridefinisce l'ambiente thebibliography in modo che riesca a fare anche questa cosa. Dopodiché non vi resterà che usare l'ambiente thebibliography alla fine di ogni capitolo.

\makeatletter
\renewenvironment{thebibliography}[1]
{\section*{\Large\bibname % \chapter* is changed to \section*
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode‘\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty ‘thebibliography’ environment}}%
\endlist}
\makeatother

Ultima osservazione

È da notare che conoscere a fondo l'ambiente thebibliography è di fondamentale importanza. Infatti, sebbene esistano strumenti più evoluti per creare la bibliografia, cioè BibTeX o BibLaTeX, questi in realtà non fanno altro che creare un file ausiliare (con estensione .bbl) che poi verrà incluso automaticamente nel file finale al cui interno non c'è altro che l'ambiente thebibliography!

Quanto detto è importante anche per la preparazione di articoli per riviste scientifiche. Durante la preparazione dell'articolo infatti potete tranquillamente usare un sistema come BibTeX o BibLaTeX, ma alla fine, prima della sottomissione alla rivista, si copia il contenuto del file bbl generato da questi sistemi al posto dei comandi per stampare la bibliografia usati da BibTeX o BibLaTeX. In pratica si crea così un file basato solo thebibliography. In questo modo la redazione della rivista non dovrà barcamenarsi con codici a volte complessi e soprattutto con un file esterno della bibliografia, cioè il database bibliografico BibTeX o BibLaTeX. Questo modo di agire è consigliato esplicitamente anche da diverse riviste scientifiche.