Uso minimale di bibunits

  • Creatore
    Topic
  • #31241
    Up
    0
    Down
    ::


    Ciao a tutti.

    Uno dei documenti che sto scrivendo (classe book) sta diventando troppo grande e con troppi riferimenti bibliografici. Ho quindi deciso di dividere la bibliografia per capitolo usando bibunits. Purtroppo mi sono un po’ incartato. . .

    Vorrei che le bibliografie siano per capitolo (una sezione chiamata Bibliography alla fine di ogni capitolo), vorrei che i riferimenti siano del tipo [numero capitolo.numero progressivo] e che ci sia poi una bibliografia totale alla fine del documento.

    Ho un singolo file .bib e la bibliografia finale mi basta che abbia semplicemente i riferimenti uno di seguito all’altro
    [1.1] Pippo pluto
    [1.2] Paperino
    [2.1] Pippo pluto
    [3.1] Nonna papera
    e così via.

    Ecco uno schema di codice. . .

    `\documentclass{book}

    \usepackage[globalcitecopy,sectionbib]{bibunits}

    \begin{document}

    \bibliographyunit[\chapter]
    \defaultbibliography{bibliodata}
    \defaultbibliographystyle{abbrv}

    % frontespizio

    \tableofcontents

    \input{introduction} % dentro questo file alla fine c'è \putbib e i comandi \cite (senza asterisco)

    \input{prova} % dentro questo file alla fine c'è \putbib e i comandi \cite (senza asterisco)

    % bibliografia generale alla fine del documento
    \cleardoublepage
    \addcontentsline{toc}{chapter}{\bibname}
    \bibliography{bibliodata} % bibliodata.bib è il mio database

    \end{document}
    `

    Con uno schema simile la bibliografia generale non mi viene prodotta mentre quelle locali sì.
    Inoltre nel manuale c’è anche scritto che \defaultbibliography e \defaultbibliographystyle non sono necessari nel mio caso, ma se li tolgo non compare più nulla.

    Lo schema precedente è corretto per quello che voglio fare? Si può fare di meglio?
    La numerazione [numero capitolo.numero progressivo] come la ottengo? Ho pensato a \numberwithin{???}{chapter} ma non so bene come usarlo per la bibliografia. . .

    Grazie.
    Ciao ciao.
    Fra

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #31242
      Up
      0
      Down
      ::

      Ciao a tutti.

      Uno dei documenti che sto scrivendo (classe book) sta diventando troppo grande e con troppi riferimenti bibliografici. Ho quindi deciso di dividere la bibliografia per capitolo usando bibunits. Purtroppo mi sono un po’ incartato. . .

      Vorrei che le bibliografie siano per capitolo (una sezione chiamata Bibliography alla fine di ogni capitolo), vorrei che i riferimenti siano del tipo [numero capitolo.numero progressivo] e che ci sia poi una bibliografia totale alla fine del documento.

      Ho un singolo file .bib e la bibliografia finale mi basta che abbia semplicemente i riferimenti uno di seguito all’altro
      [1.1] Pippo pluto
      [1.2] Paperino
      [2.1] Pippo pluto
      [3.1] Nonna papera
      e così via.

      Ecco uno schema di codice. . .

      `\documentclass{book}

      \usepackage[globalcitecopy,sectionbib]{bibunits}

      \begin{document}

      \bibliographyunit[\chapter]
      \defaultbibliography{bibliodata}
      \defaultbibliographystyle{abbrv}

      % frontespizio

      \tableofcontents

      \input{introduction} % dentro questo file alla fine c'è \putbib e i comandi \cite (senza asterisco)

      \input{prova} % dentro questo file alla fine c'è \putbib e i comandi \cite (senza asterisco)

      % bibliografia generale alla fine del documento
      \cleardoublepage
      \addcontentsline{toc}{chapter}{\bibname}
      \bibliography{bibliodata} % bibliodata.bib è il mio database

      \end{document}
      `

      Con uno schema simile la bibliografia generale non mi viene prodotta mentre quelle locali sì.
      Inoltre nel manuale c’è anche scritto che \defaultbibliography e \defaultbibliographystyle non sono necessari nel mio caso, ma se li tolgo non compare più nulla.

      Lo schema precedente è corretto per quello che voglio fare? Si può fare di meglio?
      La numerazione [numero capitolo.numero progressivo] come la ottengo? Ho pensato a \numberwithin{???}{chapter} ma non so bene come usarlo per la bibliografia. . .

      Figliolo caro, perché non provare a fare un esempio con gli effettivi comandi? Che ci interessa dell’introduzione e del capitolo tal dei tali? Suvvia!

      Un file senza ammennicoli irrilevanti, due capitoli fasulli (basta una parola e un paio di \cite) e un estratto sufficientemente lungo del .bib. Il tutto senza \input, per favore.

      Ciao
      Enrico

    • #31243
      Up
      0
      Down
      ::


      Chiedo venia. Spero di non ricevere una tirata d’orecchie anche stavolta. . .
      Per alcuni problemi ho risolto. Ne rimangono altri.

      Un estratto di bibliodata.bib :
      `@ARTICLE{1977_Agekyan,
      author = {Agekyan, V. T.},
      title = {Spectroscopic properties of semiconductor crystals with direct forbidden
      energy gap},
      journal = {Phys. Status Solidi (a)},
      year = {1977},
      volume = {43},
      pages = {11},
      owner = {Francesco},
      timestamp = {2009.01.01}
      }

      @ARTICLE{1961_Baumeister,
      author = {Baumeister, Philip W.},
      title = {Optical Absorption of Cuprous Oxide},
      journal = {Physical Review},
      year = {1961},
      volume = {121},
      pages = {359},
      owner = {Francesco},
      timestamp = {2008.12.07}
      }`

      Un codice compilabile:
      `\documentclass{book}

      \usepackage[globalcitecopy,sectionbib]{bibunits}

      \begin{document}

      \bibliographyunit[\chapter]

      \tableofcontents

      \chapter{Capitolo1}
      Prima reference interessante~\cite{1977_Agekyan}.
      \putbib

      \chapter{Capitolo2}
      Seconda reference interessante~\cite{1961_Baumeister}.
      \putbib

      % bibliografia generale alla fine del documento
      \cleardoublepage
      \addcontentsline{toc}{chapter}{\bibname}
      \bibliographystyle{plain}
      \bibliography{bibliodata}

      \end{document}
      `

      Chiedo aiuto per i seguenti problemi:
      1. La bibliografia generale ha un titolo come le section anziché come un capitolo.
      2. Come si fa ad impostare il formato dei rimandi come [capitolo.numero]?
      3. La numerazione della bibliografia generale è assolutamente scollegata da quelle locali. Vorrei che semplicemente ricomparissero tutte le reference citate in ogni bibliografia locale (anche con eventuali doppioni chiaramente).

      Qualcuno sa come fare?
      Grazie mille.
      Ciao ciao.
      Fra

    • #31244
      Up
      0
      Down
      ::


      Mi rispondo da solo per il punto 1.

      È un problema affrontato anche nella documentazione di bibunits e la soluzione è quella
      di mettere alla fine del file, prima dei comandi per la bibliografia generale,
      ma dopo tutte le bibliografie locali, le due righe seguenti:
      `\bibliographyunit
      \let\thebibliography\stdthebibliography`
      che non fanno altro che eliminare l’opzione sectionbib data nel preambolo.

      Ciao ciao.
      Fra

    • #31245
      Up
      0
      Down
      ::

      Chiedo venia. Spero di non ricevere una tirata d’orecchie anche stavolta. . .
      Per alcuni problemi ho risolto. Ne rimangono altri.

      Chiedo aiuto per i seguenti problemi:
      1. La bibliografia generale ha un titolo come le section anziché come un capitolo.
      2. Come si fa ad impostare il formato dei rimandi come [capitolo.numero]?
      3. La numerazione della bibliografia generale è assolutamente scollegata da quelle locali. Vorrei che semplicemente ricomparissero tutte le reference citate in ogni bibliografia locale (anche con eventuali doppioni chiaramente).

      1. Vedo che l’hai risolto.

      2. Scrivi questa magia nel preambolo, dopo il caricamento di bibunits:
      `\makeatletter
      \let\std@arabic\@arabic
      \AtBeginDocument{\def\thebibliography#1{%
      \let\chapter\section
      \edef\@arabic{\thechapter.\noexpand\std@arabic}%
      \stdthebibliography{\thechapter.#1}}}
      \makeatother`

      3. La richiesta è, secondo me, priva di senso. In che ordine le metteresti?

      Ciao
      Enrico

    • #31246
      Up
      0
      Down
      ::

      2. Scrivi questa magia nel preambolo, dopo il caricamento di bibunits:
      Codice:
      \makeatletter
      \let\std@arabic\@arabic
      \AtBeginDocument{\def\thebibliography#1{%
      \let\chapter\section
      \edef\@arabic{\thechapter.\noexpand\std@arabic}%
      \stdthebibliography{\thechapter.#1}}}
      \makeatother

      Con questo codice però mi numera nel modo desiderato solamente i riferimenti
      nella bibliografia, io vorrei che fossero in questa forma sia nel testo che nella
      bibliografia a fine capitolo.
      Cercando sul forum “chapterbib” ho trovato due righe di codide:
      `\renewcommand\citeform {\thechapter.} `
      `\makeatletter \renewcommand{\@biblabel}[1]{[\thechapter.#1]} \makeatother`
      La prima, da inserire nel preambolo, si applica purtroppo solo a chapterbib e mette nella forma voluta i riferimenti nel testo, mentre la seconda, da mettere nel corpo del documento, si applica anche al nostro caso e fa (forse. . .) la stessa cosa del codice di Enrico.

      3. La richiesta è, secondo me, priva di senso. In che ordine le metteresti?

      In effetti non è necessaria come cosa. Comunque pensavo all’ordine di apparizione nel testo, così come i riferimenti all’interno di ciascun capitolo.
      Quindi semplicemente una lista del tipo
      [1.1] Pippo
      [1.2] Agekyan
      [2.1] Pluto
      [2.2] …
      [3.1] Pippo
      [3.2] …

      Così facendo potrebbe capitare che alcune reference si ripetano essendo state citate in più capitoli.

      Ciao ciao.
      Fra

    • #31247
      Up
      0
      Down
      ::

      2. Scrivi questa magia nel preambolo, dopo il caricamento di bibunits:
      Codice:
      \makeatletter
      \let\std@arabic\@arabic
      \AtBeginDocument{\def\thebibliography#1{%
      \let\chapter\section
      \edef\@arabic{\thechapter.\noexpand\std@arabic}%
      \stdthebibliography{\thechapter.#1}}}
      \makeatother

      Con questo codice però mi numera nel modo desiderato solamente i riferimenti
      nella bibliografia, io vorrei che fossero in questa forma sia nel testo che nella
      bibliografia a fine capitolo.

      Aggiungi prima di \makeatother la riga
      `\def\@cite#1#2{[{\thechapter.#1\if@tempswa , #2\fi }]}`
      Per l’altro problema potresti provare a cercare uno stile che non numeri gli elementi della bibliografia.

      Resto del parere che la bibliografia è una sola.

      Ciao
      Enrico

    • #31248
      Up
      0
      Down
      ::


      Grazie mille Enrico!

      Per l’altro problema potresti provare a cercare uno stile che non numeri gli elementi della bibliografia.

      Mi hai fatto venire in mente un’idea. In effetti ha poco senso fare quello che chiedevo, però la bibliografia finale potrebbe essere utile se riportata senza numeri, come da te suggerito, ma soprattutto in ordine alfabetico.

      Ricapitolando ecco lo scheletro di un documento:
      `\documentclass{book}

      \usepackage[globalcitecopy,sectionbib]{bibunits}
      \makeatletter
      \def\@biblabel#1{[\thechapter.#1]}
      \def\@cite#1#2{[{\thechapter.#1\if@tempswa , #2\fi }]}
      \makeatother

      \begin{document}

      \bibliographyunit[\chapter]
      % usate uno stile che numera i riferimenti in ordine di apparizione
      \defaultbibliographystyle{unsrt}
      \defaultbibliography{bibliodata}

      % da qui comincia il vostro documento
      % . . . . . . . . . . .

      \chapter{Capitolo1}
      Prima reference interessante~\cite{1977_Agekyan}.
      \putbib

      \chapter{Capitolo2}
      Seconda reference interessante~\cite{1961_Baumeister}.
      \putbib

      % bibliografia generale alla fine del documento in ordine alfabetico
      \cleardoublepage
      \addcontentsline{toc}{chapter}{\bibname}
      \makeatletter
      % il seguente comando fa sparire la numerazione. Nelle graffe
      % si può inserire quello che volete per distinguere graficamente
      % le reference (un pallino ecc…)
      \renewcommand{\@biblabel}[1]{}
      \makeatother
      \bibliographyunit
      \let\thebibliography\stdthebibliography
      % usate uno stile che ordini alfabeticamente le opere con il cognome dell'autore
      \bibliographystyle{plain}
      \bibliography{bibliodata}

      \end{document} `

      Ciao ciao.
      Fra

Visualizzazione 6 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top