答案1
您需要更改图像的基线。通常将其居中到小写字符的高度(1ex)。这可以使用宏\raisebox
或使用包valign=m
的键来完成adjustbox
。
也可以看看 如何将图片对齐表格的左上角?和 标题页左侧浮动图片它们是相似的。
这里是我的代码,它还显示了一些其他元素,如粗体数学和堆叠:
\documentclass{article}
\usepackage{adjustbox}
\usepackage{booktabs}
\usepackage{amsmath}
\providecommand{\textsubscript}[1]{%
\mbox{$_\text{#1}$}%
}
\newcommand{\mystack}[1]{%
\mbox{$
\vcenter{%
\hbox{\shortstack{#1}}%
}%
\mathsurround=0pt
$}
}
\begin{document}
\begin{tabular}{ccccc}
\toprule
\bfseries Scalar mode &
\bfseries Vector mode &
\bfseries Degeneracy &
$\mathbf{n_{\text{\bfseries eff}}}$ &
\bfseries Near field ($\mathbf{S_Z}$) \\
\midrule
LP\textsubscript{01} &
HP\textsubscript{11} &
2 & 1.44398 & \adjustimage{height=2cm,valign=m}{image1} \\
LP\textsubscript{11} &
\mystack{%
HP\textsubscript{11} \\
TE\textsubscript{01} \\
TM\textsubscript{01}
} &
4 & 1.44381 & \adjustimage{height=2cm,valign=m}{image2} \\
.. \\
\midrule
\multicolumn{5}{c}{\bfseries Originally cladding modes} \\
\midrule
.. \\
\bottomrule
\multicolumn{5}{l}{%
*The LP\textsubscript{31} is four-fold ...
}\\
\end{tabular}
\end{document}
答案2
有多种方法可以将材料垂直居中。LaTeX3'棺材'概念使得这很容易实现:
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{xcoffins}
\NewCoffin\tablecoffin
\NewDocumentCommand\Vcentre{m}
{%
\SetHorizontalCoffin\tablecoffin{#1}%
\TypesetCoffin\tablecoffin[l,vc]%
}
\begin{document}
\begin{tabular}{ccc}
\Vcentre{A} & \Vcentre{B} &
\Vcentre{\includegraphics[width = 1 cm, height = 1 cm]{demo}}
\end{tabular}
\end{document}
这里的想法是,‘棺材’的垂直中心与当前基线对齐,而水平放置在当前插入点。(我使用了包demo
的选项graphicx
,以便某物出现:黑色斑点。对于真实文档,不需要这样做。
正如马克所说,遵守规则booktabs
才是王道。
答案3
使用该包,您将获得与表格本身非常接近的输出booktabs
。至于图像,只需简单\includegraphics
操作即可。
\usepackage[demo]{graphicx}
\usepackage{booktabs}
\usepackage{array}
\begin{document}
\begin{tabular}{m{1.5cm}m{1.5cm}m{1.5cm}}
\toprule
Header 1 & Header 2 & Header 3\\
\midrule
One & Two & \includegraphics[width=1cm, height=1cm]{fig1}\\
Three & Four & \includegraphics[width=1cm, height=1cm]{fig2}\\
\bottomrule
\end{tabular}
\end{document}
产生这个: