KOMA scrlttr2에서 글자의 첫 페이지에 페이지 번호 / 동일한 바닥 글을 표시 하시겠습니까?

Jan 08 2021

KOMA 스크립트를 사용하고 첫 번째를 포함 하여 scrlttr2내 편지의 모든 페이지에 동일한 텍스트 (내 페이지 번호 / 번호)를 표시하고 싶습니다 .

이 답변 과 다소 오래된 블로그 게시물을 찾았 습니다 . 그러나 둘 다 어색하게 복잡하고 2 페이지부터 자동으로 수행하는 것과 동일한 작업을 수행하기 위해 LaTex 매크로를 정의해야합니다 (2).

첫 번째 페이지의 바닥 글에 두 번째 / 다른 페이지의 바닥 글과 동일한 텍스트 (페이지 번호)를 표시하려면 어떻게해야합니까? 다른 모든 질문과 달리 가장 우아한 솔루션 (100 줄이 필요함)을 찾고 있지는 않지만 반복하여 바닥 글을 다시 복제 / 하드 코딩하는 것이 좋습니다. 비록 "Page 1 of \ letterlastpage"를 써야하더라도.

기본적으로 여기 에서 가져온 이 예제를 사용합니다 .

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

답변

1 esdd Jan 08 2021 at 22:26

첫 글자 페이지의 레이아웃은 특별합니다. 첫 글자 페이지의 페이지 스타일은입니다 empty. 주소, 위치, 머리글, 바닥 글 등에 특수 요소를 사용합니다.

firstfoot첫 페이지의 바닥 글에 내용을 추가 하려면 변수를 사용해야합니다 . 당신이 다시 정의 경우 \pagemark의 ...«...»페이지를 얻으려면, 당신은 사용할 수 있습니다 \centering\pagemark에 대한 firstfoot:

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

예:

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

첫 페이지의 바닥 글은 다른 페이지보다 낮습니다. 동일한 위치에 있어야 하는 경우 첫 페이지에서 \opening페이지 스타일을 사용하도록 패치 할 수 있습니다 plain.

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

또는 패키지 xpatch:

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

변수 firsthead를 사용하여 첫 글자 페이지의 헤더를 정의 할 수 있습니다 .

예:

\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

편지의 첫 페이지에있는 바닥 글은 기본적으로 비어 있습니다.

firstfoot변수를 사용하여 첫 페이지 바닥 글을 정의하고 변수를 사용하여 페이지 상단에서 위치를 설정해야 firstfootvpos합니다.

firstfoot=true옵션으로 바닥 글을 켭니다 .

후속 바닥 글 ( 코드 예제 \cfootscrlayer-scrpage패키지에서 수행되었으며 정상적으로 작동 함)은 scrlttr2해당 nextfoot변수 를 사용하여 설정할 수도 있습니다 .

또한 예제에는 레터 헤드도없고 참조도 없기 때문에 일부 공간을 사용하기 위해 to-address와 letter body를 페이지 위로 조금 더 이동할 수있는 자유를 얻었습니다.

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

여러 답변 (코드에 연결됨)을 결합하여 내부 scrlttr2매개 변수, 즉 대부분 \pagemark.

또한 페이지 번호 스타일을 정의 할 수있는 한 곳이 있습니다.

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