Наложения Tikz на второстепенные фигуры в мемуарах

Наложения Tikz на второстепенные фигуры в мемуарах

Допустим, у меня есть следующий код в документе, набранном с помощью 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}

что дает следующую цифру:

введите описание изображения здесь

Мне бы хотелось иметь возможность накладывать текст и математическую формулу на каждое изображение (с координатами относительно каждого изображения).

Я прочитал эти два поста:

Мне очень нравится решение, описанное в первом из них, т. е. использование tikzкоманд для наложения текста и формул.

Однако приводимые ими примеры требуют использования tikzpictureокружения, что, по-видимому, не позволяет мне использовать его \subbottom[]для второстепенных персонажей в мемуарах.

Как использовать tikzpicture andscope в сочетании с subbottomin memoir?

Для примера предположим, что я хочу наложить символ $\phi$на центр подрисунка слева и символ $\psi$на центр подрисунка справа (оба внутри маленьких белых квадратиков).

решение1

Как вы просили о способе tikz, вот один. Конечно, вы можете сильно подчистить код и создать команды и т.п., но пример ниже показывает вам возможный способ

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

по сути, вы помещаете картинку в узел и можете разместить другие узлы сверху. сказав tikz запомнить узлы, вы можете позже соединить эти узлы

введите описание изображения здесь

решение2

Для этого вам не нужен TikZ. Однако он предоставляет больше свободы и вариативности в плане наложения графики. Как есть, наложения возможны через \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}

Изображения помещаются в рамку ( \myfig) для получения соответствующей высоты (с помощью \ht\myfig). \ooalignнакладывает двойной контент (изображение и формулу), \raiseboxперемещая формулу в положение по вертикали.

Видетьэтот ответдля быстрого курса \ooalign.

Связанный контент