Hiển thị số trang / cùng một chân trang trên trang đầu tiên của một bức thư trong KOMA scrlttr2?
Tôi sử dụng tập lệnh KOMA scrlttr2
và chỉ muốn hiển thị cùng một văn bản (số / số trang của tôi) trên tất cả các trang trong bức thư của tôi, tất nhiên bao gồm cả trang đầu tiên.
Tôi đã tìm thấy câu trả lời này và bài đăng trên blog hơi cũ này . Nhưng cả hai đều phức tạp một cách khó hiểu và yêu cầu tôi phải xác định một đống macro LaTex để chỉ làm giống như nó tự động bắt đầu từ trang hai (2).
Làm cách nào để tôi có thể hiển thị cùng một văn bản (số trang) trên chân trang của trang đầu tiên như trong chân trang trên trang thứ hai / al các trang khác? Trái ngược với tất cả các câu hỏi khác, tôi không tìm kiếm giải pháp thanh lịch nhất (mất 100 dòng), nhưng tôi sẽ ổn với việc sao chép / mã hóa cứng chân trang một lần nữa bằng cách lặp lại nó. Ngay cả khi tôi sẽ mất công viết “Trang 1 của \ letterlastpage”.
Về cơ bản tôi sử dụng ví dụ này, được lấy từ đây :
\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}
Trả lời
Bố cục của trang chữ cái đầu tiên là đặc biệt. Kiểu trang của trang chữ cái đầu tiên là empty
. Nó sử dụng các phần tử đặc biệt cho địa chỉ, vị trí, đầu trang, chân trang, v.v.
Bạn phải sử dụng biến firstfoot
để thêm nội dung vào chân trang của trang đầu tiên. Nếu bạn xác định lại \pagemark
để lấy »Trang ... trong tổng số ...«, thì bạn có thể sử dụng \centering\pagemark
cho firstfoot
:
\renewcommand*\pagemark{%
\usekomafont{pagenumber}{\pagename~\thepage~of~\letterlastpage}%
}
\setkomavar{firstfoot}{\centering\pagemark}
Thí dụ:
\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}
Lưu ý rằng chân trang trên trang nắm tay thấp hơn trên các trang khác. Nếu nó phải ở cùng một vị trí, thì bạn có thể vá \opening
để sử dụng kiểu trang plain
trên trang đầu tiên:
\newcommand{\originalopening}{}
\let\originalopening\opening
\renewcommand{\opening}[1]{\originalopening{#1}\thispagestyle{plain}}
\KOMAoptions{firstfoot=false}% disable first footer
hoặc với gói xpatch
:
\usepackage{xpatch}
\xpatchcmd{\opening}{\thispagestyle{empty}}{\thispagestyle{plain}}{}{\PatchFailed}
\KOMAoptions{firstfoot=false}% disable first footer
Lưu ý rằng bạn vẫn có thể sử dụng biến firsthead
để xác định tiêu đề của trang chữ cái đầu tiên.
Thí dụ:
\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}
Chân trang trên trang đầu tiên của một bức thư trống theo mặc định.
Bạn sẽ cần phải xác định chân trang đầu tiên của riêng mình bằng cách sử dụng firstfoot
biến và đặt vị trí của nó từ đầu trang với firstfootvpos
biến.
Bật chân trang bằng firstfoot=true
tùy chọn.
Các footers tiếp theo (thực hiện với \cfoot
từ scrlayer-scrpage
gói trong ví dụ mã của bạn, nó hoạt động OK) cũng có thể được thiết lập trong phạm vi scrlttr2
bằng cách sử dụng của nó nextfoot
biến.
Ngoài ra, vì không có tiêu đề thư trong ví dụ và không có tham chiếu, tôi đã tự do di chuyển địa chỉ đến và nội dung thư lên trang một chút, để sử dụng một số khoảng trống.
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}
Bằng cách kết hợp nhiều câu trả lời (được liên kết trong mã), tôi đã tìm thấy một giải pháp chỉ sử dụng scrlttr2
tham số nội bộ , tức là chủ yếu \pagemark
.
Ngoài ra, bạn có một nơi để xác định kiểu số trang ở đó.
\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}