Mostra il numero di pagina / stesso piè di pagina sulla prima pagina di una lettera in KOMA scrlttr2?

Jan 08 2021

Uso lo script KOMA scrlttr2e voglio solo visualizzare lo stesso testo (la mia numerazione / numero di pagina) su tutte le pagine della mia lettera, ovviamente inclusa la prima.

Ho trovato questa risposta e questo post sul blog un po 'vecchio . Ma entrambi sono goffamente complicati e mi richiedono di definire un diavolo di macro LaTex solo per fare lo stesso che fa automaticamente a partire dalla pagina due (2).

Come posso visualizzare lo stesso testo (numero di pagina) nel piè di pagina della prima pagina come nel piè di pagina della seconda / tutte le altre pagine? A differenza di tutte le altre domande, non sto cercando la soluzione più elegante (che richiede 100 righe), ma mi piacerebbe duplicare / codificare nuovamente il piè di pagina ripetendolo. Anche se mi ci vorrebbe a scrivere "Pagina 1 di \ letterlastpage".

Fondamentalmente uso questo esempio, preso da qui :

\documentclass{scrlttr2}
\usepackage{scrlayer-scrpage}

\cfoot{Page \thepage\ of \letterlastpage}

\usepackage{lipsum}
\begin{document}
\begin{letter}{%
    Jerry Garcia\\
    710 Ashbury St\\
    San Francisco\\
    CA 94117
    }
    \opening{Dear Friend,}
    
  \lipsum\lipsum    

\end{letter}

\begin{letter}{%
    Jerry Garcia\\
    710 Ashbury St\\
    San Francisco\\
    CA 94117
    }
    \opening{Dear Friend,}

  \lipsum\lipsum    

\end{letter}

\end{document}

Risposte

1 esdd Jan 08 2021 at 22:26

Il layout della prima pagina della lettera è speciale. Lo stile della pagina della prima lettera è empty. Utilizza elementi speciali per indirizzo, posizione, intestazione, piè di pagina ecc.

Devi usare la variabile firstfootper aggiungere contenuto nel piè di pagina della prima pagina. Se ridefinisci \pagemarkper ottenere »Pagina ... di ...«, puoi utilizzare \centering\pagemarkper firstfoot:

\renewcommand*\pagemark{%
  \usekomafont{pagenumber}{\pagename~\thepage~of~\letterlastpage}%
}
\setkomavar{firstfoot}{\centering\pagemark}

Esempio:

\documentclass{scrlttr2}

\renewcommand*\pagemark{%
  \usekomafont{pagenumber}{\pagename~\thepage~of~\letterlastpage}%
}
\setkomavar{firstfoot}{\centering\pagemark}

\usepackage{lipsum}
\begin{document}
\begin{letter}{Jerry Garcia\\710 Ashbury St\\San Francisco\\CA 94117}
\opening{Dear Friend,}
\lipsum\lipsum
\end{letter}

\begin{letter}{Jerry Garcia\\710 Ashbury St\\San Francisco\\CA 94117}
\opening{Dear Friend,}
\lipsum\lipsum
\end{letter}
\end{document}

Notare che il piè di pagina nella prima pagina è più basso che nelle altre pagine. Se dovrebbe essere nella stessa posizione, puoi applicare la patch \openingper utilizzare lo stile di pagina plainsulla prima pagina:

\newcommand{\originalopening}{}
\let\originalopening\opening
\renewcommand{\opening}[1]{\originalopening{#1}\thispagestyle{plain}}
\KOMAoptions{firstfoot=false}% disable first footer

o con pacchetto xpatch:

\usepackage{xpatch}
\xpatchcmd{\opening}{\thispagestyle{empty}}{\thispagestyle{plain}}{}{\PatchFailed}
\KOMAoptions{firstfoot=false}% disable first footer

Nota che puoi ancora usare la variabile firstheadper definire un'intestazione della prima lettera della pagina.

Esempio:

\documentclass{scrlttr2}

\renewcommand*\pagemark{%
  \usekomafont{pagenumber}{\pagename~\thepage~of~\letterlastpage}%
}

\usepackage{xpatch}
\xpatchcmd{\opening}{\thispagestyle{empty}}{\thispagestyle{plain}}{}{\PatchFailed}
\KOMAoptions{firstfoot=false}% disable first footer

\usepackage{lipsum}
\begin{document}
\begin{letter}{Jerry Garcia\\710 Ashbury St\\San Francisco\\CA 94117}
\opening{Dear Friend,}
\lipsum\lipsum
\end{letter}

\begin{letter}{Jerry Garcia\\710 Ashbury St\\San Francisco\\CA 94117}
\opening{Dear Friend,}
\lipsum\lipsum
\end{letter}
\end{document}

1 Cicada Jan 08 2021 at 16:58

Il piè di pagina nella prima pagina di una lettera è vuoto per impostazione predefinita.

Dovrai definire il tuo piè di pagina della prima pagina utilizzando la firstfootvariabile e impostare la sua posizione dalla parte superiore della pagina con la firstfootvposvariabile.

Attiva il piè di pagina con l' firstfoot=trueopzione.

I piè di pagina successivi (eseguiti \cfootdal scrlayer-scrpagepacchetto nell'esempio di codice; funziona bene) possono anche essere impostati scrlttr2utilizzando la sua nextfootvariabile.

Inoltre, poiché non c'è carta intestata nell'esempio e nessun riferimento, mi sono preso la libertà di spostare un po 'più in alto nella pagina l'indirizzo di destinazione e il corpo della lettera, per utilizzare parte dello spazio.

MWE

\documentclass[firstfoot=true,
enlargefirstpage=true,
firsthead=false,
]{scrlttr2}
%%\usepackage{scrlayer-scrpage}
%\cfoot{Page \thepage\ of \letterlastpage}

\setplength{toaddrvpos}{\footskip}
\setplength{refvpos}{3.5\footskip}
\pagestyle{myheadings}
%\markboth{}{}
\setplength{firstfootvpos}{\pageheight-1.5\footskip}\setkomavar{firstfoot}{%
\parbox[t]{\linewidth}{%
\centering \textit{Page \thepage\ of \letterlastpage}%
}%
}
\setkomavar{nextfoot}{%
\parbox[t]{\linewidth}{%
\centering \textit{Page \thepage\ of \letterlastpage}%
}%
}
\usepackage{lipsum}
\begin{document}
\begin{letter}{%
    Jerry Garcia\\
    710 Ashbury St\\
    San Francisco\\
    CA 94117
    }
    \opening{Dear Friend,}
    
  \lipsum\lipsum    

\end{letter}

\begin{letter}{%
    Jerry Garcia\\
    710 Ashbury St\\
    San Francisco\\
    CA 94117
    }
    \opening{Dear Friend,}

  \lipsum\lipsum    

\end{letter}

\end{document}
rugk Jan 08 2021 at 22:32

Combinando più risposte (collegate nel codice), ho trovato una soluzione che utilizza solo il scrlttr2parametro interno , cioè principalmente \pagemark.

Inoltre hai un posto per definire lo stile del numero di pagina lì.

\documentclass[enlargefirstpage=true]{scrlttr2}
\usepackage{scrlayer-scrpage}

% better page numbers with total number
% https://tex.stackexchange.com/a/578072/98645
\renewcommand*\pagemark{%
  \usekomafont{pagenumber}{\pagename~\thepage~of~\letterlastpage}%
  %\usekomafont{pagenumber}{-~\thepage~von~\letterlastpage~-}% different style example
}
% also show page number on first page
% https://tex.stackexchange.com/a/578050/98645
\markboth{}{}
\setkomavar{firstfoot}{%
    \parbox[t]{\linewidth}{%
        \centering \pagemark%
    }%
}

\usepackage{lipsum}
\begin{document}
\begin{letter}{%
    Jerry Garcia\\
    710 Ashbury St\\
    San Francisco\\
    CA 94117
    }
    \opening{Dear Friend,}

  \lipsum\lipsum    

\end{letter}

\begin{letter}{%
    Jerry Garcia\\
    710 Ashbury St\\
    San Francisco\\
    CA 94117
    }
    \opening{Dear Friend,}

  \lipsum\lipsum    

\end{letter}

\end{document}