我想制作一个有 3 行 2 列的表格,其中左列放置文本,右列每行放置一张图片。
我不知道如何做到这一点,我已经尝试制作一个表格,但我无法修复列宽,而且我看不到图像(也许它们在页面之外?)。
有人能知道怎样做到这一点吗?
这就是我的意思,下面。我希望文本列比图片列更宽。
这是我目前拥有的代码。
\documentclass[11pt]{article}
\usepackage{array,graphicx}
\newcommand\rowincludegraphics[2][]{\raisebox{-0.45\height}{\includegraphics[#1]{#2}}}
\begin{document}
\begin{table}[t]
\begin{tabular}[t]{p{10cm}|p{10cm}}
\textbf{Column 1} & \textbf{Column 2} \\ \hline
Text 1 & \rowincludegraphics[scale=0.4]{figure1.jpg} \\ \hline
Text 2 & \rowincludegraphics[scale=0.4]{figure2.jpg} \\ \hline
Text 3 & \rowincludegraphics[scale=0.4]{figure3.jpg} \\ \hline
\end{tabular}
\end{table}
\end{document}
图片现在与顶部对齐,但文本却没有对齐。我该如何修复这个问题?如果修复了这个问题,问题就解决了。谢谢。
答案1
您的文件产生
Overfull \hbox (233.45511pt too wide) in paragraph at lines 6--12
您已指定两列,每列 10cm,比页面宽得多。只需让列具有自然宽度即可:
\documentclass[11pt]{article}
\usepackage{array,graphicx}
\newcommand\rowincludegraphics[2][]{\raisebox{-0.45\height}{\includegraphics[#1]{#2}}}
\begin{document}
\begin{table}[t]
\begin{tabular}{l|l}
\textbf{Column 1} & \textbf{Column 2} \\ \hline
Text 1 & \rowincludegraphics[scale=0.4]{example-image-a} \\ \hline
Text 2 & \rowincludegraphics[scale=0.4]{example-image-b} \\ \hline
Text 3 & \rowincludegraphics[scale=0.4]{example-image} \\ \hline
\end{tabular}
\end{table}
\end{document}
答案2
我将省略表中的所有垂直规则,删除大约一半的水平规则,并使用包的线条绘制宏来booktabs
绘制剩余的水平线。
并且,一定要确保环境tabular
能够适合文本块。在下面的示例中,我分别选择了 6cm 和 7cm 的宽度作为第 1 列和第 2 列的宽度。
\documentclass[11pt]{article}
\usepackage{booktabs,array}
\usepackage[demo]{graphicx} % omit 'demo' option in real document
\newlength\mylength
\setlength\mylength{7cm} % width of second column
\begin{document}
\begin{table}[t]
\begin{tabular}[t]{@{} p{6cm} p{\mylength} @{}}
\textbf{Column 1} & \textbf{Column 2} \\
\midrule \addlinespace
Text 1 & \includegraphics[width=\mylength]{figure1.jpg}
\\ \addlinespace
Text 2 & \includegraphics[width=\mylength]{figure2.jpg}
\\ \addlinespace
Text 3 & \includegraphics[width=\mylength]{figure3.jpg}
\\ \bottomrule
\end{tabular}
\end{table}
\end{document}