我使用三个小页面来制作一个表格,并将两个图像并排放置,尽管图像位于正确的位置,但表格的位置却低得多,产生了难看的效果。为什么会发生这种情况?我该如何解决?
\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 的建议,我删除了下面代码中的minipage
。tabular
如果你设置右边的对齐方式minipage
来c
输入它看起来会更好,即
\begin{minipage}[c]{5cm}
默认情况下具有tabular
对齐c
。
tabular
要使它们顶部对齐,您可以将和minipage
s的位置都设置为 ,并将带有图像的 st
的内部位置(第三个可选参数)设置为。也就是说,您将拥有minipage
b
\begin{tabular}[t]{...}
为表和
\begin{minipage}[t][][b]{5cm}
对于minipage
s。
建议 2
如果添加,\usepackage[export]{adjustbox}
您可以使用可选参数 更改相对于基线的图像垂直对齐方式valign=<t/c/b>
。\includegraphics
然后,您可以完全抛弃minipage
s。
\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 中,这样,如果需要居中输出,则需要使用框高度进行额外计算。否则,可以使用显示的语法直接输出列。\belowbaseline
stackengine
\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}
。