![不使用 \clearpage 以双栏模式开始新页面](https://linux22.com/image/467426/%E4%B8%8D%E4%BD%BF%E7%94%A8%20%5Cclearpage%20%E4%BB%A5%E5%8F%8C%E6%A0%8F%E6%A8%A1%E5%BC%8F%E5%BC%80%E5%A7%8B%E6%96%B0%E9%A1%B5%E9%9D%A2.png)
我面临的挑战是需要开始清洁页面在一个双列(Xe)LaTeX 文档,没有浮华的语义\clearpage
。
考虑以下示例,这是我最接近实现所需输出的示例:
\afterpage
{
\clearpage
\begin{tikzpicture}[remember picture,overlay,x=\paperwidth,y=\paperheight]%
...
\end{tikzpicture}
\clearpage
}
这会等待当前页面结束,然后填充一个tikzpicture
,这样我就可以在空白的下一页上绘图。绘图完成后,常规文档将恢复 - 就像将图片页粘贴到常规文档中一样。
但是,存在以下问题:
- 由于
\clearpage
,上述代码强制刷新所有先前的浮点数。这实际上是不受欢迎的,因为我有很多浮点数,我不希望 tikzpicture 干扰放置。我想避免潮红。 - 如果我用 替换
\clearpage
,\newpage
我可以避免刷新,但这种方法不适合双列文档,因为它\newpage
的含义变成了开始一个新列。 - 如果我替换
\clearpage
,\newpage~\newpage
我必须始终确保仅在偶数列之后触发它。 - 如果我消除第一个
\clearpage
,实际上确实tikzpicture
按照期望在新页面上开始;然而,后续的文档内容被放置在 下方tikzpicture
。
我认为可能有两种不同的解决方法,但我没有成功:
\clearpage
找到一个没有齐平的双列- 使用
\afterpage{\tikz{...}\magic\newpage~\newpage}
where\magic
确保页面上不会出现其他内容。
如有任何建议或想法我将不胜感激。
答案1
这\null
是因为你不能连续有两个\newpage
s(或s)。\newcolumn
\documentclass[twocolumn]{article}
\usepackage{lipsum}
\let\newcolumn=\newpage
\makeatletter
\renewcommand{\newpage}{\if@firstcolumn\newcolumn\null\fi \newcolumn}
\makeatother
\begin{document}
\lipsum[1]
\newpage
\lipsum[2]
\end{document}