Afficher le numéro de page / même pied de page sur la première page d'une lettre dans KOMA scrlttr2?

Jan 08 2021

J'utilise le script KOMA scrlttr2et je veux juste afficher le même texte (ma numérotation / numéro de page) sur toutes les pages de ma lettre, y compris bien sûr la première.

J'ai trouvé cette réponse et ce billet de blog quelque peu ancien . Mais les deux sont maladroitement compliqués et m'obligent à définir un sacré macros LaTex pour faire la même chose qu'il fait automatiquement à partir de la page deux (2).

Comment puis-je afficher le même texte (numéro de page) sur le pied de page de la première page que dans le pied de page de la deuxième / des autres pages? Contrairement à toutes les autres questions, je ne recherche pas la solution la plus élégante (qui prend 100 lignes), mais je serais d'accord pour dupliquer / coder à nouveau le pied de page en le répétant. Même si cela me prendrait d'écrire «Page 1 de \ letterlastpage».

J'utilise essentiellement cet exemple, tiré d'ici :

\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}

Réponses

1 esdd Jan 08 2021 at 22:26

La mise en page de la première page de lettre est particulière. Le style de page de la première page de lettre est empty. Il utilise des éléments spéciaux pour l'adresse, l'emplacement, l'en-tête, le pied de page, etc.

Vous devez utiliser une variable firstfootpour ajouter du contenu dans le pied de page de la première page. Si vous redéfinissez \pagemarkpour obtenir »Page ... de ...«, vous pouvez utiliser \centering\pagemarkpour firstfoot:

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

Exemple:

\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}

Notez que le pied de page de la première page est plus bas que sur les autres pages. S'il doit être à la même position, vous pouvez patcher \openingpour utiliser le style de page plainsur la première page:

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

ou avec forfait xpatch:

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

Notez que vous pouvez toujours utiliser la variable firstheadpour définir un en-tête de la première page de lettre.

Exemple:

\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

Le pied de page de la première page d'une lettre est vide par défaut.

Vous devrez définir votre propre pied de page de première page à l'aide de la firstfootvariable et définir sa position à partir du haut de la page avec la firstfootvposvariable.

Activez le pied de page avec l' firstfoot=trueoption.

Les pieds de page suivants (fait avec \cfootle scrlayer-scrpagepackage dans votre exemple de code; cela fonctionne bien) peuvent également être définis à l'intérieur scrlttr2en utilisant sa nextfootvariable.

De plus, comme il n'y a pas d'en-tête dans l'exemple, ni de référence, j'ai pris la liberté de déplacer un peu l'adresse de destination et le corps de la lettre plus haut dans la page, pour utiliser une partie de l'espace.

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

En combinant plusieurs réponses (liées dans le code), j'ai trouvé une solution qui n'utilise que le scrlttr2paramètre interne , c'est-à-dire principalement \pagemark.

Vous disposez également d'un seul emplacement pour y définir le style de numéro de page.

\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}