我需要自动添加一个空白页(也没有文档页眉、编号和页脚),如果总页数为奇数。我该怎么做?最好不要使用任何附加包。:)
答案1
像这样?
\documentclass[twoside]{article}
\begin{document}
one
\cleardoublepage
\end{document}
或者你可以使用这个版本
\makeatletter
\def\emptycleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\thispagestyle{empty}%
\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother
这与标准相同,\cleardoublepage
当然\thispagestyle{empty}%
,您不只是必须使用,empty
您还可以使用插入的页面样式this page intentionally blank
或其他所需的内容。
答案2
原始答案确保最后一页平整且空白(现在与该问题合并。)
如果要确保twoside
模式下的页数为偶数,只需\cleardoublepage
在文档末尾添加即可,手动添加或使用\AtEndDocument{..}
。 如果要使页面空白,则需要\cleardoublepage
稍微修改所使用的代码以包含\thispagestyle
:
\documentclass[twoside]{report}
%\AtEndDocument{\cleardoublepage}
\AtEndDocument{% based in \cleardoublepage
\clearpage
\ifodd\value{page}\else
\thispagestyle{empty}%
\hbox{}\newpage
\fi
}
\usepackage{lipsum}% for dummy text
\begin{document}
\lipsum[1-47]
\end{document}
这仅用于twoside
文档。请参阅我的回答如何强制输出到左页(或右页)?oneside
对于在文档中表现良好所需的额外代码。
答案3
这是一个可能的选择:借助包的帮助lastpage
,您可以检查最后一页是奇数还是偶数;在第一种情况下,添加一个具有empty
样式的额外页面;否则,什么也不做:
\documentclass{article}
\usepackage{ifthen}
\usepackage{lastpage}
\usepackage{lipsum}
\AtEndDocument{%
\ifthenelse{\isodd{\pageref{LastPage}}}{\null\clearpage\thispagestyle{empty}}{}}
\begin{document}
\lipsum[1]
\end{document}
实际上,需要进行细化才能满足添加页面的条件(empty
页面样式):
\documentclass{article}
\usepackage{ifthen}
\usepackage{lastpage}
\usepackage{lipsum}
\makeatletter
\def\emptyclearpage{%
\ifvmode
\ifnum \@dbltopnum =\m@ne
\ifdim \pagetotal <\topskip
\hbox{}%
\fi
\fi
\fi
\newpage\thispagestyle{empty}
\write\m@ne{}%
\vbox{}%
\penalty -\@Mi
}
\makeatother
\AtEndDocument{%
\emptyclearpage
\ifthenelse{\isodd{\pageref{LastPage}}}{\null\emptyclearpage}{}}
\begin{document}
\lipsum[1]
\end{document}
答案4
如果你使用emptypage
打包文档后twoside
,你可以使用以下命令使最后一页均匀且空白:
\documentclass[twoside]{article}
\usepackage{emptypage}
\AtEndDocument{\clearpage\thispagestyle{empty}\null\cleardoublepage}
\begin{document}
A \newpage B % \newpage C
\end{document}