Utilizzo di fancyhdr

  • Creatore
    Topic
  • #106992
    Up
    0
    Down
    ::


    Ciao a tutti, ragazzi.

    Mi servirebbe un vostro suggerimento su come utilizzare correttamente e le impostazioni adeguate per questo pacchetto.
    La mia tesi è composta utilizzando la classe book.
    Ho provato ad adottare la seguente scrittura:

    \pagestyle{fancy}
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\chaptermark}[1]{%
    \markboth{\ifnum\value{chapter}>0 \thechapter. \fi#1}
    {\ifnum\value{chapter}>0 \thechapter. \fi#1}}
    \fancyhf{}
    \fancyheader[C]{\nouppercase{\leftmark}}
    \fancyfoot[C]{\thepage}

    Ma mi segnala un errore in questo pezzo di codice: \fancyheader[C]{\nouppercase{\leftmark}}.

    Vorrei semplicemente, come struttura del documento, una linea per le testatine con, a sx nelle pagine pari la descrizione del capitolo e, a dx nelle pagine dispari la descrizione della sezione…

    Grazie in anticipo per le risposte.

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


        Perché vuoi cambiare quello che la classe book fa spontaneamente?
        Per mettere i filetti sotto le testatine?
        Guarda com’è la definizione delle testatine di book nel paragrafo 8 e cambia quei comandi togliendo solo o modificando solo qualche codice di posizione devi usare \fancyhead, e non \fancyheader; e devi specificare L per le pagine left, e R pr le pagine right; devi specificare se l’informazione inserita nel documento \rightmark e \leftmark vada a sinistra, a desta o a centro.
        Corrispondentemente devi specificare gli spessori die filetti se li vuoi diversi dall impostazioni predefinite.
        Fai attenzione all’ortografia dei comandi, perché il minimo errore si “spelling” porta a errori difficili da interpretare e correggere.

      • #106994
        Up
        0
        Down
        ::


        Un esempio minimo, per favore.

        Ciao
        Enrico

      • #106995
        Up
        0
        Down
        ::


        La modifica la voglio perché non mi piace il predefinito.
        Ho provato a fare con questo codice:
        `
        \usepackage{fancyhdr}
        \pagestyle{fancy}
        \renewcommand{\headrulewidth}{0.4pt}
        \fancyhf{}
        \fancyhead[LE,RO]{\small\bfseries}
        \fancyhead[RE]{\small\bfseries\nouppercase{\rightmark}}
        \fancyhead[LO]{\small\bfseries\nouppercase{\leftmark}}
        \fancypagestyle{fancyfront}{%
        \fancyhf{}
        }
        \fancyfoot[C]{\thepage}
        \makeatletter
        \renewcommand{\chaptermark}[1]{\markboth{%
        \ifnum\value{secnumdepth}>\m@ne
        \if@mainmatter\@chapapp\ \thechapter. \ \fi\fi #1}{}}
        \renewcommand{\sectionmark}[1]{\markright{%
        \ifnum\value{secnumdepth}>\z@ \thesection.\ \fi#1}}
        \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
        \hbox{}
        \vspace*{\fill}
        \begin{center}
        ~
        \end{center}
        \vspace{\fill}
        \thispagestyle{empty}
        \newpage
        \if@twocolumn\hbox{}\newpage\fi\fi\fi}
        \makeatother`

        La cosa funziona bene in realtà. Da \makeatletter fino a \makeatother ho dato il comando affinché LaTeX mi lasci una pagina bianca a fine capitolo.

        Tuttavia vorrei chiedervi due cose:

        1. Io ho dato questo comando:
        `
        \chapter*{Prefazione\markright{Prefazione}{}}
        \addcontentsline{toc}{chapter}{Prefazione}
        `
        Sto usando la classe book con l’opzione openright. Ebbene quando termina questo capitolo ed inizia “Capitolo 1”, non mi lascia la pagina bianca che ho dichiarato sopra; cosa che, invece, fa da “Capitolo 1” in poi. Come posso risolvere?

        2. Altra cosa: con l’opzione openright i capitoli iniziano con le pagine destre e questo è noto; nella pagina successiva all’inizio del capitolo, la testatina mi mette, a dx, il nome del paragrafo.
        Se io volessi invece che, nella pagina successiva appunto, ci fosse il nome del capitolo, a sx? E nella pagina successiva ancora, in alto a dx, il nome del paragrafo, e così via… Come potrei ottenerlo?

        Sperando di essere stato chiaro, vi ringrazio in anticipo per la risposta.

        Lorenzo

      • #106996
        Up
        0
        Down
        ::


        Ragazzi, riuscite a darmi una mano, per favore?

        Grazie.

        Lorenzo

      • #106997
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          `\usepackage{fancyhdr}
          \pagestyle{fancy}
          \renewcommand{\headrulewidth{0.4pt}
          \fancyhf{}
          \fancyhead[RE]{\small\bfseries\nouppercase{\leftmark}}% leftmark contiene il titolo del capitolo
          \fancyhead[LO]{\small\bfseries\nouppercase{\rightmark}}% \rightmark il titolo del paragrafo
          \fancyfoot[C]{\thepage}

          \fancypagestyle{fancyfront}{\fancyhf{}}% questa definizione è uguale a quella del page style empty; ti serve davvero?

          \makeatletter
          \renewcommand{\chaptermark}[1]{\markboth{%
          \if@mainmatter\@chapapp\ \thechapter. \ \fi #1}{}} % l'altro test non serve, perché in mainmatter è secnumdepth>-1

          \renewcommand{\sectionmark}[1]{\markright{%
          \ifnum\value{secnumdepth}>\z@ \thesection.\ \fi#1}}

          \makeatother

          \usepackage{emptypage} % per la pagina bianca
          `

          Io però non farei dei test dentro argomenti mobili, perché si rischia che non funzionino; perciò, invece di definire lo stile fancyfront che equivale a empty, quindi non aggiunge niente di nuovo, definirei uno stile frontmatter più o meno così:
          `\usepackage{fancyhdr}
          \fancyhf{}
          \fancyhead[RE]{\small\bfseries Capitolo \thechapter. \nouppercase{\leftmark}}
          \fancyhead[LO]{\small\bfseries \thesection. \nouppercase{\rightmark}}
          \fancyfoot[C]{\scshape\thepage}% numeri romani vengono in maiuscoletto
          \renewcommand\chaptermark[1]{\markboth{#1}{#1}

          \fancypagestyle{frontmatter}{%
          \fancyh{}% azzera solo le testatine, conservando le altre impostazioni
          \fancyhead[RE,LO]{\small\bfseries \nouppercase{\leftmark}}
          }

          \usepackage{emptypage}`
          Volendo potresti inserire le scelte di questi stili di pagina nei comandi \frontmatter e \mainmatter, ma siccome risparmieresti poco o niente, tanto vale dare i comandi a mano; per cui dopo \begin{document} cominci con dare la dichiarazione \pagestyle{empty} e componi il frontespizio; dopo dai il comando \frontmatter e subito dopo dai il comando \pagestyle{frontmatter}; quando hai finitl la front matter, dai i comandi \mainmatter e \pagestyle{fancy}.

          Attento: non ho collaudato il codice che ti ho scritto; se trovi qualche errore correggilo tu.
          Non ho inventato niente se non usare gli stessi comandi di fancyhdr che hai usato tu con argomenti leggermente diversi. Nota che le pagine pari e dispari nella front matter contengono il titolo del capitolo non numerato sia a desta sia a sinistra; è voluto, perché i “capitoli” nella front matter non dovrebbero essere tanto lunghi da richiedere una composizione sezionata.

        • #106998
          Up
          0
          Down
          ::


          Grazie!

          Inizialmente mi dava dei problemi di compilazione, ma poi sono riuscito a sistemarlo.

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

      Go to top