图片超出表格高度

图片超出表格高度

我按照说明这里这里得到一个好看的表格,且结构不超出底线规则。

在此处输入图片描述

两者都没有提供解决方案。 有办法实现这一点吗?

\documentclass[11pt]{article}

\usepackage[hmarginratio=1:1]{geometry}
\geometry{
    top=2cm,
    bottom=2.5cm,
    textwidth=7in}
\usepackage{graphicx} 
\usepackage{tabularx} 
\usepackage{multirow}
\usepackage{booktabs}

\begin{document}

\begin{table}[h]
    \begin{tabularx}{\textwidth}{lXlll}
        No. & Structure & Another Number & One More Number & Last Number\\
    \midrule
        \multirow{3}{*}{1
        } & \multirow{3}{*}{\includegraphics[width=4cm]{image}
        } & \multirow{3}{*}{1234
        } & 1   & 1 \\
        &&& 2   & 2 \\
        &&& 3   & 3 \\
    \bottomrule
    \end{tabularx}
\end{table}

\end{document}

答案1

我建议不要使用multirow单行,而是\makecell在最后两列中使用,因为这样可以在标准单元格中换行。我还重新定义了X列类型,因此其内容垂直居中:

\documentclass[11pt]{article}

\usepackage[hmarginratio=1:1]{geometry}
\geometry{
    top=2cm,
    bottom=2.5cm,
    textwidth=7in}
\usepackage{graphicx, adjustbox}
\usepackage{tabularx}
\usepackage{multirow, makecell}
\usepackage{booktabs}
\renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}}

\begin{document}

\begin{table}[h]
    \begin{tabularx}{\textwidth}{lXlll}
        No. & Structure & Another Number & One More Number & Last Number\\
    \midrule\addlinespace[1.5ex]
        1 & \includegraphics[width=4cm]{chemstructure} & 1234
        & \makecell[l]{1\\2\\3} & \makecell[l]{1\\2\\3} \\
    \bottomrule
    \end{tabularx}
\end{table}

\end{document} 

在此处输入图片描述

答案2

这似乎是一个已知问题,它\multirow不能总是正确地计算包含多行单元格的高度,或者至少在某些情况下会产生不想要的结果(参见第 11 页第 3.8 段及其后面的部分)。包装文档)。

更准确地说,这里的问题似乎是\includegraphics宏本身位于多行单元格中。据我了解,底层计算是,该包测量要跨越的行的高度,而不考虑任何多行单元格。当然,这会产生三个单元格的高度,其中只包含一行(即表格最后两列中的内容)。

软件包文档(第 14 页)中提到的一种可能的解决方法是在最后一行的一个非多行单元格中添加一个不可见元素\rule,该元素向下移动至需要拉伸相关表格行的程度。

例子:

\documentclass[11pt]{article}

\usepackage[hmarginratio=1:1]{geometry}
\geometry{
    top=2cm,
    bottom=2.5cm,
    textwidth=7in}
\usepackage{graphicx} 
\usepackage{tabularx} 
\usepackage{multirow}
\usepackage{booktabs}

\begin{document}

\begin{table}[h]
    \begin{tabularx}{\textwidth}{lXlll}
        No. & Structure & Another Number & One More Number & Last Number\\
    \midrule
        \multirow{3}{*}{1
        } & \multirow{3}{*}{\includegraphics[width=4cm]{example-image-a}
        } & \multirow{3}{*}{1234
        } & 1   & 1 \\
        &&& 2   & 2 \\
        &&& 3   & 3 \rule[-50pt]{0pt}{0pt} \\
    \bottomrule
    \end{tabularx}
\end{table}

\end{document}

产量:

在此处输入图片描述

相关内容