stile dell’indice analitico – makeidx

  • Creatore
    Topic
  • #52713
    v43
      Up
      0
      Down
      ::


      salve a tutti, mi presento, sono un newbie!

      dopo estese ricerche nel web e nel forum sono costretto ad arrendermi e chiedervi esplicitamente dei chiarimenti.

      il mio scopo è migliorare l’aspetto dell’indice analitico realizzato dal pacchetto makeidx.
      per quanto ho compreso dalle informazioni reperibili qui ( http://me.in-berlin.de/~miwie/tex-refs/html/makeindex-style-file.html ) le possibilità di customizzazione sono molto limitate. le impostazioni vanno raccolte in un file .sty da far chiamare al programma makeindex.exe, di modo che il file .idx che latex andrà a leggere sia costruito secondo le nostre preferenze.

      quindi mi chiedo, non esistono delle impostazioni da dare a latex per rimodellare le informazioni lette dal file dell’indice, in modo da ottenere lo stile che si preferisce?
      forse modificando l’ambiente theindex?

      per di più, non son nemmeno riuscito ad usare il file .sty che avevo preparato.
      io l’ho messo in una cartella e ho posto il percorso di questa cartella come valore della variabile di sistema INDEXSTYLE (proprio variabile del sistema operativo). il file però non viene trovato dal programma.
      uso texniccenter per editare e chiamare il compilatore. alla chiamata di makeidx ho dato come argomento “-s miostile.sty %bm”. ho provato anche senza indicare l’estensione ma niente..

      un’altro dubbio è che nella guida “artelatex” di pantieri e gordini si parla di file .ist, mentre il programma fa richiesta di file .sty quando si usa l’opzione -s.
      quel che mi ha incuriosito è che nella cartella makeindex di miktex, ci siano molte sottocartelle contenenti file .ist, che sembrerebbero atti a modificare l’aspetto dell’inidce.

      quindi, scusate se sono stato prolisso, ma come si fa??
      grazie

    Visualizzazione 9 filoni di risposte
    • Autore
      Risposte
      • #52714
        Up
        0
        Down
        ::

        salve a tutti, mi presento, sono un newbie!

        dopo estese ricerche nel web e nel forum sono costretto ad arrendermi e chiedervi esplicitamente dei chiarimenti.

        il mio scopo è migliorare l’aspetto dell’indice analitico realizzato dal pacchetto makeidx.
        per quanto ho compreso dalle informazioni reperibili qui ( http://me.in-berlin.de/~miwie/tex-refs/html/makeindex-style-file.html ) le possibilità di customizzazione sono molto limitate. le impostazioni vanno raccolte in un file .sty da far chiamare al programma makeindex.exe, di modo che il file .idx che latex andrà a leggere sia costruito secondo le nostre preferenze.

        quindi mi chiedo, non esistono delle impostazioni da dare a latex per rimodellare le informazioni lette dal file dell’indice, in modo da ottenere lo stile che si preferisce?
        forse modificando l’ambiente theindex?

        per di più, non son nemmeno riuscito ad usare il file .sty che avevo preparato.
        io l’ho messo in una cartella e ho posto il percorso di questa cartella come valore della variabile di sistema INDEXSTYLE (proprio variabile del sistema operativo). il file però non viene trovato dal programma.
        uso texniccenter per editare e chiamare il compilatore. alla chiamata di makeidx ho dato come argomento “-s miostile.sty %bm”. ho provato anche senza indicare l’estensione ma niente..

        un’altro dubbio è che nella guida “artelatex” di pantieri e gordini si parla di file .ist, mentre il programma fa richiesta di file .sty quando si usa l’opzione -s.
        quel che mi ha incuriosito è che nella cartella makeindex di miktex, ci siano molte sottocartelle contenenti file .ist, che sembrerebbero atti a modificare l’aspetto dell’inidce.

        quindi, scusate se sono stato prolisso, ma come si fa??
        grazie

        Ci sono due tipi di personalizzazioni: quelle che riguardano l’impostazione tipografica dell’indice, che si realizzano ridefinendo l’ambiente theindex, e quelle che riguardano che cosa va nell’indice. Queste ultime richiedono uno stile apposito. L’estensione tradizionale dei file per questi stili è .ist, ma non è obbligatoria. Perché makeindex lo trovi ti basta mettere il file nella stessa cartella del documento oppure impostare la variabile INDEXSTYLE in modo opportuno. Purtroppo, a quanto so, sotto Windoze non è facile far funzionare questo sistema: il valore appropriato dovrebbe essere
        `//;`
        (senza dimenticare il punto e virgola finale.

        Quali sono le modifiche che vorresti?

        Ah, benvenuto! 🙂

        Ciao
        Enrico

      • #52715
        v43
          Up
          0
          Down
          ::


          grazie per la pronta risposta!

          ho provato a correggere la variabile INDEXSTYLE e a porre un file .ist nella cartella di lavoro (dove ci sono i file tex e tutti gli altri temporanei).. ma niente!

          banalmente, vorrei che ci fosse un “capitoletto” per ogni lettera dell’alfabeto che compare nell’indice, con un certo margine tra un capitolo e l’altro. la lettera in grassetto e carattere grande a fare da “titolo”. inoltre vorrei ridurre un poco il rientro dei sottolemmi.
          per ora sono riuscito a disporre l’indice su due colonne usando il codice suggerito in “artelatex”:
          `
          \let\orgtheindex\theindex
          \let\orgendtheindex\endtheindex
          \def\theindex{\def\twocolumn{\begin{multicols}{2}}\def\onecolumn{}\clearpage\orgtheindex}
          \def\endtheindex{\end{multicols}\orgendtheindex}
          `

          ho provato a rimuovere questa modifica per verificare che non interferisse con le impostazioni date dai file .ist..
          ma sembra che il problema risieda proprio nel far trovare questi file a makeindex.exe
          il programma riporta in texniccenter:

          Expected -s Usage: C:\Program Files (x86)\MiKTeX 2.8\miktex\bin\makeindex.exe [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 …]

        • #52716
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::

            Expected -s Usage: C:\Program Files (x86)\MiKTeX 2.8\miktex\bin\makeindex.exe [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 …]

            Il nome “stile” e l’abbreviazione “sty” fanno confondere le idee.

            Per makeindex il file di stile per la composizione dell’indice (per la trasformazione del file grezzo .idx nel file alfabetizzato .ind) ha l’estensione .ist (Index STyle)..allora il comando che devi dare dopo aver costruito il file miostile.ist seguendo le indicazioni di classic.ist che trovi sull’Arte, è:
            `
            makeindex -s miostile.ist miofile
            `
            dove miofile.idx (non mettere l’estensione) è il file prodotto da latex o pdflatex mentre compili miofile.tex per ottenere il file composto nel formato dvi o pdf rispettivamente.

            Le altre opzioni che la riga “Usage:…” sopra scritta ti propone sono opzioni certamente usabili, ma così raramente che io non ne ho mai avuto bisogno.

            Il problema è che NON puoi usare texniccenter per eseguire il comando che ti ho indicato sopra; nel senso che non puoi cliccare il bottone di texniccenter per lanciare makeindex con l’opzione -s e il nome del file di stile.

            DEVI per forza dare quel comando dalla finestra comandI; so che non è una finestra molto “popolare” fra gli utenti di Windows, ma questi utenti non sanno quanto lavoro possono fare con i comandi in linea e la sintassi del vecchio DOS emulati dentro la finestra comandi; se non l’hai mai usata, vai in Avvio poi Accessori poi Finestra comandi; oppure vai in Avvio poi clicchi Esegui e nella finestrina ci scrivi cmd. Ti si apre una finestra con lo sfondo nero dove a seconda del sistema operativo che usi può esserci scritta una stringa col nome di una cartella seguita dal segno > seguito da una lineetta lampeggiante. Questo è il cursore che ti indica a che punto sei per scrivere quello che stati scrivendo. Con il comando cd seguito da un percorso puoi cambiare cartella; ti consiglio di andare nella cartella del tuo file miofile.tex, per esempio con
            `
            cd C:\MieiDocumentiLaTeX\Tesi\
            `
            se il tuo documento è nella cartella puntata da quel percorso che ho scritto sopra; dopo aver premuto invio, la stringa che compare prima delle lineetta lampeggiante dovrebbe cambiare proprio nel percorso che tu hai scritto; nella stessa maniera dai ora il comando dir seguito da invio e dovrebbe presentarsi la lista di tutti i file contenuti in quella cartella, compreso il miofile.tex e il miofile.idx

            A questo punto scrivi il comando makeindex seguito dalla opzione -s e dal nome con estensione del tuo file di stile miofile.ist e il nome senza estensione del file miofile.idx; dopo aver premuto invio, sullo schermo appaiono le informazioni che makeindex scrive durante l’esecuzione. Se tutto va a buon fine ridando il comando dir + invio, ora la lista dei file contiene anche i file miofile.ind e miofile.ilg (quest’ultimo è il file .log di makeindex dove riappaiono le informazioni che questo ha scritto anche sullo schermo). Ma il file miofile.ind è quello che serve ad una successiva esecuzione di latex o pdflatex per generare l’indice formattato su una o su due colonne a seconda di come è definito o ridefinito l’ambiente theindex e a seconda delle istruzioni che makeindex ha trovato nel tuo file .ist.

            Qualcuno giorni fa ha proposto di modificare la configurazione di texniccenter, o di texmake,r o di quel che sia, per inserire permanentemente l’opzione -s e il nome del file di stile per gli indici analitici direttamente nella configurazione del bottone per la creazione dell’indice analitico. A me non sembra una buona idea, perché la volta che vuoi usare lo stile di default o un altro stile devi modificare la configurazione del tuo editor. Tuttavia ognuno è libero di fare come vuole, e se vuole seguire un consiglio altrui è liberissimo di farlo o di non farlo.

            Una ulteriore alternativa è quella di usare il pacchetto imakeidx, di leggerne la documentazione, e di procedere come indicato; tutto il lavoro che ti ho detto di fare sopra viene eseguito dietro le quinte da latex o pdflatex. Questa è la strada che io seguo sempre (anche perché insieme ad Enrico abbiamo scritto il pacchetto imakeidx 8) ). Siccome tu usi ancora MiKTeX 2.8, devi esplicitamente abilitare l’opzione –enable-write18. Se invece ti aggiorni a MiKTeX 2,9 oppure se installi TeX Live 2010 (te lo consiglio) non devi fare assolutamente nulla, perché questo fatidico write18 è già abilitato fin dalla prima installazione del sistema TeX.

            Spero non non essere stato troppo confuso nello spiegare il da farsi e le alternative

          • #52717
            v43
              Up
              0
              Down
              ::


              grazie mille per la guida superdettagliata! ci son riuscito!! ora si tratta solo di trovare le impostazioni più appropriate per il file .ist

              fortunamente ho abbastanza dimestichezza con la linea di comando.. ma sarebbe molto più efficiente riuscire a lanciare correttamente il comando da texniccenter! tant’è che per modificare l’opzione ci vogliono 10 secondi..
              dato che invece il numero di volte che devo ricompilare (tra biblatex, hyperref, makeidx etc) non si conta 🙄 (almeno 3 volte, credo), facendo tutto da linea di comando ci vuole una vita! mi farò uno script di windows…

              non ero a conoscenza del pacchetto imakeidx! sto leggendo la documentazione

              grazie mille!!

            • #52718
              v43
                Up
                0
                Down
                ::


                ma imakeidx è un pacchetto meraviglioso!!! apprezzo e ringrazio!

                mi rimangono due domande:

                1. come faccio a formattare le lettre “flag”?
                mi piacerebbe poter applicare qualcosa come \Large\textbf
                e vorrei modificare il rientro per i sottolemmi

                2. perchè la pagina in cui viene stampato l’indice non mostra la testatina che ho definito con fancyhdr?
                (ho rimosso le modifiche all’ambiente \theindex, non più necessarie grazie a imakeidx. pensavo fossero quelle a causare l’anomalia)
                ho configurato imakeidx così:
                `
                \makeindex[intoc,columns=2,options=-s test]
                \indexsetup{noclearpage,headers={\indexname}{\thepage}}
                `
                e anche usando l’opzione headers, la testatina non c’è
                per la cronaca, queste son le impostazioni di fancyhdr:
                `
                \pagestyle{fancy}

                \fancyhead{} % cancella tutti i campi
                \fancyfoot{}

                \lhead{\footnotesize\leftmark}
                \rhead{\small\thepage}

                \renewcommand{\headrulewidth}{0.2pt}
                `

              • #52719
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Ti invio il codice che ho usato io per un mio file .ist
                  `
                  headings_flag 1
                  heading_prefix “\\par\\penalty-50\\textbf{”
                  heading_suffix “}\\\\\*\~\\\\\*”
                  symhead_positive “Simboli”
                  symhead_negative “simboli”
                  numhead_positive “Numeri”
                  numhead_negative “numeri”
                  delim_0 “,\~”
                  `

                  Questo risponde alla tua prima domanda, ma sono sicuro che cose simili c’erano anche sull’Arte.
                  Se vuoi le lettere \Large aggiungi \\Large (con due backslash tra { e ” nell’heading_prefix; ma pensa ci bene e dopo una prova o due vedrai che senza \Large è meglio.

                  I rientri delle sottovoci si modificano cambiando la definizione di theindex. Guarda nell’Introduzione qui sopra, orientandoti sia con l’indice generale sia con i sei indici analitici.

                • #52720
                  v43
                    Up
                    0
                    Down
                    ::


                    grazie per l’aiuto! ora ho capito come funzionano effettivamente i file .ist

                    però purtroppo c’è qualcosa che non va.. compilando automaticamente da texniccenter ricevo questo avviso:

                    se però eseguo un’ulteriore compilazione da riga di comando, non cambia nulla.

                    questo è il risultato per l’ultima pagina del breve scritto che sto usando per i test:
                    http://i56.tinypic.com/2s9ek1s.gif

                    lo stile dell’indice non varia. manca la testatina, il numero di pagina è riportato in basso, come da standard, mentre io avevo stabilito che il piede deve esser vuoto.

                    OT:
                    uno sfogo personale dopo una domenica passata a smadonnare: il problema di questo software, se mi posso permettere, sta proprio nella difficoltà di trovare i problemi (almeno per un utente inesperto) viste la povertà e l’imprecisione dei messaggi d’errore. pure la documentazione online scarseggia, appena si superano i problemi più comuni. è frustrante.

                  • #52721
                    Up
                    0
                    Down
                    ::

                    grazie per l’aiuto! ora ho capito come funzionano effettivamente i file .ist

                    però purtroppo c’è qualcosa che non va.. compilando automaticamente da texniccenter ricevo questo avviso:

                    se però eseguo un’ulteriore compilazione da riga di comando, non cambia nulla.

                    questo è il risultato per l’ultima pagina del breve scritto che sto usando per i test:
                    http://i56.tinypic.com/2s9ek1s.gif

                    lo stile dell’indice non varia. manca la testatina, il numero di pagina è riportato in basso, come da standard, mentre io avevo stabilito che il piede deve esser vuoto.

                    OT:
                    uno sfogo personale dopo una domenica passata a smadonnare: il problema di questo software, se mi posso permettere, sta proprio nella difficoltà di trovare i problemi (almeno per un utente inesperto) viste la povertà e l’imprecisione dei messaggi d’errore. pure la documentazione online scarseggia, appena si superano i problemi più comuni. è frustrante.

                    Il pacchetto imakeidx è pensato per la TeX Live 2010; nel caso non la si usi e non si abiliti la “shell-escape” durante la compilazione, esce quel messaggio finale.

                    Cerco di chiarire meglio. Puoi essere in una di queste tre situazioni:

                    (1) TeX Live 2010: a ogni compilazione viene eseguito makeindex senza bisogno di altri interventi.

                    (2) Altra distribuzione (TeX Live <2010 o MiKTeX), compilazione lanciata senza dare opzioni particolari: non viene eseguito makeindex automaticamente; il pacchetto avvisa.

                    (3) Altra distribuzione (TeX Live <2010 o MiKTeX), compilazione lanciata con l’opzione -shell-escape (o -enable-write18 per MiKTeX): a ogni compilazione viene eseguito makeindex.

                    Suii’OT non mi pronuncio, ma mi pare esagerato.

                    Ciao
                    Enrico

                  • #52722
                    v43
                      Up
                      0
                      Down
                      ::


                      ho provato texlive 2010 ma oltre a non risolvere il mio problemino con makeindex, non funzionava più nemmeno bibtex… ne con texniccenter ne con texworks.

                      ho installato miktex 2.9, ed è tutto ok. il problema con makeindex dipendeva dall’ordine di compilazione dato dagli editor.. probabilmente non gestiscono bene i comandi dati da imakeindex.. boh

                      ho risolto con questo batch script per la compilazione, che magari può tornare utile anche ad altri utenti windows

                      `
                      @echo off

                      REM definisci le variabili
                      REM *****************************************
                      REM nome del file tex da compilare, senza estensione
                      set file=file-lavoro

                      REM percorso della cartella di lavoro
                      REM set path=

                      REM nome del file di stile per l'indice analitico, con estensione .ist
                      set stile=stile-indice.ist

                      REM *****************************************

                      echo Rifare da zero? (x/n)
                      set novo=
                      set /P novo=
                      if “%novo%”==”n” goto build

                      call :subpdflatex
                      call :submakeindex
                      call :subbibtex

                      :build
                      call :subpdflatex
                      call :subpdflatex

                      echo Vedere il file? (x/n)
                      set pdf=
                      set /P pdf=
                      if “%pdf%”==”n” exit

                      call :subpdf
                      exit

                      :subpdflatex
                      start “” /d “C:\Documents and Settings\v1\Documenti\My Dropbox\TESI\testo” /b /wait pdflatex %file%
                      goto :EOF

                      :subbibtex
                      start “” /d “C:\Documents and Settings\v1\Documenti\My Dropbox\TESI\testo” /b /wait bibtex %file%
                      goto :EOF

                      :submakeindex
                      start “” /d “C:\Documents and Settings\v1\Documenti\My Dropbox\TESI\testo” /b /wait makeindex -s %stile% %file%
                      goto :EOF

                      :subpdf
                      start “” /d “C:\Documents and Settings\v1\Documenti\My Dropbox\TESI\testo” /max %file%.pdf
                      goto :EOF
                      `

                      naturalmente il percorso indicato nelle subroutines va cambiato con quello della propria cartella di lavoro (non son riuscito a definirlo come una variabile perchè c’è un po’ di confusione con gli apici..)

                      finalmente è tutto ok.. o quasi

                      OT
                      il pacchetto microtype riporta alcuni warning di tipo “unknown slot number of character”

                      quelle sono stringhe di codice che credo faccian parte del pacchetto microtype. io che c’entro? come al solito, non capisco che lingua parli questo compilatore..

                    • #52723
                      Up
                      0
                      Down
                      ::

                      il pacchetto microtype riporta alcuni warning di tipo “unknown slot number of character”

                      Avvisi innocui.

                      Sul quello che riguarda Windoze, passo. 🙂

                      Ciao
                      Enrico

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

                  Go to top