
Допустим, у меня есть следующий код в документе, набранном с помощью 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
- Самый простой способ наложить текст + прямоугольную метку на изображение?
Мне очень нравится решение, описанное в первом из них, т. е. использование tikz
команд для наложения текста и формул.
Однако приводимые ими примеры требуют использования tikzpicture
окружения, что, по-видимому, не позволяет мне использовать его \subbottom[]
для второстепенных персонажей в мемуарах.
Как использовать tikzpicture and
scope в сочетании с subbottom
in 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
.