Pacchetto nomencl e makeindex

  • Creatore
    Topic
  • #99966
    Up
    0
    Down
    ::


    ciao a tutti
    stavo creando la nomenclatura per la mia tesi e mi sono imbattuto nel pacchetto nomencl (aggiornato al 2005): http://ctan.mirror.garr.it/mirrors/CTAN/macros/latex/contrib/nomencl/nomencl.pdf

    prendendo l’esempio proposto nella documentazione:

    `\documentclass{article}
    \usepackage{nomencl}
    \makenomenclature
    \begin{document}
    \section*{Main equations}
    \begin{equation}
    a=\frac{N}{A}
    \end{equation}%
    \nomenclature{$a$}{The number of angels per unit area}%
    \nomenclature{$N$}{The number of angels per needle point}%
    \nomenclature{$A$}{The area of the needle point}%
    The equation $\sigma = m a$%
    \nomenclature{$\sigma$}{The total mass of angels per unit area}%
    \nomenclature{$m$}{The mass of one angel}
    follows easily.
    \printnomenclature
    \end{document}`

    ora, io sono in ambiente Windows e uso texworks e, secondo la guida bisogna compilare in pdflatex, compilare con makeindex e di nuovo con pdflatex.
    Il problema è che makeindex mi da il seguente warning:

    `Couldn't find input index file New Text Document nor New Text Document.idx.
    Usage: makeindex [-ilqrcg] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 …]
    `

    avete gia incontrato questo problema?

    grazie
    marco

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #99967
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Sei sicuro di avere dato il comando makeindex come descritto in fondo alla pagina 2 della documentazione di nomencl?

        Devi aprire un terminale, una finestra comandi, un prompt dei comandi, un xterm, comunque si chiami nel tuo PC, e dare a mano il comando descritto in quell’ultima riga della pagina 2

      • #99968
        Up
        0
        Down
        ::


        effettivamente no. Ti ringrazio.
        Domanda stupida: esiste un modo un po’ meno laborioso? non che sia complicato, ma non è il massimo della comodità.

      • #99969
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Bè quando clicchi sul bottone del tuo shell editor, lui fa andare makeindex con i comandi giusti per fare il solito indice analitico per il quale è nato. Il glossario o la nomenclatura è un indice analitico un po’ diverso e per non confondere le carte in tavola si usano estensioni diverse e file di stile diversi rispetto a quelli che si usano per gli indici analitici.
          Se vuoi puoi aggiungere un tasto al tuo shell editor che faccia proprio quello che c’è scritto in quella riga, ma la cosa, se è fattibile, è diversa da editor a editor, quindi tocca a te scoprire se si può fare e come con il tuo shell editor.
          Oppure ti crei un pacchettino di impostazioni personali che faccia uso del pacchetto imakeidx o del pacchetto indextools, e configuri il comando \makeidex e/o \pirntindex in modo che facciano quella cosa; in realtà non so se si possa fare, ma credo di sì; imakeidx e indextools lanciano il programma makeindex con le opzioni giuste mentre pdflatex sta lavorando, per cui con una sola esecuzione di pdflatex ottieni il documento composto con gli indici analitici e la nomenclatura già fatti. Prima che esistessero quei pacchetti mi ero definito un paio di comandi che mi permettevano di ottenere il risultato in modo molto artigianale; ho scritto un articolo per ArsTeXnica (che puoi trovare nella sezione di ArsTeXnica di questo sito) diversi anni fa a proposito dell’uso del comando \write18, e indicavo come usare quel comando per ottenere gli indici analitici in modo sincrono; poi Enrico ha creato il pacchetto imakeidx che fa il tutto in modo molto più professionale. Ma quei comandi artigianali sono lì e possono essere adattati all’uso della composizione della nomenclatura.

        • #99970
          Up
          0
          Down
          ::


          chiaro e preciso.

          grazie

          Marco

        • #99971
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Siccome non uso più Windows da circa 9 anni, i miei ricordi sono fumosi, ma non del tutto assenti.

            Con Windows hai una ulteriore possibilità, che gli utenti di Linux e Mac usano abbastanza spesso con i loro script bash e simili. Ma anche Windows dispone da sempre, dai tempi del vecchio DOS, di un linguaggio di scripting che si chiama batch; se apri il prompt dei comandi e ci scrivi dentro il comando help e lo esegui, ti vene l”elenco di tutti i comandi che puoi usare con questo linguaggio.

            Se crei un file nomenclatura.bat e lo salvi in una cartella che Windows abbia sul suo percorso di ricerca (nel prompt dei comandi esegui il comando path e sullo schermo ti appare tutta la lista delle cartelle che Windows esamina per cercare i file eseguibili; l’elenco è una sola stringa dove i vari percorsi sono separati da un punto e virgola — all’occorrenza puoi aggiungere altri percorsi eseguendo quanto indicato nell’apposita finestra di configurazione del sistema che poi vedere con il pannello comandi) puoi eseguirlo come se fosse un comando di sistema. Queste sono cose che da quando esiste Windows e le icone da cliccare si sono perse nell’uso comune degli utenti; è un peccato, perché con quei comandi si possono fare cose inimmaginabili con il mouse e le icone.

            Allora apri un editor ASCII, come il tuto shell editor che usi abitualmente per i sorgenti latex, ci scrivi dentro la riga che si trova alla fine della pagina 2 della documentazione di nomenclature nella forma seguente:
            `makeindex %1.nlo -s nomencl.ist -o %1.nls`e lo salvi con il nome suddetto: nomenclatura.bat; il nome lo puoi cambiare a tuo piacimento, ma l’estensione .bat la devi conservare. Il simbolo %1 indica simbolicamente il primo argomento che usi dopo il nome del comando (un po come #1 nelle macro di latex).

            Salvato il file, quando vuoi elaborare la nomenclatura del documento myfile.tex, nel quale hai inserito e usato tutti ci comandi descritti nella documentazione di nomenclature prima della indicazione di quella riga magica, apri il prompt dei comandi, e ci scrivi dentro`nomenclatura myfile`ed esegui il comando premendo il tasto . Dopo un breve istante nella finestra riappare il prompt per accettare un altro comando, ma a quel punto il file myfile.nls esiste già e puoi proseguire con l’ulteriore compilazione del tuo file sorgente per avere la documentazione compost.

            Questa via attraverso la procedura batch è leggermente più scomoda rispetto a quella di cliccare una icona nella barra del tuo shell editor, ma è decisamente più comoda rispetto a quella di scrivere ogni volta a mano l’intero comando nella finestra comandi, se non altro perché non commetti errori nello scrivere il comando batch con tutte le varie opzioni scritte correttamente.

            Questa è una via di mezzo fra lo scrivere tutto quanto a mano e configurare lo shell editor per faccia tutto da solo; certo la soluzione più rapida sarebbe quella di usare imakeidx o indextools, ma direi che sia un ragionevole compromesso.

            Ricorda che tutto il sistema TeX è nato come un sistema batch e prima che fosse messo in circolazione Win95 (il precedente Windows 3 era perennemente in crash e totalmente inaffidabile) e prima che uscisse il primo shell editor per Windows era l’unico modo che avevamo noi vecchi utenti per usare il sistema TeX. Tieni presente che ho creato le 944 polizze di font greci disponevo solo di DOS e sono andato avanti a suon di comandi batch; se non ci fossero state queste funzionalità invece di tre anni (solo week-end e feste e vacanze comandate), me ne sarebbero occorsi almeno 30:shock: Non lo rifarei più oggi, ma disegnare font, sia pure con i sistemi batch di allora, è una attività che ti cattura e non smetteresti più.

          • #99972
            claudio
            Partecipante
              Up
              0
              Down
              ::


              per gestire il glossario etc io uso arara
              con queste poche righe

              % arara: pdflatex: { draft: true }
              % arara: makeglossaries
              % arara: pdflatex: { synctex: true }
              % arara: pdflatex: { synctex: true }

              poi ho aggiunto un comando in tex studio
              `
              “C:/texlive/2014/bin/win32/arara.exe” -v -l % | txs:///view
              `
              e con un tasto me la cavo
              in fondo il glossario non serve compilarlo ogni 5 minuti
              ciao
              claudio

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

          Go to top