如何创建具有对齐自动标签和独立可对齐图形的并排子浮点数?

如何创建具有对齐自动标签和独立可对齐图形的并排子浮点数?

下面这个简单但可能有点 hack 的例子可以让我

  1. 将两个图形并排放置在浮动环境中。
  2. 为图形分配符号标签,以便我可以在文本中引用它们。
  3. 在每个图形的左上角打印文本标签,以便读者可以看到我所指的内容。
  4. 打印一个图形标题来解释所有子图。

但是,有一个问题:只有当图形(或更准确地说是子图)垂直顶部对齐时,文本标签才会垂直对齐。不过,有些图形对在居中或底部对齐时看起来会更好。如何在更改图形对齐方式的同时保留标签的位置?

我在科学文章中经常看到这种样式的图片(并排显示,左上角有标签,标题统一)。如果图片有多列多行,情况会变得更加复杂,而且这些图片总是以某种方式被标记和对齐。有没有既定的方法或软件包来实现这种布局,我可以用它来代替我的临时解决方案?

标签错位示例

\documentclass{article}

\usepackage{graphicx}
\usepackage[labelfont=bf, singlelinecheck=false]{subcaption}

\begin{document}

\begin{figure}
  \centering
  \begin{subfigure}[t]{0.49\linewidth}
    \centering
    \caption{}\label{fig:example_t1}
    \includegraphics[width=\linewidth]{example-image}
  \end{subfigure}
  \begin{subfigure}[t]{0.49\linewidth}
    \centering
    \caption{}\label{fig:example_t2}
    \includegraphics[width=0.8\linewidth]{example-image}
  \end{subfigure}
  \caption{Examples graphics that look nice if they are top aligned. \textbf{(a)} A first example with a long and detailed description. \textbf{(b)} A second example with a long and detailed description.}\label{fig:examples_t}
\end{figure}

\begin{figure}
  \centering
  \begin{subfigure}[b]{0.49\linewidth}
    \centering
    \caption{}\label{fig:example_b1}
    \includegraphics[width=\linewidth]{example-image}
  \end{subfigure}
  \begin{subfigure}[b]{0.49\linewidth}
    \centering
    \caption{}\label{fig:example_b2}
    \includegraphics[width=0.8\linewidth]{example-image}
  \end{subfigure}
  \caption{Examples graphics that look nice if they are bottom aligned. \textbf{(a)} A first example with a long and detailed description. \textbf{(b)} A second example with a long and detailed description.}\label{fig:examples_b}
\end{figure}

\end{document}

答案1

我看到了两种简单的方法可以完成您想要的操作:第一种方法是手动调整包含图像+标题的框的高度,并在标题下方添加一些间距(使用\vfill);第二种方法是将标题放在子图之外的同一行上。

选项 1 不太好,因为你必须猜测最高图像的大致尺寸(在本例中为12\baselineskip):

\documentclass{article}

\usepackage{graphicx}
\usepackage[labelfont=bf, singlelinecheck=false]{subcaption}

\begin{document}

\begin{figure}
  \centering
  \begin{subfigure}[b][12\baselineskip]{0.49\linewidth}
    \centering
    \caption{}\label{fig:example_b1}
    \vfill
    \includegraphics[width=\linewidth]{example-image}
  \end{subfigure}
  \begin{subfigure}[b][12\baselineskip]{0.49\linewidth}
    \centering
    \caption{}\label{fig:example_b2}
    \vfill
    \includegraphics[width=0.8\linewidth]{example-image}
  \end{subfigure}
  \caption{Examples graphics that look nice if they are bottom aligned. \textbf{(a)} A first example with a long and detailed description. \textbf{(b)} A second example with a long and detailed description.}\label{fig:examples_b}
\end{figure}

\end{document}

选项 2 不太好,因为它迫使我们使用\parbox并重复图像的宽度,还因为我们需要补偿子图周围的填充(用\par\vspace{-1.5\baselineskip):

\documentclass{article}

\usepackage{graphicx}
\usepackage[labelfont=bf, singlelinecheck=false]{subcaption}

\begin{document}

\begin{figure}
  \centering
  \parbox{.49\linewidth}{\subcaption{\label{fig:example_b1}}}
  \parbox{.49\linewidth}{\subcaption{\label{fig:example_b2}}}
  \par\vspace{-1.5\baselineskip}
  \begin{subfigure}[b][12\baselineskip]{0.49\linewidth}
    \centering
    \includegraphics[width=\linewidth]{example-image}
  \end{subfigure}
  \begin{subfigure}[b][12\baselineskip]{0.49\linewidth}
    \centering
    \includegraphics[width=0.8\linewidth]{example-image}
  \end{subfigure}
  \caption{Examples graphics that look nice if they are bottom aligned. \textbf{(a)} A first example with a long and detailed description. \textbf{(b)} A second example with a long and detailed description.}\label{fig:examples_b}
\end{figure}

\end{document}

\label顺便说一句,我认为将图形/表格放在相应的里面总是一个好主意\caption

相关内容