我需要创建一个有 1 行 2 列的表格,其中第一个单元格有一个内部表格,第二个单元格是一张照片,我指定宽度并让系统处理高度。我的困难是我无法让内部表格在单元格顶部对齐。为了说明,以下是我想要的结果:
这就是我得到的
我尝试了各种方法,从使用\parbox
和\vspace
控制,但经过两天的阅读手册、谷歌搜索和实验后,我承认失败并现在寻求帮助。
这是产生格式错误的表格的代码。
\documentclass[twoside]{article}
\usepackage{graphicx}
\usepackage{calc}
\begin{document}
\noindent
\begin{tabular} {
|@{}p{0.5\linewidth}@{}|
p{0.5\linewidth-2\tabcolsep}|
}
\hline
\begin{tabular} {
|p{0.5\linewidth-2\tabcolsep}|
p{0.5\linewidth-2\tabcolsep}|
}
Serial Number & K77C 15229\\ \hline
Reading & 18901 \\ \hline
Date & 08/10/2012 \\ \hline
\end{tabular}
&
\includegraphics[width=\linewidth]{pics/DSC_3543.jpg} \\
\hline
\end{tabular}
\end{document}
如果我\vspace{0mm}
在前面加上\includgraphics
,内部表格就会如预期那样出现在顶部,但照片上方会出现额外的空白。输入负数(例如\vspace{-6mm}
)会产生所需的效果,但如果内部表格有 4 或 5 行,则数字需要更改。由于需要生成数百行,因此手动调整每个行是不切实际的。
我感觉好像我遗漏了一些简单的东西。感谢任何能提供帮助的人!
答案1
包adjustbox
是你的朋友。此外,内部表格应该接收[t]
放置选项:
\documentclass[twoside]{article}
\usepackage{graphicx}
\usepackage{calc,adjustbox}
\begin{document}
\noindent
\begin{tabular} {
|@{}p{0.5\linewidth}@{}|
@{}p{0.5\linewidth-\arrayrulewidth}@{}|
}
\hline
\begin{tabular}[t] {
p{0.5\linewidth-2\tabcolsep}|
p{0.5\linewidth-2\tabcolsep}
}
Serial Number & K77C 15229\\ \hline
Reading & 18901 \\ \hline
Date & 08/10/2012 \\ \hline
\end{tabular}
&
\adjustbox{valign=t}{\includegraphics[width=\linewidth]{DSC_3543.jpg}} \\
\hline
\end{tabular}
\end{document}
我还修复了一些计算,这样您就不会在图像的左侧和右侧填充。