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