Tampilkan nomor halaman / footer yang sama pada halaman pertama sebuah surat di KOMA scrlttr2?

Jan 08 2021

Saya menggunakan script KOMA scrlttr2dan hanya ingin menampilkan teks yang sama (penomoran / nomor halaman saya) di semua halaman surat saya, tentu termasuk yang pertama.

Saya telah menemukan jawaban ini dan posting blog yang agak lama ini . Tapi keduanya sangat rumit dan mengharuskan saya untuk mendefinisikan makro LaTex untuk melakukan hal yang sama secara otomatis dimulai dengan halaman dua (2).

Bagaimana cara menampilkan teks yang sama (nomor halaman) di footer halaman pertama seperti di footer di halaman kedua / al lainnya? Berbeda dengan semua pertanyaan lain, saya tidak mencari solusi paling elegan (yang membutuhkan 100 baris), tetapi saya akan baik-baik saja dengan menduplikasi / meng-hardcode footer lagi dengan mengulanginya. Bahkan jika saya perlu menulis "Halaman 1 dari \ letterlastpage".

Saya pada dasarnya menggunakan contoh ini, diambil dari sini :

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

Jawaban

1 esdd Jan 08 2021 at 22:26

Tata letak halaman surat pertama itu istimewa. Gaya halaman dari halaman huruf pertama adalah empty. Ini menggunakan elemen khusus untuk alamat, lokasi, header, footer dll.

Anda harus menggunakan variabel firstfootuntuk menambahkan konten di footer halaman pertama. Jika Anda mendefinisikan ulang \pagemarkuntuk mendapatkan »Halaman ... dari ...«, maka Anda dapat menggunakan \centering\pagemarkuntuk firstfoot:

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

Contoh:

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

Perhatikan bahwa footer pada halaman pertama lebih rendah dari pada halaman lainnya. Jika harus pada posisi yang sama, maka Anda dapat menambal \openinguntuk menggunakan gaya halaman plaindi halaman pertama:

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

atau dengan paket xpatch:

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

Perhatikan bahwa Anda masih dapat menggunakan variabel firstheaduntuk menentukan header halaman surat pertama.

Contoh:

\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

Footer di halaman pertama surat kosong secara default.

Anda perlu menentukan footer halaman pertama Anda sendiri menggunakan firstfootvariabel dan mengatur posisinya dari bagian atas halaman dengan firstfootvposvariabel.

Aktifkan footer dengan firstfoot=trueopsi.

Footer berikutnya (dilakukan dengan \cfootdari scrlayer-scrpagepaket dalam contoh kode Anda; berfungsi dengan baik) juga dapat disetel di dalam scrlttr2dengan menggunakan nextfootvariabelnya.

Juga, karena tidak ada kop surat dalam contoh, dan tidak ada referensi, saya telah mengambil kebebasan untuk memindahkan alamat-ke dan badan surat lebih jauh ke atas halaman sedikit, untuk menggunakan beberapa ruang.

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

Dengan menggabungkan beberapa jawaban (ditautkan dalam kode), saya telah menemukan solusi yang hanya menggunakan scrlttr2parameter internal , yaitu kebanyakan \pagemark.

Anda juga memiliki satu tempat untuk menentukan gaya nomor halaman di sana.

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