![회고록의 종이를 기준으로 바닥글 중앙 정렬](https://rvso.com/image/305762/%ED%9A%8C%EA%B3%A0%EB%A1%9D%EC%9D%98%20%EC%A2%85%EC%9D%B4%EB%A5%BC%20%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C%20%EB%B0%94%EB%8B%A5%EA%B8%80%20%EC%A4%91%EC%95%99%20%EC%A0%95%EB%A0%AC.png)
페이지 여백이 아닌 실제 용지 너비를 기준으로 페이지 스타일의 바닥글을 중앙에 배치하고 싶습니다. 제목 페이지용으로 특별히 페이지 스타일을 만들었습니다. 나는 선이 페이지 중심을 적절하게 계산할 것이라고 생각했지만 \makerunningwidth
, 분명히 볼 수 있듯이 페이지 번호가 나머지 텍스트(용지 중심을 기준으로 절대적으로 정렬됨)와 정렬되지 않았습니다.
문서는 다음을 사용하여 생성됩니다.
\documentclass{memoir}
\copypagestyle{INRSDocExamTitle}{plain}
\makerunningwidth{INRSDocExamTitle}{\paperwidth}
\makeoddfoot{INRSDocExamTitle}{}{\thepage}{}
\makeevenfoot{INRSDocExamTitle}{}{\thepage}{}
\begin{document}
\thispagestyle{INRSDocExamTitle}
\newlength{\centeradjust}
\calccentering{\centeradjust} % Calculate center length and stores in centeradjust
\begin{adjustwidth*}{\centeradjust}{-\centeradjust} % Adjust center
\begin{adjustwidth}{-1cm}{-1cm}
\begin{center}
\begin{OnehalfSpace}
\vspace*{3\baselineskip}
{\Large Centered text using adjustwidth (as per the \texttt{memoir} manual)}
\vfill
{\large This foooter is not centered with respect to the page,\\
but with respect to the type block. \\
$\downarrow$
}
\vspace*{3\baselineskip}
\end{OnehalfSpace}
\end{center}
\end{adjustwidth}
\end{adjustwidth*}
\end{document}
여백이 아닌 페이지를 기준으로 바닥글을 중앙에 배치하는 방법이 있습니까?
답변1
아이디어는 고르지 않은 여백을 보상하기 위해 페이지 번호를 오프셋하는 것입니다.
\documentclass{memoir}
\copypagestyle{INRSDocExamTitle}{plain}
\makeoddfoot{INRSDocExamTitle}{}{\thepage\offset}{}
\makeevenfoot{INRSDocExamTitle{}{\thepage\offset}{}
\newcommand{\offset}% center page number in text area
{\ifodd\value{page}\hspace{\dimexpr 2in+2\oddsidemargin+\textwidth-\paperwidth}%
\else\hspace{\dimexpr 2in+2\evensidemargin+\textwidth-\paperwidth}%
\fi}
\usepackage{tikzpagenodes}% used only to show center of page
\begin{document}
\pagestyle{INRSDocExamTitle}
\begin{tikzpicture}[remember picture,overlay]
\draw[red] (current page.north) -- (current page.south);
\end{tikzpicture}
odd page
\newpage
\begin{tikzpicture}[remember picture,overlay]
\draw[red] (current page.north) -- (current page.south);
\end{tikzpicture}
even page
\end{document}
답변2
IMO에서 가장 쉬운 방법은 이 특정 페이지 스타일을 수동으로 코딩하는 것입니다.
\makeatletter
\@namedef{ps@INRSDocExamTitle}{%
\@namedef{@oddfoot}{%
\hspace{-\spinemargin}%
\parbox[b]{\paperwidth}{%
\strut\hfill \thepage \hfill\strut%
}%
}%
}
\makeatother
효과만 보여드리자면
\documentclass[a4paper]{memoir}
\setlrmarginsandblock{1cm}{4cm}{*}
\checkandfixthelayout
\makeatletter
\@namedef{ps@INRSDocExamTitle}{%
\@namedef{@oddfoot}{%
\hspace{-\spinemargin}%
\parbox[b]{\paperwidth}{%
\strut\hfill \thepage \hfill\strut%
}%
}%
}
\makeatother
\begin{document}
\thispagestyle{INRSDocExamTitle}
\newlength{\centeradjust}
\calccentering{\centeradjust} % Calculate center length and stores in centeradjust
\begin{adjustwidth*}{\centeradjust}{-\centeradjust} % Adjust center
\begin{adjustwidth}{-1cm}{-1cm}
\begin{center}
\begin{OnehalfSpace}
\vspace*{3\baselineskip}
{\Large Centered text using adjustwidth (as per the \texttt{memoir} manual)}
\vfill
This foooter is not centered with respect to the page,\\
but with respect to the type block.
$\downarrow$
\noindent
test\hfill\smash{%
\rule[-3.7cm]{0.4pt}{4cm}%
}\hfill test%
\vspace*{3\baselineskip}
\end{OnehalfSpace}
\end{center}
\end{adjustwidth}
\end{adjustwidth*}
\end{document}