\footrulewidth in fancyhdr

  • Creatore
    Topic
  • #53729
    Up
    0
    Down
    ::


    Il problema è il seguente:
    la prima pagina di un documento (assistito da fancyhdr) deve avere il piedino sormontato da una linea, le altre pagine no.

    Ho provato nei seguenti modi:

    `\usepackage{fancyhdr}
    \usepackage{ifthen}

    \ifthenelse{\value{page}=1}
    {\renewcommand{\footrulewidth}{0.4pt}}
    {\renewcommand{\footrulewidth}{0pt}}`

    non funziona. Allora ho provato

    `\newlength{\frule}
    \ifthenelse{\value{page}=1}
    {\setlength{\frule}{0.4pt}}
    {\setlength{\frule}{0pt}}

    \begin{document}
    \renewcommand{\footrulewidth}{\frule}
    \end{document}`

    non funziona. Ho insistito

    `\usepackage{afterpage}

    \begin{document}
    \renewcommand{\footrulewidth}{0.4pt}
    Del testo a caso …
    \afterpage\renewcommand{\footrulewidth}{0pt}
    \end{document}`

    neppure.

    Quale può essere una soluzione?

    Grazie, ciao.

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #53730
      Up
      0
      Down
      ::

      Il problema è il seguente:
      la prima pagina di un documento (assistito da fancyhdr) deve avere il piedino sormontato da una linea, le altre pagine no.

      Ho provato nei seguenti modi:

      `\usepackage{fancyhdr}
      \usepackage{ifthen}

      \ifthenelse{\value{page}=1}
      {\renewcommand{\footrulewidth}{0.4pt}}
      {\renewcommand{\footrulewidth}{0pt}}`

      non funziona. Allora ho provato

      `\newlength{\frule}
      \ifthenelse{\value{page}=1}
      {\setlength{\frule}{0.4pt}}
      {\setlength{\frule}{0pt}}

      \begin{document}
      \renewcommand{\footrulewidth}{\frule}
      \end{document}`

      non funziona. Ho insistito

      `\usepackage{afterpage}

      \begin{document}
      \renewcommand{\footrulewidth}{0.4pt}
      Del testo a caso …
      \afterpage\renewcommand{\footrulewidth}{0pt}
      \end{document}`

      neppure.

      Quale può essere una soluzione?

      Grazie, ciao.

      Ce ne sono molte. Prima osserva che la sintassi di \afterpage è sbagliata: sarebbe
      `\afterpage{\renewcommand{\footrulewidth}{0pt}}`
      perché \afterpage riceve come argomento ciò che deve eseguire. Ma non funziona nemmeno così, perché il \renewcommand è eseguito all’interno di un gruppo. Potresti scrivere
      `\afterpage{\gdef\footrulewidth{0pt}}`
      per ovviare alla ridefinizione locale che sparisce, ma di fatto c’è un sistema molto migliore.
      `\pagestyle{fancy}

      \fancypagestyle{firstpage}{%

      \renewcommand{\footrulewidth}{0.4pt}%
      }

      \begin{document}
      \thispagestyle{firstpage}
      Ciao
      \newpage
      Su questa pagina non c'è il filetto in basso.
      \end{document}`
      Ciao
      Enrico

    • #53731
      Up
      0
      Down
      ::

      Il problema è il seguente:
      la prima pagina di un documento (assistito da fancyhdr) deve avere il piedino sormontato da una linea, le altre pagine no.

      Ho provato nei seguenti modi:

      `\usepackage{fancyhdr}
      \usepackage{ifthen}

      \ifthenelse{\value{page}=1}
      {\renewcommand{\footrulewidth}{0.4pt}}
      {\renewcommand{\footrulewidth}{0pt}}`

      non funziona. Allora ho provato

      `\newlength{\frule}
      \ifthenelse{\value{page}=1}
      {\setlength{\frule}{0.4pt}}
      {\setlength{\frule}{0pt}}

      \begin{document}
      \renewcommand{\footrulewidth}{\frule}
      \end{document}`

      non funziona. Ho insistito

      `\usepackage{afterpage}

      \begin{document}
      \renewcommand{\footrulewidth}{0.4pt}
      Del testo a caso …
      \afterpage\renewcommand{\footrulewidth}{0pt}
      \end{document}`

      neppure.

      Quale può essere una soluzione?

      Grazie, ciao.

      Ce ne sono molte. Prima osserva che la sintassi di \afterpage è sbagliata: sarebbe
      `\afterpage{\renewcommand{\footrulewidth}{0pt}}`
      perché \afterpage riceve come argomento ciò che deve eseguire. Ma non funziona nemmeno così, perché il \renewcommand è eseguito all’interno di un gruppo. Potresti scrivere
      `\afterpage{\gdef\footrulewidth{0pt}}`
      per ovviare alla ridefinizione locale che sparisce, ma di fatto c’è un sistema molto migliore.
      `\pagestyle{fancy}

      \fancypagestyle{firstpage}{%

      \renewcommand{\footrulewidth}{0.4pt}%
      }

      \begin{document}
      \thispagestyle{firstpage}
      Ciao
      \newpage
      Su questa pagina non c'è il filetto in basso.
      \end{document}`
      Ciao
      Enrico

      Fantastico! La soluzione più adatta per me è

      `\afterpage{\gdef\footrulewidth{0pt}}`

      funziona, è leggibile e non richiede il \newpage esplicito.

      Grazie infinite.

    • #53732
      Up
      0
      Down
      ::

      Fantastico! La soluzione più adatta per me è

      `\afterpage{\gdef\footrulewidth{0pt}}`

      funziona, è leggibile e non richiede il \newpage esplicito.

      Grazie infinite.

      Sbagliato. Il \newpage serviva solo per mostrare che funziona; ti assicuro: i due stili di pagina sono concettualmente migliori.

      Ciao
      Enrico

    • #53733
      Up
      0
      Down
      ::

      Fantastico! La soluzione più adatta per me è

      `\afterpage{\gdef\footrulewidth{0pt}}`

      funziona, è leggibile e non richiede il \newpage esplicito.

      Grazie infinite.

      Sbagliato. Il \newpage serviva solo per mostrare che funziona; ti assicuro: i due stili di pagina sono concettualmente migliori.

      Ciao
      Enrico

      Devo darti ragione. Risistemando il documento con i due stili di pagina il codice relativo a testatina e piedino si è ridotto a una quindicina di righe, non servono più i pacchetti ifthen e afterpage, e il tutto è molto più leggibile. Senza contare che ora il codice è vero LaTeX, senza trucchetti di basso livello.

      Grazie ancora, ciao.

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

Go to top