将图形放置在多行表格单元格内

将图形放置在多行表格单元格内

是否可以将图形放置在多行单元格内?垂直对齐被破坏了。这与 tikz 的边界框有什么关系吗?

以下 mwe 产生以下结果

编辑

贡萨洛·梅迪纳 (Gonzalo Medina) 回答后的澄清。

为什么需要限制width图形的大小?图形是一个方框。合并单元格中不能刚好容纳这个方框吗?有些图形必须很大才能看得见。

编辑2

在 GM 的评论之后,我意识到这multirow只能在水平方向上起作用,在垂直方向上不起作用。不幸的是,我无法使数字变小,因为它们看起来不好看。所以我必须增加未合并行的高度。

也许一个解决方法是计算 *.pdf 的高度,将其除以未合并行数,然后使用\vphantom{}未合并单元格来增加其高度。或者某种框。arraystretch如果没有没有数字的行,增加高度可能也会有效。

有没有更有效的方法来处理这种情况?

\documentclass[]{article}
\usepackage{amsmath}

\usepackage{graphicx}

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tabu}

\begin{document}
\begin{table}
\centering
\renewcommand{\arraystretch}{2}
\begin{tabu}{ccc}
    \toprule
    Sections & Axis & Imperfections\\
    \midrule
    \multirow{2}{*}{\includegraphics[width=3cm]{circular_hollow.pdf}} & $y-y$ & $\dfrac{L}{200}$ \\
                                                                               & $z-z$ & $\dfrac{L}{150}$ \\
    \bottomrule
\end{tabu}
\end{table}

\end{document}

circular_hollow.pdf由以下文件生成

\documentclass[a4paper,12pt,fleqn]{article}
\usepackage{graphicx}
\usepackage[usenames,dvipsnames,svgnames]{xcolor}  
\usepackage{mathtools}

\usepackage{tkz-tab,tkz-euclide}
\usetkzobj{all} % all the objects

\usepackage[xetex,active,tightpage]{preview}
\PreviewEnvironment[]{tikzpicture}
\PreviewEnvironment[]{pgfpicture}

\begin{document}
\begin{tikzpicture}[>=stealth]
\tkzInit[xmin=-4.5, xmax=4.5, ymin=-4.5, ymax=4.5]
\useasboundingbox(-4.5, -4.5) rectangle (4.5, 4.5);

% Concrete and steel section
\tkzDefPoints{0/0/O, 0/3/R}
\tkzDrawCircle[fill=black!10,line width=8pt](O,R)

% Steel Rebars + Stirrups
\tkzDefPoints{0/0/O, 0/2.3/R}
\tkzDrawCircle[fill=black!30,line width=2pt](O,R)

\foreach \a in {0,30,...,360}{%
    \tkzDefPoint(\a:2){A}
    \tkzDrawPoint(A)
}

% Axes
\tkzDefPoints{0/0/O, -4/0/Y, 0/-4/Z}
\tkzLabelPoint[left](Y){\huge $y$}
\tkzLabelPoint[below](Z){\huge $z$}

\tkzDrawSegments[line width=2pt,->](O,Y O,Z)

\end{tikzpicture}
\end{document}

答案1

我刚刚看到的一种可能的解决方法(无需修改图形)是这样的:

  • 包含包bigstrut
  • 使用的其他参数multirow
    • 大支柱: 价值2
    • 修理: 价值2毫米
  • \bigstrut为每一行添加一个调用。
  • 增加\arraystretch3

主文件的代码tex如下:

\documentclass[]{article}
\usepackage{amsmath}

\usepackage{graphicx}

\usepackage{booktabs}
\usepackage{multirow,bigstrut}
\usepackage{tabu}

\begin{document}
\begin{table}
\centering
\renewcommand{\arraystretch}{3}
\begin{tabu}{ccc}
    \toprule
    Sections & Axis & Imperfections\\
    \midrule
    \multirow{2}[2]{*}[2mm]{\includegraphics[width=3cm]{circular_hollow.pdf}} & $y-y$ & $\dfrac{L}{200}$ \bigstrut \\
                                                                              & $z-z$ & $\dfrac{L}{150}$ \bigstrut \\
    \bottomrule
\end{tabu}
\end{table}

\end{document}

在此处输入图片描述

答案2

对于那些想知道如何将图像放入表格中的人来说,突出的一点是{*}in后面的括号修复\multirow

\multirow{2}{*}[fixup]{\includegraphics[width=2in]{...}}

例如:

\multirow{2}{*}[0.5in]{\includegraphics[width=2in]{...}}

通过调整修复,您可以避免 Latex 将图像放置在表格中太低位置的默认行为。

相关内容