Indice

  • Creatore
    Topic
  • #109146
    Up
    0
    Down
    ::


    Ho disperatamente bisogno di aiuto con l’indice analitico!

    Voglio personalizzarlo (uso il pacchetto imakeidx) in modo da avere due colonne, le lettere alfabetiche maiuscole in grassetto prima in cima a ogni gruppo e diviso in due colonne, con i puntini a destra della parola e poi il numero della pagina.

    Inoltre stavo anche provando a creare il collegamento ipertestuale con la pagina, ma nemmeno quello funziona.
    Per quanto riguarda il risultato, ottengo si due colonne, i puntini e il numero a destra, ma le lettere alfabetiche non ci sono.

    Il codice tex che uso è
    `
    \usepackage{imakeidx}
    \makeindex[program=makeindex,columns=2,intoc=true,options={-s index_style.ist}]
    \usepackage[unicode,colorlinks,plainpages=false,hyperindex=true,pdfpagelabels]{hyperref}
    `

    Il file di stile .ist invece l’ho preso in rete ( perchè non ho proprio capito la sintassi da usare e come funzionano) da uno a cui dava il risultato atteso.
    Inoltre usava anche il comando \indexsetup dopo \usepackage{imakeidx}, mentre a me non riconosce proprio il comando, cosa che mi sembra strana visto che ho controllato il manuale del pacchetto e mi sembra un comando valido.
    Il file index_style.ist comunque è questo
    `
    headings_flag 1
    heading_prefix “{\\large\\sffamily\\bfseries ”
    heading_suffix “}\\nopagebreak\n”
    delim_0 ” \\dotfill ”
    delim_1 ” \\dotfill ”
    delim_2 ” \\dotfill ”
    `

    Cosa sbaglio? ovviamente compilo una volta, compilo con Makeindex e ricompilo due volte.

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #109147
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::



        @Fedebeats
        , se usi imakeidx NON devi usare il comando Makeindex; comunque non devi specificarglielo con program= perché è il suo motore di default.
        Nella impostazione del comando \makeindex[…] devi anche inserire il nome dello stile .ist che vuoi usare.
        Come? Leggendo la documentazione di imakeidx: terminale, comando texdoc imakeidx, tasto “Invio”, lettura. Vi è indicato anche come comporre in file personalizzato .ist; quello che usi tu secondo me ha un contenuto corretto, ma il suo nome contiene il segno _ della barra ribassata, che di solito non è valido per i programmi del sistema TeX.

        L’installazione del tuo sistema TeX deve essere recente e abilitata allo shell-escape protetto. Mi pare di ricordare che MiKTeX non abiliti lo shell-escape né protetto né non protetto, quindi all’occorrenza devi compilare da terminale.
        Oppure devi lasciar perdere MiKTeX e installare TeXLive, che queste cose el fa tranquillamente.

      • #109148
        Up
        0
        Down
        ::



        @OldClaudio
        intanto grazie per la risposta.
        Purtroppo avevo letto il manuale di imakeidx, ma molte cose non riesco a capirle, non essendo un esperto di LateX, e di programmazione in generale! 😳
        Vado con ordine:

        • Non ho capito quando mi hai detto di inserire il nome del file di “stile.ist” nel comando \makeindex; non è già correttamente inserito nell’opzione : options={-s indexstyle.ist} ?
        • Ho rinominato il file, togliendo il trattino basso, che come dici tu non piaceva molto al mio TeX
        • [\li] Sul fatto dello shell-escape avevo appunto letto nel manuale di imakeidx, ma non ho proprio idea di cosa si tratti, perdonatemi! Lì accenna appunto, nel caso si usi MikTex come me, ad usare -enable-write-18…mi sapreste aiutare un attimo con queste cose a me ignote? cosa devo scrivere nel terminale? premesso che uso il “comodissimo” Windows 🙂 [\li]
          [\li] in quanto al comando che do \indexsetup{othercode=\small} continua a non riconoscermi indexsetup (il mio editor lo evidenzia in rosso)n tuttavia funziona correttamente, riducendo i caratteri a \small. Ah, dimenticavo, il tutto compila correttamente, solo non riesco a scrivere il file di stile .ist in modo corretto per fare quello che desidero. [\li]
          [\li]ora il comando per i collegamenti ipertestuali funziona, usando
          ` \usepackage[unicode,colorlinks,plainpages=false,hyperindex=true,pdfpagelabels]{hyperref}`
          e sono di colore rosso. Ora, scusate la banalità, ma esiste un modo (sicuramente stupidissimo) di farli di colore blu? Ho provato a naso colorlinks=blue, ma li riquadretta di rosso [\li]
          [\li] Nel concreto il mio problema è quello di scrivere il file.ist:
          çOldClaudio, nel manuale io ho trovato questo esempio
          ` headings_flag 1
          heading_prefix “\\par\\penalty-50\\textbf{”
          heading_suffix “}\\\\\*\~\\\\\*”
          symhead_positive “Symbols”
          symhead_negative “symbols”
          numhead_positive “Numbers”
          numhead_negative “numbers”
          delim_0 “,\~”`
          che fa le lettere alfabetiche dell’ indice in grassetto, come voglio io, ma poi fa altre cose diverse
          Invece l’altro esempio che ho postato prima non fa le lettere alfabetiche dell’indice, mentre il resto è ok..
          Ora io sto provando ad unire i due…qualche suggerimento su come fare? Al momento mi trovo in alto mare 🙂 [\li]

      • #109149
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Allora prepara un esempio minimo compilabile seondo lo schema seguente`\begin{filecontents*}{indexstyle.ids}

          \end{filecontents*}
          % quell'ambiente prima di \begin{document non è un errore!
          \documentclass[…]{…}
          % il minimo di preambolo necessario
          \usepackage{imakeidx}
          \makeindex[…]

          \begin{document}
          % un testo privo di senso con alcune parole da inviare all'indice
          % e che si svolga su almeno due pagine

          \printindex
          \end{document}`

          Crea questo esempio in una cartella creata apposta e che sia inizialmente vuota; compilalo e verifica che si manifeestino gli errori che dici o non si compongano le cose come vuoi tu.

          Allegalo al tuo prossimo messaggio e poi io e chiunque altro voglia cimentarsi ti cercherà la soluzione.

          Intanto non hai specificato se stai usando una distribuzione del sistema TeX col nome di TeXLive o MiKTeX; non hai specificato se è una installazione completa. Non hai mostrato le prime 10 righe del tuo file .log; non hai specificato quale editor usi.
          Certo non ne hai colpa, perché sei alle prime armi, ma queste cose, comporeso l’esempio minimo compilabile, sono sempre necessarie.

          Per esempio nelle prime poche righe del file .log c’è scritto il nome del programma che stai usando, di quale distribuzione del sistema TeX, e se lo shell-escape è attivato e in quale modo.

          Certo che se non conosci bene il tuo calcolatore, e in particolare non sai che cosa vuol dire “shell-escape”, è difficile poter usare correttamente il calcolatore.

          Nella fattispecie del tuo editor e della tua installazione, l’opzione shell-escape (equivalente all’opzione write18 di MiKTeX) permette di dire al programma in esecuzione: “auto-sospenditi ed invia questo comado al sistema operativo, e, quando il sistema operativo ha finito l’elaborazione che te lo dica affinché tu possa riprendere il tuo lavoro”.

          Nella fattispecie di \printindex, questo comando definito da imakeidx, dice al programma pdflatex: “auto-sospenditi e di al sistema operativo di eseguire makeindex con le opzioni che ti ho specificato, poi quando makeindex ha finito, che ti ridia il controllo per continuare a fare quello che stavi facendo”.

          Tutto questo in informatica si chiama eseguire una shell (non chiedermi perché si invochi la metafora delle conchiglie, come abitualmente fanno i termini informatici di ricorrere alle metafore) qui la metafora non riesco a capirla, ma quello che questa parola indica è in parole povere quello che ti ho raccontato sopra.

          Aspetto l’esempio minimo compilabile

        • #109150
          Up
          0
          Down
          ::



          @OldClaudio

          innanzitutto grazie della bella ed esaustiva spiegazione.
          Ho seguito i passi indicati e provando le diverse combinazioni dei due .ist file con l’esempio minimo sono riuscito ad ottenere quello che volevo, con una cosa del tipo
          `
          headings_flag 1
          heading_prefix “{\\large\\sffamily\\bfseries ”
          heading_suffix “}\\nopagebreak\n”
          item_0 “\n \\item \\small ”
          delim_0 ” \\dotfill ”
          delim_1 ” \\dotfill ”
          delim_2 ” \\dotfill ”
          `

          Io uso una distribuzione MikTex, credo completa,ma non so.
          Comunque ora ho capito come dovrò fare per chiedere aiuto la prossima volta, quindi grazie.
          Anche la spiegazione sulla shell-escape ha reso molto l’idea.
          Grazie di tutto!

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

      Go to top