Re: biblatex, croce e delizia

#36157
mlgdominici
Amministratore del forum
    Up
    0
    Down
    ::

    13. Bibliografie separate per sezione. Questa è la base di dati:
    `@book{bringhurst:elementi,
    author = {Bringhurst, Robert},
    title = {Gli Elementi dello Stile Tipografico},
    publisher = {Sylvestre Bonnard},
    year = {2001},
    location = {Milano}
    }

    @article{mori:tesi,
    author = {Mori, Lapo Filippo},
    title = {Scrivere la tesi di laurea con {\LaTeXe}},
    journaltitle = {{\Ars}},
    number = {3},
    year = {2007}
    }

    @manual{gregorio:breveguida,
    author = {Gregorio, Enrico},
    title = {Breve guida ai pacchetti di uso più comune},
    year = {2008},
    url = {http://profs.sci.univr.it/~gregorio/}
    }`
    Questo è il codice:
    `\documentclass{article}
    \usepackage[italian]{babel}
    \usepackage[inputenc]{inputenc}
    \usepackage[babel]{csquotes}
    \usepackage[T1]{fontenc}
    \usepackage[style=alphabetic,refsection=section]{biblatex}
    \usepackage{guit}
    \bibliography{Bibliografia}

    \defbibheading{bibliography}{%
    \subsection*{Riferimenti bibliografici del
    paragrafo~\ref{refsection:\therefsection}}}

    \begin{document}
    \section{Un paragrafo}
    Un paragrafo, con un riferimento a~\cite{bringhurst:elementi}, che
    appare nella relativa bibliografia locale.

    Si possono includere nella bibliografia locale anche delle opere
    non esplicitamente citate nel documento.
    \nocite{gregorio:breveguida}

    \printbibliography

    \section{Un altro paragrafo}
    Un nuovo paragrafo, con un riferimento a~\cite{mori:tesi}, che
    compare nella relativa bibliografia locale.

    \printbibliography
    \end{document}`
    L’esempio l’ho tratto dalla doc. del pacchetto, ma c’è un problema nei titoli delle bibliografie, che vengono resi così:

    Riferimenti bibliografici del paragrafo

    (senza nessun numero) e

    Riferimenti bibliografici del paragrafo 1

    (con il numero sbagliato). Dove sbaglio?

    Se ho capito bene leggendo il codice del pacchetto, quello che succede è questo:

    1. usando l’opzione [refsection=section], il pacchetto ridefinisce il comando \section, preponendogli \newrefsection (vedi manuale pag. 61);

    2. \newrefsection scrive nel file .aux il materiale necessario per identificare l’etichetta della sezione (cerca \newlabel nel file .aux);

    3. ma in realtà lo fa troppo presto, quando, cioè, il contatore delle sezioni non è ancora scattato, per cui \@currentlabel, ovvero il valore dell’etichetta in quel punto è indietro di 1, o, addirittura, non è definito, nel caso della prima sezione.

    Nell’esempio originale, da cui hai adattato il tuo, gli ambienti refsection sono specificati manualmente e iniziano tutti dopo il relativo comando \section, ecco perché non si ha nessun inconveniente.

    Lehman modifica \section usando un comando del pacchetto etoolbox: \pretocmd. Esiste anche la variante \apptocmd, che invece di preporre il nuovo codice lo pospone. Non saprei dire se ci sono controindicazioni a usare questo comando, o se la scelta di Lehman è stata semplicemente dettata da una svista.

    Max.

    Go to top