图形对齐

图形对齐

我想将三个图形并排放置,以便它们在顶行对齐。我使用了 \begin{minipage},但它并没有像我希望的那样工作...

\begin{figure}
\begin{minipage}[t]
\includegraphics[width=2cm,angle=90]{test1}
\end{minipage}
\begin{minipage}[t]
\includegraphics[width=2.5cm,angle=90]{test2}
\end{minipage}
\begin{minipage}[t]
\includegraphics[width=2cm]{test3}
\end{minipage}
\end{figure}

有人能帮助我吗?

答案1

\begin{minipage}[t]将第一行/顶部元素设置为基线。在你的情况下是图像。但是图像有不同的高度。不可见的顶部元素会有所帮助,例如\vspace{0pt}

\begin{figure}
\begin{minipage}[t]{2cm}
  \vspace{0pt}
  \includegraphics[width=2cm,angle=90]{test1}
\end{minipage}
\begin{minipage}[t]{2.5cm}
  \vspace{0pt}
  \includegraphics[width=2.5cm,angle=90]{test2}
\end{minipage}
\begin{minipage}[t]{2cm}
  \vspace{0pt}
  \includegraphics[width=2cm]{test3}
\end{minipage}
\end{figure}

宽度被指定了两次,作为minipage图像的和的参数。这种冗余可以通过varwidth包的环境来消除varwidth,例如:

\begin{varwidth}{\linewidth}
  \vspace{0pt}
  \includegraphics[width=2cm,angle=90]{test1}
\end{varwidth}

另一种方法是\raisebox。它可用于将图像的顶部移动到基线:

\raisebox{-\height}{%
  \includegraphics[width=2cm,angle=90]{test1}%
}

(不要忘记注释行尾,否则它们会在水平模式下添加空格。)

使用规则代替图像的完整示例:

\documentclass[a5paper]{article}
\usepackage{varwidth}

\begin{document}

\begin{figure}
  \begin{minipage}[t]{2cm}
    \vspace{0pt}   
    \rule{2cm}{1cm}
  \end{minipage}
  \begin{minipage}[t]{2.5cm}
    \vspace{0pt}
    \rule{2.5cm}{3cm}  
  \end{minipage}
  \begin{minipage}[t]{2cm}
    \vspace{0pt}
    \rule{2cm}{2cm}    
  \end{minipage}
\end{figure}

\begin{figure}
  \begin{varwidth}[t]{\linewidth}
    \vspace{0pt}
    \rule{2cm}{1cm}
  \end{varwidth}
  \begin{varwidth}[t]{\linewidth}
    \vspace{0pt}
    \rule{2.5cm}{3cm}
  \end{varwidth}
  \begin{varwidth}[t]{\linewidth}
    \vspace{0pt}
    \rule{2cm}{2cm}
  \end{varwidth}
\end{figure}

\begin{figure}
  \raisebox{-\height}{%
    \rule{2cm}{1cm}%
  }
  \raisebox{-\height}{%
    \rule{2.5cm}{3cm}%
  }
  \raisebox{-\height}{%
    \rule{2cm}{2cm}%
  }
\end{figure}

\end{document}

结果

最后是宏\topalign。它的实现基于\halign(TeX 原语,在环境中使用tabular)。单元格内容被放入临时框中并降低到基线。第一个可选参数指定对齐元素之间的水平空间。

\documentclass[a5paper]{article}

\newcommand{\topalign}[2][0.5em]{%
  \leavevmode
  \vbox{%
    \setlength{\tabskip}{#1}%
    \halign{%
      &%
      \begin{lrbox}{0}%
        \ignorespaces##\unskip
      \end{lrbox}%
      \lower\ht0\copy0 %
      \cr
      #2%
      \crcr
    }%
  }%
}

\begin{document}

\begin{figure}
  \topalign{
    \rule{2cm}{1cm}
    &
    \rule{2.5cm}{3cm}
    &
    \rule{2cm}{2cm}
  }%
\end{figure}

\end{document}

答案2

您可以使用该adjustbox包:

\documentclass{article}
\usepackage{graphicx}
\usepackage[export]{adjustbox}

\begin{document}

\begin{figure}
\includegraphics[width=2cm,angle=90,valign=T]{example-image.pdf}
\includegraphics[width=2.5cm,angle=90,valign=T]{example-image-a.pdf}
\includegraphics[width=2cm,valign=T]{example-image-b.pdf}
\end{figure}

\end{document}

在此处输入图片描述

相关内容