
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:
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:
- Mit TikZ auf einem Bild zeichnen
- Einfachste Möglichkeit, ein Bild mit einem Text und einer rechteckigen Beschriftung zu überlagern?
Mir gefällt die im ersten Teil beschriebene Lösung, also die Verwendung von tikz
Befehlen zum Überlagern von Text und Formeln, sehr gut.
Die von ihnen bereitgestellten Beispiele erfordern jedoch die Verwendung einer tikzpicture
Umgebung, was mich anscheinend daran hindert, sie \subbottom[]
für Unterfiguren in Memoiren zu verwenden.
Wie kann ich tikzpicture and
scope in Kombination mit subbottom
in 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.
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
:
\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
). \ooalign
legt den doppelten Inhalt (Bild und Formel) darüber und \raisebox
schiebt die Formel vertikal an die richtige Stelle.
Sehendiese Antwortfür einen Schnellkurs in \ooalign
.