小页面的垂直对齐

小页面的垂直对齐

我使用三个小页面来制作一个表格,并将两个图像并排放置,尽管图像位于正确的位置,但表格的位置却低得多,产生了难看的效果。为什么会发生这种情况?我该如何解决?

\begin{minipage}[t]{5cm}
\begin{tabular}{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline 
$T_{sd}$ & $ns$ & $780$\\
\hline 
$T_{f}$ & $ns$ & $240$\\
\hline 
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A1.JPG}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A2.JPG}
\end{minipage}

答案1

为什么你的代码不起作用。

这与垂直对齐的实际工作方式有关。首先考虑以下代码及其输出:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
Some text then a table \begin{tabular}{c}
1 \\2 \\ 3 \\ 4
\end{tabular}
then some more text and an image \includegraphics[width=2cm]{example-image-10x16}.    
\end{document}

在此处输入图片描述

这样做的目的是表格和图像如何相对于周围文本的基线放置——tabular垂直居中,图像放在基线上,因此粘在线上方。

现在, s 的t/b位置说明符所指minipage的实际上并不是 的顶部/底部边缘minipage,正如我所理解的那样,而是文本第一行/最后一行的基线在 中minipage。在minipage带有表格的 中,基线位于表格的中间,如上图所示。但在minipage带有图像的 中,基线位于图像的底部。因此,图像的底部与表格的中间对齐。

建议 1

根据 daleif 的建议,我删除了下面代码中的minipagetabular

如果你设置右边的对齐方式minipagec输入它看起来会更好,即

\begin{minipage}[c]{5cm}

默认情况下具有tabular对齐c

tabular要使它们顶部对齐,您可以将和minipages的位置都设置为 ,并将带有图像的 st的内部位置(第三个可选参数)设置为。也就是说,您将拥有minipageb

\begin{tabular}[t]{...}

为表和

\begin{minipage}[t][][b]{5cm}

对于minipages。

建议 2

如果添加,\usepackage[export]{adjustbox}您可以使用可选参数 更改相对于基线的图像垂直对齐方式valign=<t/c/b>\includegraphics然后,您可以完全抛弃minipages。

\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage[export]{adjustbox}
\begin{document}   
\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\includegraphics[width=5cm,valign=c]{example-image-a}
\includegraphics[width=5cm,valign=c]{example-image-b}

\end{document}

关于该表的一些注释。

这实际上不是问题的一部分,但我添加了一个关于如何在下面的代码中编写表格的建议,您可以在图像中看到结果。

列规范已更改为{>{$}c<{$} s S }。加载包时,array您可以使用>{}/<{}在单元格的开头/结尾插入内容,通过执行上述操作,效果是每个单元格都设置为数学模式。这为您节省了一些输入工作。

对于第二列,请注意单位通常不应以斜体书写。您可以简单地删除所有数学模式,这样会好得多。这里我使用了s中的一列siunitx,它允许使用 中的单位宏来siunitx排版单位。

最后一列S也是来自 的列,siunitx它将数字与小数点对齐。不确定在这种情况下是否是一种改进,但我想将其添加为提示。

在第一列中,您会注意到我在文本模式下设置了单词“Low”、“High”和“max”。我想这主要是惯例问题,但我认为描述性单词(而不是变量名)不应该是斜体。我还删除了所有垂直线,并在booktabs上方和下方添加了一条较粗的水平线(从)。它使表格不那么杂乱。

\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}

\begin{document}

\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}

\vspace{2cm}

\begin{tabular}[t]{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}

\end{document}

在此处输入图片描述

答案2

可以minipages完全避免使用包中的\abovebaseline和。请注意 MWE 末尾的语法。在这种情况下,我仅将每个项目保存在其自己的 stackbox 中,这样,如果需要居中输出,则需要使用框高度进行额外计算。否则,可以使用显示的语法直接输出列。\belowbaselinestackengine

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{stackengine}
\parskip 1em
\begin{document}
\savestack{\colA}{
\begin{tabular}[b]{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline 
$T_{sd}$ & $ns$ & $780$\\
\hline 
$T_{f}$ & $ns$ & $240$\\
\hline 
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}}

\savestack{\colB}{\includegraphics[width=5cm,height=4cm]{A1.JPG}}

\savestack{\colC}{\includegraphics[width=5cm,height=2.5cm]{A2.JPG}}

\colA\ \abovebaseline[.5\ht\colAcontent-.5\ht\colBcontent]{\colB}\ 
  \abovebaseline[.5\ht\colAcontent-.5\ht\colCcontent]{\colC}

\colA\ \colB\ \colC

\belowbaseline{\colA}\ \belowbaseline{\colB}\ \belowbaseline{\colC}
\end{document}

在此处输入图片描述

答案3

tabular已经是一种小型页面(您可能想要使用\begin{tabular[t]{...})。默认情况下,它的基线位于中间,周围minipage不会改变这一点,因为tabular表现为单线(有点)。图像在底部对齐,并且比底部高得多。

您可能想要使用该adjustbox软件包,它具有许多用于对齐东西的有用功能。

还有一点小小的请求:请发布一些我们可以复制粘贴并使用而无需编辑的内容。您没有序言,我们当然也没有您的图片。对于图片,您可以使用\rule{length}{length}

相关内容