Установить цвет страницы для double-double float

Установить цвет страницы для double-double float

У меня есть пользовательская команда, включающая два экземпляра \@dblfloat. Я хотел бы изменить цвет страницы на страницах, где это происходит. Я могу сделать это для одного экземпляра \@dblfloat, но не для большего количества.

В следующем примере первая фигура окрашена в синий цвет (правильно), а последующие — нет. Если я размещу \pagecolorбез \afterpagebefore \@dblfloat, страница, предшествующая float, также будет окрашена.

(Обратите внимание, что в этом примере я использую числовое значение float для предоставления MWE, но мне хотелось бы получить решение для всех float, включая пользовательские.)

\documentclass[twocolumn]{article}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{afterpage}

\makeatletter
\newenvironment{dblfigure}{
  \afterpage{\pagecolor{blue!50}}
    \@dblfloat{figure}  
}{
  \afterpage{\clearpage\nopagecolor}
    \end@dblfloat

}

\newcommand{\dblpagefigure}[2]{

    \@dblfloat{figure}
     % \pagecolor{blue!50} puts color too early
      #1
    \end@dblfloat
    \@dblfloat{figure}
      #2
    \end@dblfloat
}
\makeatother

\usepackage{lipsum}

\begin{document}

\lipsum[1-4]
\begin{dblfigure}
\caption{Some other figure}
\includegraphics{example-image}
\end{dblfigure}

\lipsum
Some text to avoid `\lipsum` taking up an exact page.

\lipsum

\dblpagefigure{
    \caption{Some figure}
    \includegraphics[width=\textwidth]{example-image}
}{
    \caption{Another figure}
    \includegraphics[width=\textwidth]{example-image}
    \afterpage{\clearpage\nopagecolor}
}

\lipsum
\lipsum


\end{document}

решение1

Вероятно, предыдущая страница с рисунками также окрашена из-за того, как работают поплавки в латексе. Посмотрите, например, на зеленую страницу, у нее такой проблемы нет.

\documentclass[twocolumn]{article}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{afterpage}

\makeatletter
\newenvironment{dblfigure}{
  \pagecolor{blue!50}\afterpage{\nopagecolor}
    \@dblfloat{figure} 
} {
  \end@dblfloat
}

\newenvironment{sglfigure}{
  \pagecolor{green!50}\afterpage{\nopagecolor}
  \begin{figure}
} {
  \end{figure}
}

\newcommand{\dblpagefigure}[2]{

    \begin{dblfigure}
      #1
    \end{dblfigure}
    % 
    \begin{dblfigure}
      #2
    \end{dblfigure}
}
\makeatother

\usepackage{lipsum}

\begin{document}

\lipsum[1-4]

\begin{dblfigure}
\caption{Some other figure}
\includegraphics{example-image}
\end{dblfigure}

\lipsum
Some text to avoid `\lipsum` taking up an exact page.

\lipsum

\dblpagefigure{
  \caption{Some figure}
  \includegraphics[width=\textwidth]{example-image}
}{
  \caption{Another figure}
  \includegraphics[width=\textwidth]{example-image}
}

\lipsum
\lipsum

\lipsum[1]
\begin{sglfigure}
\caption{Some other figure}
\includegraphics[width = 0.5\textwidth]{example-image}
\end{sglfigure}

\lipsum


\end{document}

введите описание изображения здесь

Связанный контент