Erweitern Sie das Makro beim Float-Satz (nicht bei der Definition).

Erweitern Sie das Makro beim Float-Satz (nicht bei der Definition).

Meines Wissens wird der Inhalt einer Float-Umgebung in eine Box eingefügt, wenn der Float definiert wird. Ist es möglich, einen benutzerdefinierten Befehl/ein benutzerdefiniertes Makro zu verarbeiten, wenn der Float tatsächlich gesetzt wird, z. B. um ein Wasserzeichen auf dieser bestimmten Seite zu platzieren (was nicht unbedingt die Seite ist, auf der der Float definiert ist)?

Ist es notwendig, der Definition der Float-Umgebung etwas hinzuzufügen, oder kann ich innerhalb ihres Textkörpers einen Befehl verwenden?

Antwort1

Wenn Sie nur ein Wasserzeichen auf einer Seite suchen, auf der ein bestimmter Float-Typ erscheint, können Sie die Shipout-Routine nutzen mitatbegshiund Bedingung für etwas Zählermagie mit einem Float-Zähler-Tracking-Mechanismus:

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{atbegshi,refcount,etoolbox,graphicx,xcolor}
\usepackage{lipsum,afterpage}

\newcounter{floatcntr}
\AtEndEnvironment{figure}{\refstepcounter{floatcntr}\label{floatcntr@\roman{floatcntr}}}
\newcounter{floatsearch}\setcounter{floatsearch}{1}

\AtBeginShipout{%
  \ifnum\value{page}>\getpagerefnumber{floatcntr@\roman{floatsearch}}
    \stepcounter{floatsearch}% In case there are multiple (2) floats on the same page
  \fi
  \ifnum\value{page}=\getpagerefnumber{floatcntr@\roman{floatsearch}}
    \AtBeginShipoutUpperLeft{%
      \parbox[t]{\pdfpagewidth}{\centering\bfseries\sffamily%
        \vspace{.4\pdfpageheight}%
        \resizebox{.7\pdfpagewidth}{!}{\textcolor{red!80}{DRAFT}}}
    }%
    \stepcounter{floatsearch}
  \fi
}

\begin{document}

\lipsum[1-3]

\begin{figure}[ht]
  \centering\includegraphics[width=.6\linewidth]{example-image}
  \caption{A figure}
\end{figure}

\lipsum[4-12]

\afterpage{\clearpage}% Just to flush the float
\begin{figure}[p]
  \centering\includegraphics[width=.6\linewidth]{example-image}
  \caption{A figure}
\end{figure}

\lipsum[13-25]

\end{document}

Das obige MWE erstellt einen Zähler floatcntr, der am Ende jedes Schritts (und auf den verwiesen wird) ausgeführt wird figure. Die Referenz wird dann beim Versand mit der Seitenzahl verglichen und bei einer Übereinstimmung wird Hintergrundinhalt angezeigt.

Vorbehalt: Das obige Setup geht von nicht mehr als zwei figures pro Seite aus. Wenn mehr vorhanden sind (höchst unwahrscheinlich), können einige Änderungen erforderlich sein.

verwandte Informationen