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?

Jan 08 2021

Tôi sử dụng tập lệnh KOMA scrlttr2và 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

1 esdd Jan 08 2021 at 22:26

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\pagemarkcho 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 plaintrê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}

1 Cicada Jan 08 2021 at 16:58

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 firstfootbiến và đặt vị trí của nó từ đầu trang với firstfootvposbiến.

Bật chân trang bằng firstfoot=truetùy chọn.

Các footers tiếp theo (thực hiện với \cfoottừ scrlayer-scrpagegó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 scrlttr2bằng cách sử dụng của nó nextfootbiế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}
rugk Jan 08 2021 at 22:32

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