NatBib, Index e indice delle citazioni automatico

  • Creatore
    Topic
  • #4878
    Gus
      Up
      0
      Down
      ::


      Ciao a tutti,

      (vedi anche http://www.guit.sssup.it/phpbb/viewtopic.php?t=758)
      ho provato a usare l’indicizzazione automatica delle citazioni di NatBib (\
      citeindextrue) con il pacchetto Index per gli indici analitici multipli, come
      suggerito nel manuale stesso di NatBib a p. 15. In altre parole vorrei che
      tutte le citazioni generate da NatBib venissero messe nell’Indice apposito delle citazioni creato con Index.

      Tuttavia, a me si blocca sempre su un errore (alla seconda compilazione finale Latex): sembra che nel file .bbl qualcosa
      non vada (ma non sono sicuro).
      Allego un sorgente (prni.tex) e un esempio di file BibTeX (prni.bib).
      Compilandolo come indicato all’inizio del sorgente tutto va bene (si creano tre
      indici: normale, autori, citazioni, quest’ultimo vuoto). Se però decommentate
      la riga 25 (\citeindextrue), a me dà errore.

      Vorrei sapere:
      – se a voi funziona;
      – in caso negativo, se qualcuno ha idee.

      Grazie mille,

      Gus

      `
      \documentclass{book}
      % compilazioni:
      %% latex prni
      %% bibtex prni
      %% makeindex prni (indice analitico normale)
      %% makeindex -o prni.and prni.adx (indice degli autori)
      %% makeindex -o prni.cnd prni.cdx (indice delle citazioni)
      %% latex prni
      \usepackage{natbib}
      \usepackage{index}

      \makeindex
      % Nuovo indice con pacchetto Index:
      \newindex{aut}{adx}{and}{Indice degli Autori}
      \newindex{cit}{cdx}{cnd}{Indice delle Citazioni}
      \renewcommand{\citeindextype}{cit}

      \title{Prova di NatBib e Index}
      \author{GC}

      \begin{document}
      \maketitle

      % NatBib inserisce automaticamente la lista delle citazioni bibliografiche nell'indice standard:
      \citeindextrue

      \tableofcontents

      \chapter{Primo}

      \section{Citazione bibliografica}

      \citet{hempel65}

      \section{Indici analitici}

      \index*{prova}

      \index*[aut]{Hempel}

      \printindex
      \printindex[aut]

      \bibliography{prni}
      \bibliographystyle{natbib}

      \end{document}`

      `
      @INCOLLECTION{hempel65,
      Address = {New York},
      Author = {Carl Gustav Hempel},
      Booktitle = {Aspects of Scientific Explanation and other Essays in the Philosophy of Science },
      Pages = {331–496},
      Publisher = {The Free Press},
      Title = {Aspects of scientific explanation},
      Year = {1965}
      }
      `

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


          Scusate, alla fine del sorgente sopra manca un
          `\printindex[cit]`
          che comunque non è il problema…
          Ciao,

          Gus

        • #4880
          Gus
            Up
            0
            Down
            ::


            Ciao a tutti,

            ho risolto il problema di cui sopra. Per evitare l’errore, basta dare il
            comando \citeindexfalse (che annulla \citeindextrue) subito prima della
            bibliografia. Normalmente serve ad evitare che nella lista delle citazioni ci
            siano anche i riferimenti alle pagine della bibliografia; non ho la minima idea
            del perchè eviti l’errore.
            E’ possibile, immagino, che sia un bug di NatBib quindi chiederò all’autore.
            Ciao a tutti,

            Gus

          • #4881
            Gus
              Up
              0
              Down
              ::


              Risposta di Patrick Daly:

              That \citeindexfalse needs to be issued before \bibliography is a feature not
              a bug. One could include it in the definition of \bibliography, but then if
              some really did want to index the bibliography, he would have no way of doing
              this (simply). Annoying but not a big deal.

              Quindi tutto bene.
              Gli avevo anche chiesto se fosse possibile costruire a partire dalla bibliografia un vero e proprio indice dei nomi, dove ad esempio “Pinco e Pallino 2000” producesse due diverse entry e niente data. Sfortunatamente, la risposta è stata:

              I am afraid the answer is no. This is because the author names in the
              citation text is used as a unit. You would have to parse that text to extract
              the single names, something that is much more complicated. You are welcomed
              to try it.

              Io naturalmente non saprei nemmeno da dove partire, ma se qualche volenteroso TeXnico fra di voi volesse…

              Ciao,

              Gus

            • #4882
              Gus
                Up
                0
                Down
                ::


                Ciao a tutti,

                dopo aver risolto il problema sopra, mi sono ricordato (!) che, usando la classe
                memoir, le funzionalità del pacchetto Index (e quindi le bibliografie multiple)
                sono già comprese (come anche quelle di makeidx).
                In particolare è possibile usare NatBib per avere l’indice automatico delle
                citazioni bibliografiche (v. manuale memoir pp. 126–127, ultimo aggiornamento).
                (Attenzione a non usare versioni vecchie di memoir perchè prima c’era incompatibilità.)

                Dato però che ho fatto un po’ fatica a capire le istruzioni e farle funzionare,
                riporto qui un sorgente funzionante, nel caso sia utile a qualcuno:

                `
                % inzia prova.tex
                \documentclass{memoir}
                %
                \makeindex % indice normale
                \makeindex[names] % indice dei nomi
                \renewcommand{\citeindexfile}{citations}
                % dice a NatBib di scrivere sul file di nome \citeindexfile
                \makeindex[\citeindexfile] % indice delle citazioni
                \usepackage{natbib}
                % notare che è necessario creare gli indici PRIMA di chiamare NatBib
                \citeindextrue % NatBib indicizza la bibliografia
                %
                \begin{document}
                Prova di indici multipli e indice automatico citazioni (Natbib)
                \tableofcontents
                % notare che gli Indici vanno automaticamente in bibliografia

                Indice: \index*{la versione asteriscata del pacchetto Index funziona}

                Indice dei nomi: \index[names]{Hempel, C.G.}

                Citazione bibliografica: \cite{hempel65} % va nell'Indice delle Citazioni
                automaticamente

                \printindex
                \renewcommand{\indexname}{Indice dei nomi}
                \printindex[names]
                \renewcommand{\indexname}{Indice delle citazioni}
                \printindex[\citeindexfile] % equivalente a \printindex[citations]
                %
                \citeindexfalse % per non indicizzare i riferimenti in bibliografia (ma funziona
                comunque)
                %
                \bibliography{prni}
                \bibliographystyle{natbib}
                %
                \end{document}
                `

                Il file .bib è sempre l’esempio postato sopra.
                In questo modo si ottengono 3 indici: quello normale (\index), quello degli
                autori (\index[names]) e quello delle citazioni (automatico da NatBib).
                Naturalmente occorre compilare:

                `
                latex prova
                bibtex prova
                makeindex prova
                makeindex -o names.ind names.idx
                makeindex -o citations.ind citations.idx
                latex prova
                `

              • #4883
                Up
                0
                Down
                ::


                Ciao a tutti,
                ci sono codici informatici per fare qualsiasi cosa.
                Se si studia bene come lavorarci sul codice sorgente, bene o male non ci sono limiti all’immaginazione.
                Saluti a tutti.

                __________________
                Servizi di creazione siti web reggio emilia, pubblicità e posizionamento > SitiWeb.RE

              • #4884
                Up
                0
                Down
                ::


                Ciao a tutti,
                come dice Galdino, con tanta pazienza e volontà di imparare a scrivere codici, si può arrivare all’inimagginabile.
                Saluti a tutti.

                __________________
                Realizzazione siti web reggio emilia e SEO > Visita SitiWeb.RE

              • #4885
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::



                  @Galdino
                  , si il codice permette di fare quasi tutto, anche se bisogna essere un po’ inclini a scrivere codice.

                  Tuttavia volevo segnalarti che ti sei rifatto ad una chat il cui ultimo messaggio è di 15 anni fa. Come puoi immaginare in questi 15 anni sono successe tante cose; anche memoir è cambiato, non in modo integrale, ma è cambiato. Inoltre una decina di anni fa alcuni di noi del GuIT hanno prodotto e installato su CTAN, quindi è distribuito con ogni installazione di TeX Live, il pacchetto imakeidx.sty, di cui ti suggerisco di leggere la documentazione dando da terminale il comando texdoc imaleidx che permette davvero di avere un “index”, cioè un indice analitico, in modo sincrono; con questo pacchetto puoi comporre simultaneamente un numero qualsiasi” di indici tematici tematici; con una pozione al pacchetto puoi avere la creazione di tanti file .idx distinti, oppure un solo file .idx da cui, appena invochi la stampa del primo indice analitico, vengono estratti gli N file .idf distinti, cosicché superi il numero limitato di canali di scrittura dei programmai del sistema TeX.
                  In sostanza, per esempio, la GuidaGuIT, che trovi nella sezione documentazione di questo forum, ha 6 diversi indici analitici che complessivamente non saturano il numero di output streams accettabili di pdfLaTeX, e quindi non cè bisogno di attivare quella particolare funzionalità; ma mi è successo di collaborare a un progetto di scrittura di musica gregoriana, che senza indici da solo impegnava 14 dei 16 output stream disponibili; e quindi i variindici tematici del volume cmpleto andavano usati specificando quell’opzione. Ma il bello era che sempre, in ogni caso, gl indici erano sempre relativi alla compilazione appena eseguita. Gli alri collaboratori di questo progetto non credevano ai loro occhi quando hanno scoperto questa funzionalità di questo pacchetto.
                  Il problema del sistema TeX è che è in grado di fare “troppe” cose; per fortuna è modulare, per ci puoi documentarti su ogni singolopaccheto senza dover leggere tomi e tomi di documentazione archiviata, ma non c’è limite alla creatività che puoi esercitare.

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

              Go to top