Tikz-Overlays auf Unterfiguren in Memoiren

Tikz-Overlays auf Unterfiguren in Memoiren

Angenommen, ich habe den folgenden Code in einem Dokument, das mit folgendem Satz gesetzt ist memoir:

\begin{figure}
\centering
\subbottom[]{
\label{sub1}
\includegraphics[width=0.4\linewidth]{test.png}}%
\subbottom[]{
\label{sub2}
\includegraphics[width=0.4\linewidth]{test.png}}%
\caption{\subcaptionref{sub1}: Left of the figure. \subcaptionref{sub2}: Right of the figure}
\end{figure}

wodurch die folgende Abbildung entsteht:

Bildbeschreibung hier eingeben

Ich möchte in der Lage sein, auf jedes der Bilder einen Text und eine mathematische Formel zu legen (mit Koordinaten relativ zu jedem Bild).

Ich habe diese beiden Beiträge gelesen:

Mir gefällt die im ersten Teil beschriebene Lösung, also die Verwendung von tikzBefehlen zum Überlagern von Text und Formeln, sehr gut.

Die von ihnen bereitgestellten Beispiele erfordern jedoch die Verwendung einer tikzpictureUmgebung, was mich anscheinend daran hindert, sie \subbottom[]für Unterfiguren in Memoiren zu verwenden.

Wie kann ich tikzpicture andscope in Kombination mit subbottomin verwenden memoir?

Nehmen wir als Beispiel an, ich möchte das Symbol $\phi$in der Mitte der Unterabbildung auf der linken Seite und das Symbol $\psi$in der Mitte der Unterabbildung auf der rechten Seite überlagern (beide in kleinen weißen Kästchen).

Antwort1

Da Sie nach einer Tikz-Methode gefragt haben, hier ist eine. Natürlich können Sie den Code stark aufräumen und Befehle und dergleichen erstellen, aber das folgende Beispiel zeigt Ihnen einen möglichen Weg

\documentclass{memoir}

\usepackage{graphicx}
\newsubfloat{figure}
\usepackage{tikz}

\begin{document}

\begin{figure}
\centering
\subbottom[]{%
\label{sub1}
\begin{tikzpicture}[inner sep=0pt,remember picture]
\node at (0,0) {\includegraphics[width=0.4\linewidth]{test.jpg}};
\node[fill=green!20] (a) at (1,1) {A node};
\end{tikzpicture}
}%
\subbottom[]{
\label{sub2}
\begin{tikzpicture}[inner sep=0pt,remember picture]
\node at (0,0) {\includegraphics[width=0.4\linewidth]{test.jpg}};
\node[fill=red!20] (b) at (0.5,0.5) {A node};
\end{tikzpicture}
}%
\begin{tikzpicture}[remember picture,overlay]
 \draw[->,red,very thick] (a) to[bend right] (b);
\end{tikzpicture}

\caption{\subcaptionref{sub1}: Left of the figure. \subcaptionref{sub2}: Right
of the figure}
\end{figure}

\end{document}

Im Grunde genommen fügen Sie das Bild in einen Knoten ein und können dann andere Knoten darüber einfügen. Indem Sie Tikz anweisen, sich die Knoten zu merken, können Sie diese Knoten später verbinden.

Bildbeschreibung hier eingeben

Antwort2

Dafür braucht man TikZ nicht unbedingt. Allerdings bietet es mehr Freiheit und Variabilität bei der Grafiküberlagerung. Aktuell sind Überlagerungen möglich über \ooalign:

Bildbeschreibung hier eingeben

\documentclass{memoir}% http://ctan.org/pkg/memoir
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\newsubfloat{figure}% Allows \subbottom and \subtop in figure
\newsavebox{\myfig}
\begin{document}
\begin{figure}
  \centering
  \savebox{\myfig}{\includegraphics[width=0.4\linewidth]{tiger}}% Store image
  \subbottom[]{%
    \label{sub1}%
    \ooalign{\usebox{\myfig}\cr\hss\raisebox{\dimexpr.5\ht\myfig-.5\baselineskip}{\colorbox{white}{\Huge$\phi$}}\hss}}%
  \subbottom[]{%
    \label{sub2}%
    \usebox{\myfig}}%
  \caption{\subcaptionref{sub1}:~Left of the figure. \subcaptionref{sub2}:~Right of the figure}
\end{figure}
\end{document}

Die Bilder werden in eine Box ( \myfig) gesetzt um die entsprechende Höhe zu erhalten (über \ht\myfig). \ooalignlegt den doppelten Inhalt (Bild und Formel) darüber und \raiseboxschiebt die Formel vertikal an die richtige Stelle.

Sehendiese Antwortfür einen Schnellkurs in \ooalign.

verwandte Informationen