Re: \footrulewidth in fancyhdr

#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.

Go to top