Riferimento alla Pagine nell’indice

  • Questo topic ha 3 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 12 anni fa da StefanoP.
  • Creatore
    Topic
  • #96497
    Up
    0
    Down
    ::


    Salve,
    sono un nuovo utilizzatore di latex e ho una domanda molto banale da porre ai più esperti. Mi scuso già in anticipo ma non ho trovato risposte utili nè sull arte nè su altro materiale online.
    Il problema è il seguente: come ogni tesi (parlando di tesi ingegneristica) ho realizzato con numerazione romana nell’ordine abstract, indice, lista di figure/tabelle, nomenclaura e poi sono partito con numerazione araba con introduzione, capitoli e via dicendo richiamando ciascuno di questi nell’indice. Ho visto che le pagine in romano erano correttamente richiamate nell’indice ma premendo sul collegamento creato il file non passa alla pagina relativa ma rimane al frontespizio. Il problema non sussiste poi dall’introduzione in poi. Vi inserisco la parte del codice interessata prima del \mainmatter. Vi preannuncio che so di aver fatto una cavolata nel senso che non ho richiamato i vari capitoli con l’input, ma solo nomenclatura e dedica. L’abstract per esempio è scritto per intero come indicato nel file.
    Grazie a tutti!!

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #96498
      Up
      0
      Down
      ::

      stefano46″ post=96189Salve,
      sono un nuovo utilizzatore di latex e ho una domanda molto banale da porre ai più esperti. Mi scuso già in anticipo ma non ho trovato risposte utili nè sull arte nè su altro materiale online.
      Il problema è il seguente: come ogni tesi (parlando di tesi ingegneristica) ho realizzato con numerazione romana nell’ordine abstract, indice, lista di figure/tabelle, nomenclaura e poi sono partito con numerazione araba con introduzione, capitoli e via dicendo richiamando ciascuno di questi nell’indice. Ho visto che le pagine in romano erano correttamente richiamate nell’indice ma premendo sul collegamento creato il file non passa alla pagina relativa ma rimane al frontespizio. Il problema non sussiste poi dall’introduzione in poi. Vi inserisco la parte del codice interessata prima del \mainmatter. Vi preannuncio che so di aver fatto una cavolata nel senso che non ho richiamato i vari capitoli con l’input, ma solo nomenclatura e dedica. L’abstract per esempio è scritto per intero come indicato nel file.
      Grazie a tutti!!

      Esempio minimo compilabile, grazie.
      (Non serve allegare il file .txt. Basta inserire il codice nel post, usando il tag)

      Ciao
      Ivan

    • #96499
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Il tuo problema nasce da una “feature” di hyperref che si mescola con altre “features” di altri pacchetti.
        La parola feature viene usata per camuffare un bug in modo che sembri solo una particolarità. In realtà si tratta di un bug troppo difficile da correggere.

        Dire, però che nel tuo caso hai due soluzioni che ti indico in ordine di complessità del messaggio associato a ciascuna, non necessariamante nell’ordine che ti consiglierei.

        1) Credo che il problema nasca dal fatto che usi lo stile Roman per i numeri di pagina, invece dello stile roman. Se guardi nel file .aux quanto viene scritto per i riferimenti incrociati, troverai certamente che ogni comando \nelwlabel che faccia riferimento a qualcosa che si trova nella parte numerata in Roman, contiene il numero della pagina scritto in “cifre” romane minuscole, preceduto da un \MakeUppercase o da qualcosa simile. Quello impedisce a hyperref di creare il link corretto. Questo problema si manifesta anche quando si invoca l’opzione greek per babel, he scrie prima del numero romano il comando \textlatin e succede un pasticcio. La soluzione, dovrebbe essere semplicemente di accontentarsi dei bruttissimi numeri romani minuscoli.

        2) Per la tesi in ingegneria o in qualunque altra disciplina o per qualunque altro documento che scrivi con LaTeX, non hai nessun bisogno di usare i numeri romani nella parte inziale, questo implica il fatto di non usare né \frontmatter, né \aminmatter (se non ridefinendole) in modo da usare per la numerazione delle pagine solo le cifre arabe e senza ricominciare da 1 con la main matter. Nella classe book \frontmatter e \mainmatter sono definiti così:`\newcommand\frontmatter{%
        \cleardoublepage
        \@mainmatterfalse
        \pagenumbering{roman}}
        \newcommand\mainmatter{%
        \cleardoublepage
        \@mainmattertrue
        \pagenumbering{arabic}}`Vanno ridefiniti così nel preambolo della tua tesi o in un file di macro personali con estensione .sty che immetti nel preambolo mediante il comando \usepackage:`\makeatletter
        \newcommand\frontmatter{%
        \cleardoublepage
        \@mainmatterfalse}
        \newcommand\mainmatter{%
        \cleardoublepage
        \@mainmattertrue}
        \makeatother`I comandi \makeatletter e \makeatother servono per cambiare codice di categoria al segno @ (che si chiama “at sign” in inglese) in modo da trattarlo come una lettera dell’alfabeto ma sono necessari solo se metti questo codice direttamente nel preambolo (prima di [tt]\begin{document}[/tt]); non sono necessari se metti il codice in un tuo file di macro personali con estensione .sty che carichi con \usepakage.

        Come vedi i due comandi eliminano la formattazione dei numeri di pagina e anche, indirettamante, il ripristino al vaolre 1 quando \pagenumering{arabic} viene eseguito con il comando \mainmatter.

        Facendo in questo modo il tuo indice conterrà solo numeri arabi per i numeri delle apgine, e i riferimenti ipertestuali creati da hyperref funzionano come previsto.

        Nota che potreti conservare i numeri romani in minuscolo, in maiuscoleto, o in maiuscolo, se i comandi per formattare i numeri di pagina non li metti nel modo di rappresentare il numero di pagina, ma li metti (forse con più logica) nei comandi che gestiscono la formattazione dell’indice, e nei comandi per presentare i riferimenti incociati; io l’ho fatto qualche volta, ma è difficile, e secondo me il gioco non vale la candela.

        Atttento: la domanda che ti potresti fare è: “Ma allora perché esiste questa abitudine di numerare in cifre romane le prime pagine di un testo?”. La domanda è lecita, ma la riposta è molto semplice: come venivano composti i libri prima dell’avvento dell’elettronica? Da Gutenberg in poi, prima si componeva la main matter e si mettevano i numeri delle pagine nelle “forme” che contenvano ben allineati e giustificati i caratteri mobili metallici che l’artigiano compositore metteva a mano (poi ne XIX secolo e nella prima metà del XX secolo). In un secondo tempo componeva la parte iniziale e la parte finale (appendici, bibliografie, indici analitici) e se aveva bisogno di riferimenti alle pagine della parte principale, le andava a cercare nelle bozze tirate con quella sola parte, ma non aveva la necessità di cambiare nessuna numerazione delle pagine. Per la parte inziale, invece, che conteneva anche l’indice, non poteva usare la stessa numerazione araba della parte principale, perché la numerazione di questa parte avrebbe dovutto essere modificata per tenere conto delle pagine agginunte all’inizio. Ecco dunque il motivo di questa tradizione. Ora le motivazioni che ti ho illustrato, componendo elettronicamente con LaTeX non hanno più nessuna rilevanza, perché LaTeX cura che la numerazione complessiva e i riferimenti incrociati e quelli ipertestuali siano tutti coerenti, essendo sufficiente ricompilare una o due volte, consumando pochissime decine di secondi, non le settimane di lavoro che erano necessarie ai tempi dei caratteri mobili o dei caratteri fusi al momento con macchine del tipo delle linotype o delle monotype. Inoltre sono esclusi gli errori imani connessi con ogni operazione fatta a mano.

        Scusa la lunghezza del messaggio, ma credo di averti spiegato il perché e il percome.

      • #96500
        Up
        0
        Down
        ::


        Grazie ti ringrazio della risposta più che esaustiva!
        Apporto le modifiche che mi hai consigliato,
        Grazie ancora!

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

    Go to top