Duplicazione di voci di indice con imakeidx e Cevolani

  • Creatore
    Topic
  • #88488
    Up
    0
    Down
    ::


    Salve ancora,
    Sto usando le indicazioni dell’articolo di Cevolani presenti sul sito a questo link in parallelo con il pacchetto imakeidx per un indice dei nomi. Quando, tuttavia, lo stesso autore compare sia come autore di un testo citato, che semplicemente nel testo, il risultato è una doppia voce nell’indice.
    C’è un modo per risolvere questo problema?
    Grazie!

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #88489
      Up
      0
      Down
      ::

      Teodoro Studita” post=87973Salve ancora,
      Sto usando le indicazioni dell’articolo di Cevolani presenti sul sito a questo link in parallelo con il pacchetto imakeidx per un indice dei nomi. Quando, tuttavia, lo stesso autore compare sia come autore di un testo citato, che semplicemente nel testo, il risultato è una doppia voce nell’indice.
      C’è un modo per risolvere questo problema?
      Grazie!

      Un esempietto? Piccolo piccolo.

      Ciao
      Enrico

    • #88490
      Up
      0
      Down
      ::


      Grazie Enrico perché mi hai fatto rendere conto che in questo file non ho usato (come ho fatto sempre) il codice di Cevolani, ma l’opzione indexing del pacchetto di Ivan.
      Comunque prova a fare una prova così

      `%%%%%%%%%%%%%%%%%%%%%%%%%%% PREAMBOLO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \documentclass{book}
      \usepackage[a5paper, top=2.5cm, includeheadfoot, heightrounded, bottom=2.5cm, footnotesep=0.5cm ]{geometry}
      \usepackage{comment}
      \usepackage{fontspec} % Per scrivere in unicode senza xetex (che faceva impazzire gli apici)
      \usepackage{indentfirst}
      \setlength{\parindent}{6mm} % Rientro di paragrafo
      \setmainfont[Ligatures=TeX]{Garamond Premier Pro}
      \usepackage{booktabs} % Per fare i filetti orizzontali nelle tabelle
      \usepackage{verbatim} % Per citazioni verbatim con caratteri speciali
      \usepackage{polyglossia} % Per le sillabazioni
      \usepackage{graphicx} % Per importare Jpg
      \usepackage{amssymb} % Per fare simboli tipo frecce etc.
      \usepackage[fleqn]{amsmath} % Idem, per matematica
      \usepackage[header, page, title]{appendix} % Per aggiungere appendice
      \usepackage{multirow} % x Tabelle
      \renewcommand{\appendixtocname}{Appendice}
      \renewcommand{\appendixname}{Appendice}
      \renewcommand{\appendixpagename}{Appendice}
      \usepackage{/Users/syldor/Dropbox/Teo_Latex/Teo_Description} % Ambiente Description (elenco puntato)
      \usepackage{rotating}
      \usepackage[defaultlines=4,all]{nowidow} %Niente vedove e orfane

      \setmainlanguage{italian}
      \setotherlanguages{english,latin}

      \let\nota=\footnote % Nota normale, con numero, incolonnata
      \usepackage[babel]{csquotes} % Per citare in altre lingue
      \usepackage{fancyhdr} % Stile delle testatine
      \usepackage{Teo_Stile} % Personalizzazione stile testatine

      \renewenvironment{quote} % Le citazioni sono in testo \small
      {\list{}{\small\rightmargin\leftmargin}%
      \item\relax}
      {\endlist}
      %%%%%%%%%%%%%%%%%%%COMANDI DI BILIOGRAFIA%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      \usepackage[style=philosophy-verbose,scauthors=true,firstinits=true,useprefix=true, , publocformat=locpubyear, inbeforejournal=true, latinemph=true]{biblatex} %backend=biber, indexing
      \usepackage[babel]{csquotes} % Per citare in altre lingue
      \bibliography{/Users/syldor/Dropbox/Teo_Latex/Bibliografia} % Specifica il nome del file di bibliografia

      \addto\captionsitalian{% % rinomina indice generale%
      \renewcommand{\contentsname}{Indice generale}}

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%INDICI%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

      \usepackage{imakeidx}
      \makeindex[name=nomi, title=Indice dei nomi, columns=2, intoc=true] % Genera l'indice di default.

      %%%%%%%PACCHETTI CUSTOMIZZATI%%%%%%%%%
      \usepackage{/Users/syldor/Dropbox/Teo_Latex/Teo_Citasenzautore}

      \makeatletter % Da qui in poi per customizzare l'indice: “vedi” diventa “v.” e si
      \let\orig@idxitem\@idxitem %eliminano i “v.” successivi al primo
      \def\@idxitem{\multipleseetrue\orig@idxitem}
      \makeatother
      \newif\ifmultiplesee
      \renewcommand{\see}[2]{%
      \ifmultiplesee\multipleseefalse\emph{v.\@} \fi#1}

      \DeclareFieldFormat
      [article,book,inbook,incollection,inproceedings,patent,thesis,unpublished]
      {title}{\mkbibemph{#1\isdot}} % titolo in enfatico

      \DeclareFieldFormat
      [article,book,inbook,incollection,inproceedings,patent,thesis,unpublished]
      {citetitle}{\mkbibemph{#1\isdot}} % titolo in enfatico alla 2a citazione

      %%%%%%%%%%%%%%%%%%%%%%%%%%%% INIZIO DOCUMENTO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \begin{document}
      \frontmatter

      \input{Files/Copertina}
      \tableofcontents % Stampa l'indice generale

      Bla bla bla\footcite{Kel:Giu} come dice Kelsen\index[nomi]{Kelsen, Hans}

      %%%%%%%%%%%%%%%%%%%%%%%%%BIBLIOGRAFIA%%%%%%%%%%%%%%%%%%%%%%%%

      \addcontentsline{toc}{chapter}{\bibname} % aggiunge la voce Bibliografia all'Indice generale

      \printbibliography %compilare prima il file .aux con TexWorks!

      \addtocontents{toc}{\protect\enlargethispage*{2\baselineskip}}
      \printindex[nomi] % Stampa l'Indice di default
      \end{document}
      \endinput

      `

      Bibliografia:

      @book{Kel:Giu,
      Address = {Milano},
      Author = {Hans Kelsen},
      Date-Added = {2013-08-19 18:56:28 +0000},
      Date-Modified = {2013-08-19 19:00:44 +0000},
      Editor = {Carmelo Geraci},
      Publisher = {Giuffr{\’e}},
      Title = {La giustizia costituzionale},
      Year = {1981}}

    • #88491
      Up
      0
      Down
      ::


      A parte il dover togliere i pacchetti che non ho (e nessuno può avere), ottengo una sola voce nell’indice dei nomi.

      Ciao
      Enrico

    • #88492
      Up
      0
      Down
      ::


      Hai ragione, ho copiaincollato il codice dove avevo tolto la parte per inserire automaticamente i nomi degli autori e quindi non poteva che uscire “pulito”.
      Prova così (ho solo reintrodotto indexing” e aggiunto il codice di Cevolani)
      PS Ho tolto i pacchetti personalizzati

      `%%%%%%%%%%%%%%%%%%%%%%%%%%% PREAMBOLO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \documentclass{book}
      \usepackage[a5paper, top=2.5cm, includeheadfoot, heightrounded, bottom=2.5cm, footnotesep=0.5cm ]{geometry}
      \usepackage{comment}
      \usepackage{fontspec} % Per scrivere in unicode senza xetex (che faceva impazzire gli apici)
      \usepackage{indentfirst}
      \setlength{\parindent}{6mm} % Rientro di paragrafo
      \setmainfont[Ligatures=TeX]{Garamond Premier Pro}
      \usepackage{booktabs} % Per fare i filetti orizzontali nelle tabelle
      \usepackage{verbatim} % Per citazioni verbatim con caratteri speciali
      \usepackage{polyglossia} % Per le sillabazioni
      \usepackage{graphicx} % Per importare Jpg
      \usepackage{amssymb} % Per fare simboli tipo frecce etc.
      \usepackage[fleqn]{amsmath} % Idem, per matematica
      \usepackage[header, page, title]{appendix} % Per aggiungere appendice
      \usepackage{multirow} % x Tabelle
      \renewcommand{\appendixtocname}{Appendice}
      \renewcommand{\appendixname}{Appendice}
      \renewcommand{\appendixpagename}{Appendice}
      \usepackage{rotating}
      \usepackage[defaultlines=4,all]{nowidow} %Niente vedove e orfane

      \setmainlanguage{italian}
      \setotherlanguages{english,latin}

      \let\nota=\footnote % Nota normale, con numero, incolonnata
      \usepackage[babel]{csquotes} % Per citare in altre lingue
      \usepackage{fancyhdr} % Stile delle testatine

      \renewenvironment{quote} % Le citazioni sono in testo \small
      {\list{}{\small\rightmargin\leftmargin}%
      \item\relax}
      {\endlist}
      %%%%%%%%%%%%%%%%%%%COMANDI DI BILIOGRAFIA%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      \usepackage[style=philosophy-verbose,scauthors=true,firstinits=true,useprefix=true, indexing, publocformat=locpubyear, inbeforejournal=true, latinemph=true]{biblatex} %backend=biber,
      \usepackage[babel]{csquotes} % Per citare in altre lingue
      \bibliography{/Users/syldor/Dropbox/Teo_Latex/Bibliografia} % Specifica il nome del file di bibliografia

      \renewbibmacro*{citeindex}{%
      \ifciteindex
      {\indexnames{labelname}}%
      {}}
      \renewbibmacro*{bibindex}{%
      \ifbibindex
      {\indexnames{author}%
      \indexnames{editor}%
      \indexnames{editora}%
      \indexnames{editorb}%
      \indexnames{editorc}}%
      {}}%

      \DeclareIndexNameFormat{default}{%
      \usebibmacro{index:name}{\index[nomi]}{#1}{#3}{#5}{#7}}

      \addto\captionsitalian{% % rinomina indice generale%
      \renewcommand{\contentsname}{Indice generale}}

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%INDICI%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

      \usepackage{imakeidx}
      \makeindex[name=nomi, title=Indice dei nomi, columns=2, intoc=true] % Genera l'indice di default.

      \makeatletter % Da qui in poi per customizzare l'indice: “vedi” diventa “v.” e si
      \let\orig@idxitem\@idxitem %eliminano i “v.” successivi al primo
      \def\@idxitem{\multipleseetrue\orig@idxitem}
      \makeatother
      \newif\ifmultiplesee
      \renewcommand{\see}[2]{%
      \ifmultiplesee\multipleseefalse\emph{v.\@} \fi#1}

      \DeclareFieldFormat
      [article,book,inbook,incollection,inproceedings,patent,thesis,unpublished]
      {title}{\mkbibemph{#1\isdot}} % titolo in enfatico

      \DeclareFieldFormat
      [article,book,inbook,incollection,inproceedings,patent,thesis,unpublished]
      {citetitle}{\mkbibemph{#1\isdot}} % titolo in enfatico alla 2a citazione

      %%%%%%%%%%%%%%%%%%%%%%%%%%%% INIZIO DOCUMENTO %%%%%%%%%%%%%%%%%%%%%%%%%%%
      \begin{document}
      \frontmatter

      \input{Files/Copertina}
      \tableofcontents % Stampa l'indice generale

      Bla bla bla\footcite{Kel:Giu} come dice Kelsen\index[nomi]{Kelsen, Hans}

      %%%%%%%%%%%%%%%%%%%%%%%%%BIBLIOGRAFIA%%%%%%%%%%%%%%%%%%%%%%%%

      \addcontentsline{toc}{chapter}{\bibname} % aggiunge la voce Bibliografia all'Indice generale

      \printbibliography %compilare prima il file .aux con TexWorks!

      \addtocontents{toc}{\protect\enlargethispage*{2\baselineskip}}
      \printindex[nomi] % Stampa l'Indice di default
      \end{document}
      \endinput`

    • #88493
      Up
      0
      Down
      ::


      Questo è il contenuto del file .idx, che viene elaborato da MakeIndex:
      `\indexentry{Kelsen, Hans}{i}
      \indexentry{Kelsen, Hans@Kelsen, Hans}{i}
      \indexentry{Kelsen, Hans@Kelsen, Hans}{iii}
      \indexentry{Geraci, Carmelo@Geraci, Carmelo}{iii}`
      È del tutto evidente che ci sono due diversi “Kelsen, Hans”, almeno agli occhi di MakeIndex. Il primo è il tuo [tt]\index[nomi]{Kelsen, Hans}[/tt] esplicito. Difficile andare a pescare nelle macro di biblatex dove viene aggiunta la parte dopo [tt]@[/tt].

      Puoi ovviare definendo un tuo comando personale che produca lo stesso codice di biblatex:
      `\makeatletter
      \newcommand\nameindex{\@dblarg\@nameindex}
      \def\@nameindex[#1]#2{\index[nomi]{\detokenize{#1}@#2}}
      \makeatother`
      che userai come [tt]\nameindex{Kelsen, Hans}[/tt] oppure [tt]\nameindex[qualcosa]{pippo}[/tt] se vuoi che “pippo” sia messo in ordine alfabetico come se fosse “qualcosa”.

      Ciao
      Enrico

    • #88494
      Up
      0
      Down
      ::

      egreg9″ post=87989
      Puoi ovviare definendo un tuo comando personale che produca lo stesso codice di biblatex:
      `\makeatletter
      \newcommand\nameindex{\@dblarg\@nameindex}
      \def\@nameindex[#1]#2{\index[nomi]{\detokenize{#1}@#2}}
      \makeatother`
      che userai come [tt]\nameindex{Kelsen, Hans}[/tt] oppure [tt]\nameindex[qualcosa]{pippo}[/tt] se vuoi che “pippo” sia messo in ordine alfabetico come se fosse “qualcosa”.

      Non ho capito come si usa. Ho provato a usare \nameindex[nomi]{Kelsen, Hans} ma ciò che ottengo è solo che la voce generata a mano va a finire alla lettera dopo (sic!), mentre quelle automatiche restano dove sono.
      Cosa mi sono perso? 😕 😕

    • #88495
      Up
      0
      Down
      ::


      Aggiorno: funziona correttamente omettendo il nome dell’indice tra parentesi quadre.

      Ma domanda: se avessi un indice di default e altri indici funzionerebbe lo stesso o dovrei cambiare qualcosa?

    • #88496
      Up
      0
      Down
      ::

      Teodoro Studita” post=87998Aggiorno: funziona correttamente omettendo il nome dell’indice tra parentesi quadre.

      Ma domanda: se avessi un indice di default e altri indici funzionerebbe lo stesso o dovrei cambiare qualcosa?

      Il problema mi sembra solo per l’indice dei nomi.

      Ciao
      Enrico

    • #88497
      Up
      0
      Down
      ::


      E va bene, ma nel caso mi basterebbe cambiare la parte evidenziata nel codice?

      \makeatletter
      \newcommand\nameindex{\@dblarg\@nameindex}
      \def\@nameindex[#1]#2{\index[nomi]{\detokenize{#1}@#2}}
      \makeatother

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

Go to top