不使用 \clearpage 以双栏模式开始新页面

不使用 \clearpage 以双栏模式开始新页面

我面临的挑战是需要开始清洁页面在一个双列(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是因为你不能连续有两个\newpages(或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}

相关内容