Mostrar o número da página / mesmo rodapé na primeira página de uma carta em KOMA scrlttr2?
Eu uso o script KOMA scrlttr2
e só quero exibir o mesmo texto (minha numeração / número de página) em todas as páginas da minha carta, é claro incluindo a primeira.
Eu encontrei esta resposta e esta postagem de blog um tanto antiga . Mas ambos são estranhamente complicados e exigem que eu defina um monte de macros LaTex apenas para fazer o mesmo que faz automaticamente começando com a página dois (2).
Como posso exibir o mesmo texto (número da página) no rodapé da primeira página como no rodapé da segunda / todas as outras páginas? Em contraste com todas as outras questões, não estou procurando a solução mais elegante (que leva 100 linhas), mas ficaria bem em duplicar / codificar o rodapé novamente, repetindo-o. Mesmo que fosse preciso escrever “Página 1 de \ últimapágina da carta”.
Basicamente, uso este exemplo, tirado daqui :
\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}
Respostas
O layout da página da primeira carta é especial. O estilo da página da primeira letra é empty
. Ele usa elementos especiais para o endereço, localização, cabeçalho, rodapé, etc.
Você tem que usar variável firstfoot
para adicionar conteúdo no rodapé da primeira página. Se você redefinir \pagemark
para obter »Página ... de ...«, poderá usar \centering\pagemark
para firstfoot
:
\renewcommand*\pagemark{%
\usekomafont{pagenumber}{\pagename~\thepage~of~\letterlastpage}%
}
\setkomavar{firstfoot}{\centering\pagemark}
Exemplo:
\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}
Observe que o rodapé na primeira página é mais baixo do que nas outras páginas. Se ele deve estar na mesma posição, você pode corrigir \opening
para usar o estilo de página plain
na primeira página:
\newcommand{\originalopening}{}
\let\originalopening\opening
\renewcommand{\opening}[1]{\originalopening{#1}\thispagestyle{plain}}
\KOMAoptions{firstfoot=false}% disable first footer
ou com pacote xpatch
:
\usepackage{xpatch}
\xpatchcmd{\opening}{\thispagestyle{empty}}{\thispagestyle{plain}}{}{\PatchFailed}
\KOMAoptions{firstfoot=false}% disable first footer
Observe que você ainda pode usar a variável firsthead
para definir um cabeçalho da página da primeira letra.
Exemplo:
\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}
O rodapé da primeira página de uma carta está vazio por padrão.
Você precisará definir seu próprio rodapé de primeira página usando a firstfoot
variável e definir sua posição a partir do topo da página com a firstfootvpos
variável.
Ative o rodapé com a firstfoot=true
opção.
Os rodapés subsequentes (feitos com \cfoot
o scrlayer-scrpage
pacote em seu exemplo de código; funciona bem) também podem ser definidos scrlttr2
usando sua nextfoot
variável.
Além disso, como não há papel timbrado no exemplo e nenhuma referência, tomei a liberdade de mover o endereço de destino e o corpo da carta um pouco mais para cima na página, para usar um pouco do espaço.
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}
Ao combinar várias respostas (vinculadas no código), encontrei uma solução que usa apenas o scrlttr2
parâmetro interno , ou seja, principalmente \pagemark
.
Além disso, você tem um local para definir o estilo do número da página.
\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}