Cambiare lo stile del numero di pagina con imakeidx

  • Creatore
    Topic
  • #82589
    Up
    0
    Down
    ::


    Ciao a tutti..ho cercato sul sito e sul web per vedere se ci fosse stata una spiegazione al mio problema ma non l’ho trovata. Il problema è il seguente:
    carico nel preambolo il pacchetto imakeidx e poi richiamo il comando \makeindex con le apposite opzioni..ho caricato anche il fancyhdr che ho scoperto impedisce a imakeidx di svolgere a pieno il suo ruolo; ho rimodificato lo stile plain inserendo \thepage{roman}.
    A quanto ho capito lo stile plain è quello che LaTeX usa per l’indice e l’indice analitico: ho provato a mettere un pagestyle prima del \printindex ma non succede nulla; mi ritrovo l’indice analitico con i numeri romani e non so come fare a cambiare..qualcuno ha qualche idea? Mediante il file.ist (ma non ho trovato il comando che facesse al caso mio)?

    `
    \documentclass[10pt,a4paper]{book}
    \usepackage[utf8]{inputenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage{imakeidx}
    \usepackage{fancyhdr}
    \fancypagestyle{plain}{%
    \fancyhf{}
    \fancyfoot[C]{\roman{page}}
    \renewcommand{\headrulewidth}{0pt}
    }
    \makeindex
    \begin{document}

    \tableofcontents
    \chapter{}
    Non ci sono più le mezze stagioni!\index{stagioni}

    \cleardoublepage
    \pagestyle{empty}
    \addcontentsline{toc}{chapter}{\indexname}
    \printindex

    \end{document}
    `

    Grazie,
    Stefano

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #82590
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        La spiegazione è nella documentazione di imakeidx, da leggere con il comando texdoc imakeidx dato nel terminale.

        Vai alla pagina 5 dove si descrive il comando \indexsetup, in particolare le parole chiave firstpagestyle e headers.

        Ma leggi anche il §5.3

        Normalmente la prima pagina dell’indice analitico di default è in stile plain, mentre le pagine successive sono in stile headings, nel senso che anche fancyhead va bene se non specifichi niente con la parola chiave headers. In sostanza non dovresti fare nula per configurare l’aspetto dell’indice che per impostazione predefintia ti appare come un capitolo non numerato ma con le testaine di un capitolo numerato, che però contiene in entrambe le testatine la stringa “Indice analitico”, se stai componendo in italiano.

        Se vuoi cambiare le testatine per avere un’altra indicazione, ridefinisci \indexname con la stringa che ti pare. Se vuoi personalizzare le testatine dell’indice in qualche modo definisci un nuovo stile di pagina con quel che ti pare, e specificalo prima di usare printindex, ma non specificare mai nessun stile dei numeri, come \pagenumbering{roman} perché questo genere di comandi fa sempre ripartire al numerazione da 1 (o da i per i numeri romani minuscoli — orrore 😡 )

        Se guardi la Guida GuIT (qui sopra nella documentazione), vedrai che usa lo stile standard della classe book, ma ci sono 6 indici analitici, ognuno con la sua personalizzazione, e in qualcuno dei quali sono riportati anche voci provenienti dall’introduzione, numerata in cifre romane maiuscolette, e il maiuscoletto viene reso adeguatamente anche nel relativo indice analiticoe; tutto è stato ottenuto senza ricorrere a \indexsetup, ma lavorando solo sulle opzioni di \makeindex e su qualche comando di indicizzazione specifico usato nell’introduzione.

        Stefano, in realtà non ho capito bene perché hai ridefinito lo stile plain con i numeri romani minuscoli (orrendi, secondo me)\piuttosto definisci il piedino con
        `\fancyfoot[C]{\textsc{\roman{page}}}` che ti rende le pagine in maiuscoletto. Ma quello che non cpaisco è perché vuoi usare i numeri romani nelle pagine in stile plain; questo stile, infatti, viene usato nella pagina di apertura di ogni capitolo numerato o non numerato, quindi mi sembra del tutto fuori luogo; la numerazione romana (maiuscoletta, ma non in tondo minuscolo, secondo il mio personale gusto estetico e un po’ di storia: i romani non conoscevano le lettere minuscole) va bene, caso mai, solo per la front mantter, secondo la tradizione tipografica; in realtà oggi con la composizione elettronica non c’è più bisogno di ricominciare da 1 in cifre arabe la numerazione delle pagine dopo la parte introduttiva del documento, quindi la scelta del maiuscoletto per tutte le pagine senza testatine mi pare a maggior ragione infelice.

      • #82591
        Up
        0
        Down
        ::


        Grazie per la pronta risposta.
        Allora: io ho imposto mediante titlesec che lo stile di della prima pagina di ogni singolo capitolo sia ben precisa e con i numeri arabi; ho messo i numeri romani nello stile plain per poter aver l’indice con numeri romani. Conviene allora usare \frontmatter, \mainmatter e \backmatter? La cosa che in realtà non mi garba è che quando si introduce il comando \mainmatter la numerazione riparta da 1 e inoltre mi pare di capire che se l’indice è più lungo di una pagina non compare il numero romano nelle pagine successive.
        Ricapitolando: vorrei avere l’indice in numeri romani mentre l’indice analitico in numeri arabi. Utilizzo il pacchetto fancyhdr: come posso fare? Esiste un modo per modificare lo stile dell’indice analitico? Per capire mi piacerebbe un risultato simile ad arsclassica..indice in numeri romani e indice analitico in numeri arabi.

        Grazie,
        Stefano

      • #82592
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Bé imakeidx serve solo per l’indice analitico, quindi se vuoi scriverlo in numeri arabi, che cosa devi modificare,? niente!, second tradizione metti l’indice analitico nella backmatter. la quale non ricomincia la numerazione.

          Se vuoi l’indice generale in numeri romani basta che tu lo componga nella frontmatter.

          Se non vuoi che la mainmatter ricominci la numerazione delle pagina da 1, memorizza il valore del contatore page in un contatore a tuo piacimento poi dopo aver dato il comando \mainmattter carica il contatore page con il valore memorizzato a seconda di quello che ci metti dopo può darsi che tu debba aggiustare il contaotre page con i soliti comandi \setcounter, \addconunter e simili.

          A me non sembra una buona idea, tuttavia sai ora come fare.

        • #82593
          Up
          0
          Down
          ::


          Come mai non ti sembra una buona idea?

        • #82594
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Perché il cambiamento di stile della numerazione è già sufficiente di per sé [er capire che sta cominciando una nuova parte del testo. Piuttosto lascerei la forntmatter in numeri arabi e proseguire nella mainmatter senza ricominciare da 1.
            La cosa avrebbe un senso in questo modo: nella fornt matter i capitoli non vengono numerati e nemmeno le sezioni secondarie, ma vanno nell’inidce generale e volendo anche nelle testatine si lo stile delle pagine nella frontmatter è lo stesso della mainmatter; altrimenti varrebbe la pena per tutta la frontmatter di usare lo stile plain, lascinado alla mainamtter il compito di inserire le testine. fancy. Nella backmatter, così come è definita ora, i cpaitoli non vengono numerati e generalmente il materiale della backmatter potrebbe andare anche nell’indice, tranne che nella backmatter di solito s=ci sono solo bibliografia ed eventuale indice analitico, che normalmente vengono composti con \chapter8, quindi non vanno nemmeno nelle testatine. per questi bisogna intervenire a mano ma, per esempio, socondo alcuni book designer le appendici fanno parte dlela backmatter, quindi non andrebbero nemmeno numerate, cosa che a me pare poco utile, tranne nel caso che di appendici ce ne sia una sola.

            nel tuo caso, numerando in cifre arabe consecutive sia la frontmatter sia la mainmatter, ma, eventualmente, cambiando lo stile delle pagine, varrebbe la pena di ridefinire i comandi \frontmatter e \mainmatter secondo quello che vuoi ottenenere. Ti basta copiare le loro deifnizioni dlala classe che stai usando, mettere \renewcommand al posto di \def o d \enwcommand, e poi cambaire quello che c’è da cambiare secondo i tuoi desideri; per esempio nella frontmatter io sostituirei \pagenumbering{roman} con \apgenumbering{arabic} e nella mainmatter dove c’è scritto \pagenumbering{arabiac} commenterei il comando o lo cancellerei del tutto. Per gli stili di paigna puoi fare come meglio credi.

          • #82595
            Up
            0
            Down
            ::


            Grazie per la dritta, ma non so come si faccia a memorizzare il numero di pagina..perdonami..è da poco che sto provando a fare uno stile personalizzato! Inoltre volevo sapere come mai l’indice analitico mi rientra all’interno dell’ultima \part che ho chiamato nel file..credevo che fosse una cosa a sè stante..potresti delucidarmi in merito?

          • #82596
            Up
            0
            Down
            ::


            Ho provato a togliere \backmatter e lo riconosce come cosa a parte..boh!:?

          • #82597
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Una rapida lettura della guida tematica LaTeX Reference Manual commentato ti permetterebbe di acquisire quelle piccole compoetenze supplementari che mancano nell’Arte di scrivere con LaTeX. Comunque è semplice:`
              % Nel preambolo
              \newcounter{contatore}

              % Alla fine della front matter prima di \mainmatter
              \setcounter{contatore}{\value{page}}

              % Subito dopo \mainmatter
              \setcounter{page}{\value{contatore}}
              %Ora sostituire i puntini con un valore adeguato, un numero intero positivo o negativo
              \addtocounter{page}{…}
              …`

              L’aggiustamento con il (piccolo) valore numerico da sostituire ai puntini serve per regolare con precisione il numero della pagina con cui comincia la main matter, perché il comando potrebbe aver aggiunto una pagina bianca per cominciare sul recto, oppure in composizione oneside potrebbe non averlo fatto.

              Alternativamente si potrebbero sostituire i due comandi \setcounter{page}{…} e \addtocounter{page}{…} indicati sopra con un unico comando`
              \addtocounter{page}{\value{contatore}}`
              ma non sono sicuro che non occorra l’aggiustamento.

              Volendo andare sul sicuro si potrebbe usare un unico comando che contiene anche l’aggiustamento:
              `\setcounter{page}{\numexpr\value{page}+\value{contatore}+0\relax}`
              sostituendo lo zero con il piccolo valore positivo o negativo che occorre.

              \numexpr è un comando del nucleo di LaTeX che serve per calcolare espressioni numeriche, senza bisogno di caricare il pacchetto calc. Vedi documentazione leggendo con texdoc etex da terminale le estensioni al nucleo del programma pdftex (che insieme al file pdflatex.fmt forma il programma pdflatex) introdutte un 7 anni fa, quindi circa 10 anni dopo la pubblicazione del manuale di LaTeX2e da parte di Leslie Lamport, il creatore del marck up chiamato LaTeX. Se leggi questa documentazione vai direttamente al paragrafo intitolato “Expressions”.

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

          Go to top