modificare testo nell’indice

  • Questo topic ha 6 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 13 anni fa da ivan.
  • Creatore
    Topic
  • #88699
    Up
    0
    Down
    ::


    Ciao a tutti.
    Ho suddiviso la mia tesi in 3 parti col sezionamento \part. Io voglio che vengano “numerate” con PRIMA, SECONDA, TERZA, anziché con i numeri arabi o romani che siano. Per fare un esempio:

    PARTE PRIMA: Introduzione della tesi

    Vorrei anche che questa suddivisione comparisse nell’indice (toc) così come l’ho scritta qui sopra e senza il numero della pagina. Immagino esisteranno molte strade per ottenere questo risultato, ecco cosa sono riuscito a fare io dopo numerose prove.

    Per la “grafica” dei titoli ho usato titlesec. Il codice è il seguente:
    `\titleformat{\part}[display]
    {\normalfont\LARGE\filcenter\sffamily} %FORMAT
    {\vspace{1pt}%
    \vspace{1pc}%
    \LARGE\MakeUppercase PARTE PRIMA} %LABEL
    {4pc} %SEP
    {\titlerule[1pt]
    \vspace{1pc}%
    \Huge Introduzione della tesi } %BEFORE CODE

    \addtocontents{toc}{\cftpagenumbersoff{part}} % per togliere il numero di pagina nel toc
    \part{}
    \phantomsection
    \addcontentsline{toc}{part}{PARTE PRIMA: Introduzione della tesi}`

    Il risultato non è quello desiderato, c’è una riga in più nell’indice in cui viene stampato il carattere I e basta.
    Grazie a chiunque saprà aiutarmi:)

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #88700
      Up
      0
      Down
      ::


      Quel modo sicuramente non è corretto. D’altra parte il comando \part è poco duttile, anche usando titlesec e titletoc.
      Conviene modificare direttamente il codice della classe book.
      `\documentclass{book}

      \usepackage{itnumpar}
      \usepackage[italian]{babel}

      \makeatletter
      \def\@part[#1]#2{%
      \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\MakeUppercase{\partname~\Ordinalef{part}}\hspace{1em}#1}%
      \else
      \addcontentsline{toc}{part}{#1}%
      \fi
      \markboth{}{}%
      {\centering
      \interlinepenalty \@M
      \normalfont
      \ifnum \c@secnumdepth >-2\relax
      \huge\sffamily \MakeUppercase{\partname\nobreakspace\Ordinalef{part}}
      \par
      \vskip4pc
      \fi
      \hrule
      \vskip1pc
      \Huge #2\par}%
      \@endpart}
      \makeatother

      \begin{document}

      \tableofcontents

      \part{Introduzione alla tesi}\label{parte}
      \part{Titolo della seconda parte}

      \end{document}`

      Ciao
      Ivan

    • #88701
      Up
      0
      Down
      ::


      Immaginavo, grazie il tuo codice funziona tranne che per il comando \MakeUppercase che mi dà questo errore:

      ! Undefined control sequence. \MakeUppercase

      Se lo tolgo funziona, ma Parte Prima non è più in maiuscolo. Ci vuole forse un pacchetto specifico?

    • #88702
      Up
      0
      Down
      ::

      nico_arctic” post=88154Immaginavo, grazie il tuo codice funziona tranne che per il comando \MakeUppercase che mi dà questo errore:

      ! Undefined control sequence. \MakeUppercase

      Se lo tolgo funziona, ma Parte Prima non è più in maiuscolo. Ci vuole forse un pacchetto specifico?

      Non ho alcun errore, se provo a compilare. Puoi presentare un esempio minimo?

      Ciao
      Enrico

    • #88703
      Up
      0
      Down
      ::


      Adesso funziona, mistero 😀 Grazie ancora!

      Senti, se volessi centrare nell’indice sia PARTE PRIMA che il nome della parte (messo sotto) che comando devo aggiungere? Ho provato con \begin{center} ma mi dà errore….

    • #88704
      Up
      0
      Down
      ::


      Dunque, modificando così il codice:

      \addcontentsline{toc}{part}{{\normalfont\scshape\Large\hspace{4cm}\partname~\Ordinalef{part}} \\ \normalsize#1}%

      sono riuscito ad andare a capo e avere le due linee come volevo. Il problema ora è centrarle entrambe. Con \hspace{4cm} riesco a posizionare al centro (più o meno) la scritta PARTE PRIMA, ma non è certo la soluzione più corretta. Inoltre la seconda linea, con il nome della parte, resta comunque a sinistra. Cercando un po’ in giro ho trovato che per centrare una voce nella toc si può usare \hfill, ma non ho ben capito come usarlo.

      Qualcuno sa aiutarmi? Grazie di nuovo;)

    • #88705
      Up
      0
      Down
      ::

      nico_arctic” post=88196Dunque, modificando così il codice:

      \addcontentsline{toc}{part}{{\normalfont\scshape\Large\hspace{4cm}\partname~\Ordinalef{part}} \\ \normalsize#1}%

      sono riuscito ad andare a capo e avere le due linee come volevo. Il problema ora è centrarle entrambe. Con \hspace{4cm} riesco a posizionare al centro (più o meno) la scritta PARTE PRIMA, ma non è certo la soluzione più corretta. Inoltre la seconda linea, con il nome della parte, resta comunque a sinistra. Cercando un po’ in giro ho trovato che per centrare una voce nella toc si può usare \hfill, ma non ho ben capito come usarlo.

      Qualcuno sa aiutarmi? Grazie di nuovo;)

      Hai il tipico approccio Word-style 😉 Per modificare lo stile dell’indice ci sono i pacchetti tocloft e titletoc.
      Il secondo permette sicuramente di fare quello che chiedi. Il primo non lo so. Non l’ho mai usato.

      Ciao
      Ivan

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

Go to top