Seitenfarbe für Double-Double-Float festlegen

Seitenfarbe für Double-Double-Float festlegen

Ich habe einen benutzerdefinierten Befehl, der aus zwei Instanzen von besteht \@dblfloat. Ich möchte die Seitenfarbe auf Seiten ändern, auf denen dies vorkommt. Ich kann dies für eine einzelne Instanz von tun \@dblfloat, aber nicht für mehr.

Im folgenden Beispiel ist die erste Abbildung blau gefärbt (korrekt), die folgenden Abbildungen jedoch nicht. Wenn ich \pagecolorohne \afterpage„before“ platziere \@dblfloat, wird auch die Seite vor den Floats gefärbt.

(Beachten Sie, dass ich in diesem Beispiel einen Figure-Float verwende, um ein MWE bereitzustellen, ich hätte aber gerne eine Lösung für alle Floats – auch benutzerdefinierte.)

\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}

Antwort1

Wahrscheinlich ist die Seite vor den Abbildungen auch wegen der Funktionsweise von Floats in Latex farbig. Siehe zum Beispiel die grüne Seite, dort gibt es dieses Problem nicht

\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}

Bildbeschreibung hier eingeben

verwandte Informationen