Compatibilità imakeidx e idxlayout

  • Creatore
    Topic
  • #105448
    Up
    0
    Down
    ::


    Buongiorno a tutti,

    dovendo creare un lungo indice dei titoli di opere antiche (e quindi titoli molto lunghi), avrei bisogno di modificare il layout degli indici, in particolare giustificare le entry più lunghe di una riga e ridurre il rientro della seconda riga e seguenti.
    Il pacchetto idxlayout farebbe al mio caso, purtroppo però mi sembra che entri in conflitto con imakeidx:

    `\documentclass[12pt,a4paper,twoside]{book}
    \usepackage[T1]{fontenc}
    \usepackage{fontspec,polyglossia}
    \usepackage{lipsum}
    \setmainlanguage{italian}

    \usepackage{imakeidx}
    \usepackage{idxlayout}
    \usepackage[hyperindex=false]{hyperref}
    \makeindex[columns=2]
    \makeindex[name=titoli,columns=1]

    \begin{document}

    \index[titoli]{Dialogo della santa oratione, ripieno di pie, dotte, bellissime, \& utilissime sentenze. Ove s'insegna sommariamente la differenza,
    ch'è fra l'oratione mentale, \& la vocale, \& che cosa siano ambedue essentialmente. Col vero modo d'orare al Signor Dio, \& invocar per intercessori i santi}

    \index{Cognome, Nome}
    \index{Rossi, Caio}
    \index{Rossi, Mario}
    \index{Neri, Alberto}
    \lipsum

    \printindex[titoli]
    \cleardoublepage
    \printindex

    \end{document}

    `

    In questo esempio la chiamata di idxlayout ignora l’opzione “columns=1” dell’indice dei titoli; viceversa se inserisco “columns=1” tra le opzioni di idxlayout, allora avrò tutti gli indici su una colonna, cosa che non desidero.

    Grazie a tutti in anticipo e a presto,
    Matteo

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #105449
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Dunque vuoi fare due indici analitici, uno a due colonne e l’altro a una colonna.
        Però entrambi hanno lo stesso titolo; può andare che quello a due colonne abbia il titolo “indice analitico”, ma che anche l’altro abbia lo stesso titolo mi pare una scelta errata; io aggiungerei nella specificazione di questo indice almeno anche l’opzione title=Titoli delle opere, o quel che credi più opportuno.
        Inoltre per entrambi specificherei uno stile di composizione mediante appositi file ids, e li specificherei con options={-s stile.ids} ovviamente sostituendo la stringa “stile” con due nomi diversi.
        Lo stile per l’indice analitico generale potrebbe essere quello di default e quindi non necessiterebbe di essere specificata l’opzione options=…;
        Ma quello dei titoli richiede uno stile ad hoc.
        Come farlo? La documentazione di imakeidx lo spiega con un esempio; se vuoi una spiegazione più ampia leggi da terminale il documento ind.pdf (terminale: \texdoc ind).

        Invece la documentazione di imakeidx spiega a pagina 13 che idxlayout e imakeidx sono quasi compatibili e che il primo va caricato dopo il secondo, come hai fatto tu. Ma dice anche, sostanzialmente, che quasi tuto quello che si può fra con idxlayout, lo si può fare con imakeidx. Ma, attento, idx può mettere le mani sull’ambiente index, che è quello usato nella effettiva compilazione di ogni indice, ma non può cambiare alcuni comandi che nelle classi latex sono definite a parte; quindi per certe cose bisogna ridefinire o assegnare altri valori a grandezze che si trovano nella classe; senza saper e se tu usi book anche per il tuo documento oppure l’ahi segnalato solo perché hai composto un esempio minimo compilabile, è difficile direti che cosa ridefinre o riassegnare ad alcuni di questi parametri per ridurre il rientro delle righe dalla seconda in poi.

      • #105450
        Up
        0
        Down
        ::


        Grazie per la risposta!
        Forse mi sfugge qualcosa, ma i miei due indici non hanno lo stesso titolo: il primo non ha nome, il secondo ha l’opzione “name=titoli” e il comando per stamparlo è dunque “\printindex[titoli]”; sbaglio qualcosa qui?

        In ogni caso, si potrebbe creare un file ids, ma temo di non averne le competenze e quindi sarei ricorso al pacchetto idxlayout per ovviare a ciò. Ad ogni modo, utilizzo anche per il documento la classe book (ma su carta B5 e con una diversa geometria di pagina) e vorrei che nell’indice dei titoli il rientro della seconda riga fosse minore e che il testo delle entry (quasi tutte più lunghe di una riga) fosse giustificato.

        Grazie in anticipo,
        Matteo

      • #105451
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Non confondere i nomi degli indici (nomi dei file .idx e .ind, con i titoli degli indici; I titoli sono quelli che vengono stampati nella prima pagia di ciascun indice, prima dell’eventuale preambolo all’indice vero e proprio.
          Ti suggerirei`\renewcommand\@idxitem{\par\hangindent 10pt}% regola il valore di 10pt al valore che preferisci; 10pt sono poco più di 3mm
          \makeindex[columns=2]% per l'indice generico che avrà i ttolo di default contenuto in \indexname
          \makeindex[name=titoli,columns=1,title=Titoli delle opere consultate]% cambia il testo del title a tuo gradimento`

          Non so se i titoli lunghi più di due righe siano giustificati a destra, forse sì, forse no; se non lo fossero, fammelo sapere che cerco di trovare qual è l’impostazione da modificare.

        • #105452
          Up
          0
          Down
          ::


          Ora ho capito la questione: nel file completo ho messo dei titoli coerenti ai diversi indici, qui ho fatto solo un esempio minimale, ma grazie per il caveat.
          Ora, il tuo codice ovviamente funziona, ma modifica il rientro della seconda riga delle entry di tutti gli indici; poco male, visto che il problema maggiore era vedere un rientro importante nell’indice dei titoli, ma temo non sia possibile impostare un diverso rientro per indici diversi.

          La questione invece maggiore riguarda la giutificazione: purtroppo i titoli di più di due righe sono la totalità (e sono 349…) e dovrei proprio giustificare il testo degli indici.

          Grazie ancora,
          Matteo

        • #105453
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Esamina il seguente esempio minimo compilable, dove ho inserito i ocmandi del mio precedente messaggio più un ulteriore comando \xpatchcmd definito dal pacchetto xpatch che è già stato caricato da imakeidx.`% !TEX TS-program = XeLaTeX
            \documentclass[12pt,a4paper,twoside]{book}
            \usepackage[T1]{fontenc}
            \usepackage{fontspec,polyglossia}
            \usepackage{lipsum}
            \setmainlanguage{italian}

            \usepackage{imakeidx}
            %\usepackage{idxlayout}
            \usepackage[hyperindex=false]{hyperref}
            \makeatletter
            \renewcommand\@idxitem{\par\hangindent 10pt}% regola il valore di 10pt al valore che preferisci; 10pt sono poco più di 3mm
            \makeindex[columns=2]% per l'indice generico che avrà i ttolo di default contenuto in \indexname
            \makeindex[name=titoli,columns=1,title=Titoli delle opere consultate]% cambia il testo del title a tuo gradimento
            \xpatchcmd{\theindex}{\raggedright}{\relax}{}{}
            \begin{document}

            \index[titoli]{Dialogo della santa oratione, ripieno di pie, dotte, bellissime, \& utilissime sentenze. Ove s'insegna sommariamente la differenza,
            ch'è fra l'oratione mentale, \& la vocale, \& che cosa siano ambedue essentialmente. Col vero modo d'orare al Signor Dio, \& invocar per intercessori i santi}

            \index{Cognome, Nome}
            \index{Rossi, Caio}
            \index{Rossi, Mario}
            \index{Neri, Alberto}
            \lipsum

            \printindex[titoli]
            %\cleardoublepage
            \printindex

            \end{document}`
            Devo dire che nell’indice “titoli” io vedrei meglio il o i numeri delle pagine a fine riga, ma questo richiede un piccolissimo file .ist e una piccolissima definizione in più. Se le vuoi dimmelo. Se invece ti va bene così sei a posto. Certo che ora con l’esempio minimo compilabile con le pagine indicizzate che valgono 1, la cosa sta male , ma se i numeri sono di almeno due cifre, non c’è pericolo di confusione.

          • #105454
            Up
            0
            Down
            ::


            Grazie mille!
            Ora non posso testare il codice, ma al più tardi lunedì farò le prove del caso .

            Buon fine settimana,
            Matteo

          • #105455
            Up
            0
            Down
            ::


            Buongiorno,

            ho testato il codice, sia sul file di prova, sia sul progetto vero e proprio: funziona egregiamente!

            OldClaudio” post=105508
            Devo dire che nell’indice “titoli” io vedrei meglio il o i numeri delle pagine a fine riga, ma questo richiede un piccolissimo file .ist e una piccolissima definizione in più. Se le vuoi dimmelo. Se invece ti va bene così sei a posto. Certo che ora con l’esempio minimo compilabile con le pagine indicizzate che valgono 1, la cosa sta male , ma se i numeri sono di almeno due cifre, non c’è pericolo di confusione.

            Ti ringrazio per la proposta, che acccetto molto volentieri! Nel file di stile vorrei anche che in tutti gli indici i lemmi non fossero separati dai riferimenti con una virgola, ma da un semplice spazio (immagino che occorra precisare: delim_1 ” “).

            A presto,
            Matteo

          • #105456
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Copia e salva questo esempio minimo compatibile; esso contiene il file teomat.ist; dopo aver compilato, copia questo file nella cartella del tuo documento, ma intanto esamina le cose che ho modificato nel main file .tex.
              `\begin{filecontents*}{teomat.ist
              headings_flag 0
              heading_prefix “s”
              heading_suffix “”
              symhead_positive “Simboli”
              symhead_negative “simboli”
              numhead_positive “Numeri”
              numhead_negative “numeri”
              delim_0 “\\indexeol”
              \end{filecontents*}

              \documentclass[12pt,a4paper,twoside]{book}
              \usepackage[T1]{fontenc}
              \usepackage{fontspec,polyglossia}
              \usepackage{lipsum}
              \setmainlanguage{italian}

              \usepackage{imakeidx}
              %\usepackage{idxlayout}
              \usepackage[hyperindex=false]{hyperref}
              \makeatletter
              \renewcommand\@idxitem{\par\hangindent 10pt}% regola il valore di 10pt al valore che preferisci; 10pt sono poco più di 3mm
              \newcommand*\indexeol{\hspace{1em}\null\space\hfill}
              \makeindex[options=-s teomat,columns=2]% per l'indice generico che avrà i ttolo di default contenuto in \indexname
              \makeindex[name=titoli,options=-s teomat,columns=1,title=Titoli delle opere consultate]% cambia il testo del title a tuo gradimento
              \xpatchcmd{\theindex}{\raggedright}{\relax}{}{}
              \begin{document}
              \setcounter{page}{10}
              \index[titoli]{Dialogo della santa oratione, ripieno di pie, dotte, bellissime, \& utilissime sentenze. Ove s'insegna sommariamente la differenza,
              ch'è fra l'oratione mentale, \& la vocale, \& che cosa siano ambedue essentialmente. Col vero modo d'orare al Signor Dio, \& invocar per intercessori i santi del Paradiso}
              \index[titoli]{Dialogo della santa oratione, ripieno di pie, dotte, bellissime, \& utilissime sentenze. Ove s'insegna sommariamente la differenza,
              ch'è fra l'oratione mentale, \& la vocale, \& che cosa siano ambedue essentialmente. Col vero modo d'orare al Signor Dio, \& invocar per intercessori i santi}

              \index{Cognome, Nome}
              \index{Rossi, Caio}
              \index{Rossi, Mario}
              \index{Neri, Alberto}
              \lipsum

              \printindex[titoli]
              %\cleardoublepage
              \printindex

              \end{document}`

            • #105457
              Up
              0
              Down
              ::


              Grazie davvero: ora credo di aver capito le regole del gioco!
              A presto,

              Matteo

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

          Go to top