Mostrar o número da página / mesmo rodapé na primeira página de uma carta em KOMA scrlttr2?

Jan 08 2021

Eu uso o script KOMA scrlttr2e 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

1 esdd Jan 08 2021 at 22:26

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 firstfootpara adicionar conteúdo no rodapé da primeira página. Se você redefinir \pagemarkpara obter »Página ... de ...«, poderá usar \centering\pagemarkpara 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 \openingpara usar o estilo de página plainna 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 firstheadpara 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}

1 Cicada Jan 08 2021 at 16:58

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 firstfootvariável e definir sua posição a partir do topo da página com a firstfootvposvariável.

Ative o rodapé com a firstfoot=trueopção.

Os rodapés subsequentes (feitos com \cfooto scrlayer-scrpagepacote em seu exemplo de código; funciona bem) também podem ser definidos scrlttr2usando sua nextfootvariá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}
rugk Jan 08 2021 at 22:32

Ao combinar várias respostas (vinculadas no código), encontrei uma solução que usa apenas o scrlttr2parâ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}