[Aiuto] Makeindex

  • Creatore
    Topic
  • #54360
    Up
    0
    Down
    ::


    Ciao ragazzi, stavo provando a generare un indice analitico, ma non funziona. Per ora non vi metto codice perché ritengo sia un problema più concettuale (se non addirittura di conflitto) Nel caso vogliate un EMC ve lo posterò subito.
    Il problema è questo, seguendo l’Arte, compilo il mio documento, si genera il file .idx. A questo punto – e suggerisco a Lorenzo, se possibile, di migliorare questa parte della guida che mi pare poco chiara – prendo il mio file .idx e lo eseguo con makeindex.exe. Si apre una shell per una frazione di secondo e non viene generato alcun .idn. Volevo provare a fare l’inverso, ma nella shell di makeindex rimane la dicitura “Scanning input file stdin…” e qualsiasi cosa inserisco resta mi compare “!! Input index error (file = stdin, line 2). — Missing argument — need two (premature LFD).
    Al che, visto che su TeXnic vi è la compilazione tramite Makeindex, ho provato anche da lì e mi restituisce sempre il seguente messaggio: “Couldn’t find index file % nor %.idx. Usage: C:\..\makeindex.exe”.
    A questo punto non so cos’altro fare, quindi vogliate voi fare luce.

    Grazie, Marco.

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


        Oh, i bei tempi quando non esistevano gli shell editor e si faceva tutto a mano!

        Scherzi a parte, non rimpiango quei tempi, ma erano tempi in cui tutti facevamo tutto dalla finestra comandi e tutti sapevamo come usarla. Sapevamo anche leggere i manuali, se c’erano, oppure studiavamo il codice direttamente, se ci riuscivamo, oppure, come estrema ratio, vergognandoci come ladri, seguivamo la procedura dell’ “ask Nelly”, cioè di chiedere al solito amico/a che ne sapeva più di noi.

        Non è più praticabile oggi. quindi bando alle nostalgie.

        Se compili un documento LaTeX che si chiama myfile.tex il nome del file senza estensione viene caricato nella variabile \jobname. Se il file contiene il comando \makeindex e uno o più comandi index{…} al suo interno, alla fine dell’esecuzione nella stessa cartella dove risiede \jobname.tex, ci saranno anche \jobname.idx e \jobname.aux e altri \jobname.qualcosaltro che non interessano.

        TeXniCenter e gli altri shell editor sanno benissimo come lanciare il programma/applicazione/eseguibile (comunque si chiami sulla particolare macchina in uso) makeindex. Ma per verificare, continua ad usare la finestra comandi:

        1) assicurati di aver cambiato cartella di default in modo che se dai il comando dir o ls, a seconda del tuo sistema operativo, nella finestra compaiano non solo il file tex che hai compilato ma anche tutti gli altri.

        2) dai il comando
        makeindex -h
        e il programma ti risponderà con un messaggio che l’opzione -h non la conosce, ma ti dà la sintassi giusta:

        Usage: makeindex [-ilqrcgLT] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 …]

        dalla quale rilevi che tutti gli argomenti sono facoltativi, ma hanno i significati seguenti:

        [-ilqrcgLT] contiene la lista completa delle opzioni di funzionamento; non me ne preoccuperei all’inizio, ma poi ti conviene leggere il manuale; sulle macchine di tipo UNIX il comando è man makeindex, sulle macchine Windows non lo so.

        [-s sty] serve per specificare un eventuale file di stile dell’indice analitico; sull’Arte se ne parla, ma è facoltativo. Normalmente questi file hanno estensione .ist.

        [-o ind] serve per specificare il nome del file di uscita; di default esso vale \jobname.ind.

        [-t log] serve per dare un nome diverso da quello di default al file di registro; di default si chiama \jobname.ilg.

        [-p num] serve per specificare la pagina eventuale da impostare nel contatore di pagina; di default non imposta niente.

        [idxo ….] serve per specificare i nomi dei file idx da elaborare, caso mai ce ne fossero più di uno da concatenare assieme come se fosse un unico file. Uno però bisogna specificarlo senza specificare l’estensione se è quella di default .idx

        3) Normalmente, quindi, TeXnicCenter specifica solo il nome del tuo file \jobname, ma bene inteso,\jobname è solo un simbolo, non è il valore da scrivere nel comando; per il tuo file myfile.tex devi elaborare il file myfile.idx e, con tutto il resto di default, devi specificare solamente:

        makeindex myfile

        Tutto qui.

        Se questo non funziona dando i comandi a mano, o il tuo file myfile.idx non esiste, oppure è corrotto, oppure… invoca gli dèi dell’informatica che ti mandino un volo di uccelli perché il tuo aruspice possa divinare l’ignoto 🙂

        Ma se funziona, funziona anche cliccando l’apposito bottone del tuo shell editor senza bisogno che tu specifichi niente, basta solo che il tuo shell editor conosca il nome del tuo main file (il root file) oppure che sia aperta la finestra del file principale myfile.tex.

        Se tutto questo non ti serve a risolvere il problema, facci sapere di più con l’EMC

      • #54362
        lorenzo.pantieri
        Partecipante
          Up
          0
          Down
          ::

          Il problema è questo, seguendo l’Arte, compilo il mio documento, si genera il file .idx. A questo punto – e suggerisco a Lorenzo, se possibile, di migliorare questa parte della guida che mi pare poco chiara – prendo il mio file .idx e lo eseguo con makeindex.exe.

          Cito dall’Arte.

          Per generare l’indice analitico, questa è la sequenza di compilazione da seguire:
          1. si compila con LaTeX una prima volta;
          2. si compila con il programma MakeIndex cliccando l’apposito pulsante dell’editor o, dalla riga di comando, portandosi nella cartella di lavoro ed eseguendo makeindex , senza l’estensione .tex;
          3. si compila altre due volte con LaTeX.

          A me sembra chiaro: per compilare con Makeindex si clicca l’apposito pulsante dell’editor (scelta consigliata); oppure, se preferisci la riga di comando, devi portarti nella cartella di lavoro (si assume che tu sappia come farlo, se usi la CLI) e dai il comando indicato.

          Prova a dirmi che cosa non ti è chiaro.

          Ciao,
          L.

        • #54363
          Up
          0
          Down
          ::


          In effetti alla fine ho risolto da CLI, poiché ho trovato più immediato questo sistema che altri. Ciò, Lorenzo, dimostra che sappia muovermi un po’ nella shell, ma dall’Arte – per la quale io ho profonda ammirazione nei tuoi confronti – non sono riuscito a desumere come farlo funzionare.
          Infatti, almeno per quanto riguarda il mio caso, solo portando il file fuori dalla cartella di lavoro sono riuscito a far funzionare makeindex. Non so se dipende dal nome file.

          Grazie per le risposte chiarificatrici, a presto. Marco.

        • #54364
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::

            Infatti, almeno per quanto riguarda il mio caso, solo portando il file fuori dalla cartella di lavoro sono riuscito a far funzionare makeindex. Non so se dipende dal nome file.

            Continuo a non capire. Hai un file .tex, diciamo pippo.tex, contenuto in una cartella, diciamo pluto; pluto è la cartella di lavoro. Vai in pluto e scrivi makeindex pippo.

            Non è che il nome del tuo file .tex contiene spazi?

            Ciao,
            L.

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

        Go to top