将两张图片放在一个子浮点/参考问题中

将两张图片放在一个子浮点/参考问题中

我经历了一些疯狂的尝试才让 minipage 和 subfloat 很好地协同工作(?),但最后才发现我搞砸了图形引用。

我有一个带有两个子浮点的图形,一个在左边,一个在右边。左边由两个图形组成,一个在另一个上面。最后一个事实造成了很大的麻烦,因为我不能单独使用\\或。所以我围绕它构建了一个,但然后不能\newlinesubfloatminipagesubfloat包含,所以minipage我反转了它们的嵌套:

\documentclass[a4paper]{book}
% note: the following packages are _givens_, I cannot change them at this point
\usepackage[top=35mm, bottom=38mm, inner=40mm, outer=24mm]{geometry}
\usepackage[hang,small]{caption}
\usepackage{subfig}
\usepackage{graphicx}

\begin{document}

As shown in Fig.~\ref{fig:right}...

\begin{figure}
\centering 
\begin{minipage}{0.39\textwidth}%
\includegraphics[width=1\textwidth, trim=0 0 0 -70mm]{figures/zelle148_IMG_1903m.jpg}\\[2mm]%
\includegraphics[width=1\textwidth, trim=0 -60mm 0 0]{figures/zelle148_IMG_1901m.jpg}%
\\\centering \subfloat[Left]{\hspace{0.9\textwidth}}\label{fig:left}
\end{minipage}%
\begin{minipage}{0.58\textwidth}%
\includegraphics[width=1\textwidth, trim=-2mm 0 0 0]{figures/Zelle148ScoreCut.pdf}%
\\\centering \subfloat[Right]{\hspace{1\textwidth}}\label{fig:right}
\end{minipage}%
\caption{Full caption}
\label{fig:both}
\end{figure}

\end{document}

问题是,我收到错误

包标题警告:\label 在输入行 20 的 \caption 之前。

LaTeX 警告:第 1 页上的引用“fig:right”在输入行 9 上未定义。

LaTeX 警告:存在未定义的引用。

图形结果正如我想要的那样:

在此处输入图片描述

但文中的引用只显示为“??”而不是“1b”。

答案1

下面的代码能满足你的目的吗?它没有任何修饰或类似的东西。这里的基本思想是创建一个两列表格,两列都居中。左列又是一个有两行的单列表格,你可以在那里放置你的左边图片一张接一张。右列又是一个表格,只有一行,其中包含您的正确的图片。将最后两个表格对齐到底部。您需要调整列宽。这里我使用了0.4\textwidth,但稍微宽一点也应该没问题。

\documentclass[a4paper]{book}
\usepackage[top=35mm, bottom=38mm, inner=40mm, outer=24mm]{geometry}
\usepackage[hang,small]{caption}
\usepackage{subfig}
\usepackage{graphicx}

\begin{document}

As shown in Fig.~\ref{fig:right}...

\begin{figure}[!tbp]
  \centering
  \begin{tabular}[c]{cc}
    \subfloat[Left]{\label{fig:left}%
      \begin{tabular}[b]{c}
        \includegraphics[width=0.4\textwidth]{figures/zelle148_IMG_1903m.jpg}\\[2mm]
        \includegraphics[width=0.4\textwidth]{figures/zelle148_IMG_1901m.jpg}
      \end{tabular}}
    &
    \begin{tabular}[b]{c}
      \subfloat[Right]{\label{fig:right}%
        \includegraphics[width=0.4\textwidth]{figures/Zelle148ScoreCut.pdf}}
    \end{tabular}
  \end{tabular}
  \caption{Full caption}
  \label{fig:both}
\end{figure}

\end{document}

以下是输出,

在此处输入图片描述

答案2

使用subcaption确实似乎解决了我的问题。我结合了minipagesubfloat

\documentclass[a4paper]{book}
\usepackage[top=35mm, bottom=38mm, inner=40mm, outer=24mm]{geometry}
\usepackage[hang,small]{caption}
\usepackage{subcaption} % !!!
\usepackage{graphicx}

\begin{document}

As shown in Fig.~\ref{fig:right}...

\begin{figure}
\centering 
\begin{subfigure}{0.39\textwidth}
\centering
\includegraphics[width=1\textwidth, trim=0 0 0 -70mm]{figures/zelle148_IMG_1903m.jpg}\\[2mm]%
\includegraphics[width=1\textwidth, trim=0 -60mm 0 0]{figures/zelle148_IMG_1901m.jpg}%
\caption{Left}\label{fig:left}
\end{subfigure}
\begin{subfigure}{0.58\textwidth}
\centering
\includegraphics[width=1\textwidth, trim=-2mm 0 0 0]{figures/Zelle148ScoreCut.pdf}%
\caption{Right}\label{fig:right}
\end{subfigure}
\caption{Full caption}
\label{fig:both}
\end{figure}

\end{document}

是否有人有比使用负面黑客技术更好的解决方案trim来实现左侧和右侧的垂直居中,同时保持子标题处于相同的垂直位置?

相关内容