한 페이지짜리 문서에서 페이지 번호를 자동으로 제거합니다.

한 페이지짜리 문서에서 페이지 번호를 자동으로 제거합니다.

나는 한 페이지짜리 문서에 페이지 번호를 넣는 LaTeX의 선택이 문체적으로 이상하다고 생각하므로 그러한 동작을 억제하고 싶습니다. 나는 이전에 이것을 해본 적이 있습니다.수동으로, 하지만 문서가 자신의 길이를 추적할 필요가 없는 것이 더 좋을 것입니다.

질문이 요청되었습니다.~ 전에, 그러나 OP가 선호하는 솔루션은 를 가지고 노는 것인데 \maketitle, 여기서는 나와 관련이 없습니다. 받아들인답변은 다음에 가야 할 매크로를 생성 하지만, 내가 작성하는 모든 문서에 항상 일부 사용자 정의 매크로를 넣는 것을 기억할 필요가 없도록 \begin{doucument}내 서문이나 파일에 넣을 수 있는 것이 있는 것이 더 나을 것입니다 ..sty

MWE:

\documentclass{article}
\usepackage{lipsum,fancyhdr}
    \pagestyle{fancy}
    \fancyhead[C]{Don't ever remove this header}
\begin{document}
\lipsum[1] % automatically remove page number in a document with this line
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

답변1

페이지 수를 대략적으로 계산할 수 있는 일부 패키지( totpages, count1to, lastpage, ...)가 있습니다. 이 예에서는 package를 사용합니다 zref-totpages.

\documentclass{article}

\usepackage{zref-totpages}

\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\fancyfoot[C]{%
  \ifnum\ztotpages=1 \else\thepage\fi
}

\begin{document}
\lipsum[1] % automatically remove page number in a document with this line
%\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

두 번의 LaTeX 실행이 필요합니다. 왜냐하면 첫 번째 페이지가 출시될 당시에는 몇 페이지가 나올지 일반적으로 알 수 없기 때문입니다.

\ztotpageszref파일에 레이블이 LastPageyes로 기록되지 않으면 첫 번째 LaTeX 실행에서 0입니다 .aux.

답변2

제가 올바르게 이해했다면 첫 번째 페이지에서 페이지 번호를 제거하고 헤더는 유지하고 싶으실 것입니다. 이는 기본값과 동일 fancy하지만 페이지 번호를 지정하지 않고 첫 번째 페이지에만 사용하는 사용자 정의 fancyhdr 스타일을 정의하여 수행할 수 있습니다 . 전체 MWE:

\documentclass{article}
\usepackage{lipsum,fancyhdr}
    \pagestyle{fancy}
    \fancyhead[C]{Don't ever remove this header}
\fancypagestyle{mystyle}{
    \fancyhf{}
    \fancyhead[C]{Don't ever remove this header}
    \fancyfoot[C]{}
}
\begin{document}
\thispagestyle{mystyle}
\lipsum[1] % automatically remove page number in a document with this line
\pagestyle{fancy}
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

승리! lastpage및 을 사용하여 자동화 부분이 작동하도록 했습니다 ifthen. 즉, 문서 길이( 에 의해 결정됨 lastpage)가 1 페이지를 초과하는지 여부를 확인합니다. 문서가 1페이지인 경우 mystyle페이지 번호가 있는 곳에 스타일이 사용됩니다. 그러나 문서가 1페이지보다 길면 첫 번째 페이지에서 스타일을 사용 mystyle하고 다음 페이지에서는 fancy스타일을 사용하게 됩니다.

\documentclass{article}
\usepackage{lipsum,fancyhdr,ifthen,lastpage}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\fancypagestyle{mystyle}{
    \fancyhf{}
    \fancyhead[C]{Don't ever remove this header}
    \fancyfoot[C]{}
}
\begin{document}
\ifthenelse{\pageref{LastPage}=1}
{
    \pagestyle{mystyle}
}
{
    \thispagestyle{mystyle}
}
\lipsum[1] % automatically remove page number in a document with this line
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

이제 유일한 것은 서문에서 사용할 수 없다는 것입니다 ...

답변3

패키지 의 예 lastpage:

\documentclass{article}
\usepackage{lastpage}
\usepackage{refcount}
\usepackage{etoolbox}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\begin{document}
\ifnumcomp{\getpagerefnumber{LastPage}}{>}{2}{}{\fancyfoot{}} 
 % If document is longer than 2 pages there will be page numeration, if not there will     not be.
\lipsum[1] % automatically remove page number in a document with this line
\end{document}

답변4

안녕하세요. 문서 끝부분의 페이지 번호를 테스트해 보겠습니다. 페이지가 하나만 있으면 중앙의 바닥글이 지워지고, 그렇지 않으면 기본값을 변경하지 않고 계속 이동하며 페이지 번호는 그대로 유지됩니다.

\documentclass{article}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\begin{document}
\lipsum[1]
%\lipsum[1-6] % Turn on/off this line...
\ifnum\thepage=1\fancyfoot[C]{}\fi
\end{document}

관련 정보