imakeindex lascia lascia vuote la parole indicizzate \index nel pdf

  • Creatore
    Topic
  • #121900
    Up
    0
    Down
    ::


    Buongiorno e salute a tutti,
    chiedo il vostro aiuto perché non riesco a trovare la fonte di questo errore:
    imakeindex stampa l’indice analitico in fondo alla pagina, ma all’interno del testo non stampa le parole indicizzate lasciandole vuote. Ho un documento Master con alcuni capitoli e figure ed uso pdflatex, ho aggiornato Miktec sia come amministratore che come user, ho fatto delle prove con le opzioni hyperref (sul manuale hyperref ci sono dei riferimenti a imakeindex) pemando fosse lui, ma nulla. Metto per comodità una immagine per visualizzare l’errore e allego la cartella,
    con l’esempio minimale per riprodurre l’errore. Spero che vada bene e vi ringrazio in anticipo per il vostro tempo.
    Saluti
    [attachment=2788]errpre_indice_anal.jpg[/attachment]

    [attachment]C:\fakepath\prova_errori.zip[/attachment]

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #121901
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Strana composizione quella che sei riuscito ad allegare.

        Ma il tuo punto è un altro. Perché imakeidx (suppongo che sia questo il nome corretto del pacchetto, perché esistono sia makeindex sia imakeidx, oltre al programma diestrazione makeindex.exe)?

        imakeidx è l’ultimo pacchetto che io conosca, e che uso in continuazione, che provvede da solo a prelevare gli argomenti di \index, per salvarli nel file \jobname.idx, a lanciare il programma makeindex, in modo da produrre il file jobname.ind, che alla successiva compilazione produce l’indice analitico nella sezione del documento dove si è inserito il comando \printindex.

        Ma tutto questo non provvede a scrivere nulla nel testo, se non nell’indice analitico.

        Quindi se posso chiamerlo errore, non è un errore di imakidx, ma un errore tuo.
        Nel senso che nel testo sorgente dove parli di Gallipoli (e non nella testatina che si ripete uguale in tutte le pagine del tuo documento, devi scrivere Gallipoli\index{Gallipoli}.

        Perché bisogna ripetere la stessa voce da indicizzare? Perché in molte circostanze la parola nel testo è leggermente diversa dalla parola nell’indice analitico; per esempio, potrebbe essere …i transistori NPN\index{transistore}; oppure …i transistori NPN\index{transistore!NPN}; il secondo inserisce nel’indice la voce NON come voce secondaria si=otto la voce primaria transistore, mentre la prima scrive nell’indice una sola voce di due parole.

        Ti suggerisco di usare il terminale/prompt dei comandi.cmd come si chiama con la tua versione del sistema operativo; dentro questa finestra puoi dare il comand:
        (a) texdoc imakeidx e ti si apre una finestra con la documentazione di imakeidc;
        (b) texdoc makeindex e ti si apre la documentazione di makeindex

        Ritengo che siano due documenti da tenere sempre a portata di mouse, perché sia imakeidx sia makeindex fanno talmente tante cose che è difficile ricordarsele tutte.

        Inoltre se non hai bisogno di usare lemmi diversi da quanto scrito nel documento puoi definirti un comando, per esempio`\newcommand\myindx[1]{#1\index{#1}}`che ti consente di non ripetere il nome da indicizzare; per cui puoi scrivere semplicemente \myindex{Gallipoli} e la compilazione ti scrive Gallipoli nel testo e Gallipoli nell’indice.
        Ricordati però di non indicizzare mai le parole che si trovano nelle testatine e nei piedini, perché nell’indice analitico apparirebbero centinaia di pagine elencate.
        Inoltre, la prossima volta che hai un errore che non riesci a gestire, non allegare immagini ma un file .tex minimo, chiamato Esempio Minimo Comiplabile (EMC) come indicato qui sotto. Potrai gestire meglio tu stesso gli errori, me faciliterai moltissimo chi ti da una mano qui sul forum.

      • #121902
        Up
        0
        Down
        ::


        OldClaudio ti ringrazio. Avevo allegato lo zip del file tex. minimali ma vedo che appare come percorso fakepath… quindi non è scaricabile giusto?
        In ogni caso grazie, la situazione sta proprio come descritta da te che mi ha illuminato sull’errore:
        – nell’uso di makeindex non volevo scrivere due volte di seguito la parola da indicizzare per rendere più leggibile il testo ed anche perché ad ogni parola indicizzata c’è anche un ulteriore comando per riferimenti incrociati. Siccome il testo è lungo e con diverse sezioni ed ogni volta il testo va aggiornato a seconda dei siti di lavoro, nella progettazione del master mi ero orientato da subito in questa direzione perché avrei dovuto sempre mettere mano al testo, solo che nel mio comando c’era la chiocciola invece del cancelletto:
        \newcommand\myindx[1]{@1\index{@1}}, quindi non funzionava e nel pdf non apparivano le parole indicizzate, ma solo nell’indice analitico.

        Approfitto e mi permetto di chiederti una cosa che sto affrontando per questo progetto e che questa volta non richiede un tex minimale.
        Uso TexStudio come editor e sto cercando di fare questo senza esito: quando apro un file tex da modificare vorrei fare in modo che tutti i comandi Tex, i caratteri e sequenze di caratteri di Tex e tutto ciò che non è “testo che deve apparire nel pdf” sia congelato e reso immodificabile, in modo che io possa modificare solo il testo, non i comandi inavvertitamente. Secondo te c’è un modo? Magari se è necessario apro un nuovo post per questa domanda.
        Saluti e buon lavoro.

      • #121903
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Non conosco nessun pacchetto e nessun editor che faccia quello che chiedi; ma certamente puoi mettere tutti i tuoi comandi che hai creato, del tipo di \myindex in un file di macro personali; in sostanza puoi trasferire quasi tutto il preambilo in un file, diciamo mimacros.sty, per cui il tuoo preambolo si ridurrà quasi unicamente al comando \usepackage{mymacros}. In questo modo è difficile modificare quele definizioni per errore, a meno che tu non lo voglia fare davvero e allora lo devi fare agendo su un altro file.
          TeXstudio, fra gli editor usabili su una piattaforma Windows è forse il migliore. Io lavoro su un Mac e uso il suo TeXShop, ma talvolta rirro a TeXstudio che funziona anche sul Mac, perché ha qualche funzionalità molto utile e che manca in TeXShop.
          Secondo il mio parere, forse troppo legato al Mac, TeXstudio è il miglior editor fra le centinaia disponibili che si possa usare sule altre piattaforme. Alcuni preferiscno emacs, ma io lo trovo troppo difficile per me e le poche volte che lo ho usato quando lavoravo su Linux, non risuscivo a sfruttarne le innumerevoli funzionalità. Eppure Linux è stata la piattaforma che mi ha permesso di abbandona Windows (di allora) e di passare al Mac. Scusa questa divagazione personale, ma credo che ti dia un’idea delle possibilità che ci sono.

        • #121904
          Up
          0
          Down
          ::


          Per i comandi del preambolo, si, ci sono ed è un bell’espediente per nasconderli. Purtroppo il problema si pone per i tanti comandi all’interno del testo e dei file capitoli: comandi di stile sulle parole, comandi di riferimento, comandi di ambiente, equazioni etc. A me è capitato più di qualche volta, nell’editor di testi lunghi o con molti capitoli, di cancellare inavvertitamente una parentesi graffe subito dopo una tonda o lasciarne una random per strada, oppure una barra verticale con uno slash e così via. Quando li cancelli inavvertitamente l’occhio non si accorge subito perché ce n’è un’altra che ti da l’impressione che tutto vada bene e passi appresso nel testo. So che i comandi di apertura e chiusura, quando inseriti hanno il colore che ti dice se è chiusa o no, ma spesso può sfuggire per la fretta o altri motivi. Anche modificando la visualizzazione dei comandi, con colori evidenziazioni etc. etc. c’è sempre qualcosa che mi sfugge e poi perdo un sacco di tempo per trovare un errore. Congelare o rendere immodificabili i comandi sarebbe un’ottima cosa. Un po’ come si fa con alcuni programmi di disegno, che usano dei livelli o layer e ti permettono di accenderli, spegnerli, congelarli.
          Comunque penso di inviare una nota, in tal senso, agli sviluppatori… chissà.
          Ciao

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

      Go to top