在图形*环境中垂直对齐不同尺寸的图像

在图形*环境中垂直对齐不同尺寸的图像

我有一个figure*以下环境

\begin{figure*}
    \centerline {
    \subfloat[1]{...}
    \subfloat[2]{...}
    }
\end{figure*}

图像的高度不同。我如何垂直对齐它们?也就是说,每幅图像的中心彼此相邻:

_____
|    |     _____  
|    |  _  |    |
|    |     |____|
|____|

     Fig. 1

答案1

有两种不同的情况,与您是否使用figurefigure*环境(或任何其他浮动)无关。第一种情况允许您将整个标签与图像一起移动,而第二种情况使图像标签与另一个标签保持在同一水平:

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{subfig}% http://ctan.org/pkg/subfig
\begin{document}
\newsavebox{\myimage}
\begin{figure}
  \centering
  \savebox{\myimage}{\hbox{\rule{150pt}{150pt}}}% Store largest image
  \subfloat[First]{\usebox{\myimage}} \quad
  \raisebox{\dimexpr.5\ht\myimage-.5\height\relax}{\subfloat[Second]{\rule{100pt}{100pt}}}
  \caption{This is a figure.}
\end{figure}

\begin{figure}
  \centering
  \savebox{\myimage}{\hbox{\rule{150pt}{150pt}}}% Store largest image
  \subfloat[First]{\usebox{\myimage}} \quad
  \subfloat[Second]{\raisebox{\dimexpr.5\ht\myimage-.5\height\relax}{\rule{100pt}{100pt}}}
  \caption{This is a figure.}
\end{figure}
\end{document}

这个想法是将最大的图像存储在一个框中 ( \myimage)。然后,将较小的图像 (最大框的 50%) 提升 - (较小框的 50%),或者,用 LaTeX 术语来说,

\dimexpr.5\ht\myimage-.5\height\relax

.5\ht\myimage指高度的50% \myimage,而.5\height指高度的50%当前的框(包含在\raisebox命令中)。首先必须使用“创建”一个框\newsavebox,然后使用为其分配某些内容\savebox

在上面的例子中,graphicx由于未包含任何图像,因此不需要(我使用了\rule{<width>}{<height>})。但是,如果您包含图像,则需要使用它。

其他选择也可以通过floatrow

相关内容