Afficher le numéro de page / même pied de page sur la première page d'une lettre dans KOMA scrlttr2?
J'utilise le script KOMA scrlttr2
et 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
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 firstfoot
pour ajouter du contenu dans le pied de page de la première page. Si vous redéfinissez \pagemark
pour obtenir »Page ... de ...«, vous pouvez utiliser \centering\pagemark
pour 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}
![](https://post.nghiatu.com/assets/images/s/lIt7q.png)
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 \opening
pour utiliser le style de page plain
sur 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 firsthead
pour 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}
![](https://post.nghiatu.com/assets/images/s/dxdlj.png)
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 firstfoot
variable et définir sa position à partir du haut de la page avec la firstfootvpos
variable.
Activez le pied de page avec l' firstfoot=true
option.
Les pieds de page suivants (fait avec \cfoot
le scrlayer-scrpage
package dans votre exemple de code; cela fonctionne bien) peuvent également être définis à l'intérieur scrlttr2
en utilisant sa nextfoot
variable.
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.
![](https://post.nghiatu.com/assets/images/s/EbLmo.png)
![](https://post.nghiatu.com/assets/images/s/gvXR1.png)
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}
En combinant plusieurs réponses (liées dans le code), j'ai trouvé une solution qui n'utilise que le scrlttr2
paramè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}