我正尝试按以下方式将 \multicolumn 放入 \multirow 环境中:
\documentclass{article}
\usepackage{multirow}
\usepackage{array}
\usepackage{mwe}
\begin{document}
\begin{tabular}{|p{.03\textwidth}|p{.73\textwidth}|p{.03\textwidth}|p{.15\textwidth}|}
Test1 & Test2 & Test3 &
\multirow{1}{*}{\multicolumn{1}{m{\linewidth}}{\includegraphics[width=\linewidth]
{example-image}}}
\end{tabular}
\end{document}
为了澄清起见,我的表格中有多个行(6),并且多行跨越这 6 行。内部多列是为了使图像在多行内居中。但是,我收到错误:
Misplaced \Omit
有人知道为什么会发生这种情况吗?谢谢!
更新:
请参阅 Christian 的答案以修复错误。但是当其中一行有多行文本时,Latex 仍然无法垂直居中图片。作为一种解决方法,我增加了多行跨越的行数,即使实际上有 6 行。这无疑是一个丑陋的黑客,我对此并不特别满意,但它目前有效。如果有人有更好的解决方案,我愿意接受建议。
更新 2:
好的,更新 2。请参阅 Christian 的修订解决方案和评论,了解解决此问题的两种可能方法。感谢 Christian 提供的所有帮助!
答案1
我想,这就是你的意思。
\documentclass{article}
\usepackage{multirow}
\usepackage{array}
\usepackage{mwe}
\begin{document}
\begin{tabular}{|p{.03\textwidth}|p{.73\textwidth}|p{.03\textwidth}|p{.15\textwidth}|}
Test1 & Test2 & Test3 &
\multicolumn{1}{m{\linewidth}}{\multirow{6}{*}{\includegraphics[scale=0.1]{example-image}}% End of multirow
}% End of multicolumn
\\ % End of the first row
Line2 & & &\\
Line3 & & & \\
Line4 & & & \\
Line5 & & & \\
Line6 & & & \\
\end{tabular}
\end{document}
另一个版本的内容为垂直居中,它使用makecell
包和\multirowcell
命令,允许表格单元格中的内容垂直移动( 的第一个可选参数\multirowcell
),我将其设置为,-2pt
因为我有印象,这可以正确对齐,但是,如果图像的大小/缩放比例发生变化,则必须对其进行修改。这也是一种“黑客行为”,但也许比添加额外的行要好。
\documentclass{article}
\usepackage{multirow,makecell}
\usepackage{array}
\usepackage{mwe}
\begin{document}
\begin{tabular}{|p{.1\textwidth}|p{.2\textwidth}|p{.1\textwidth}|p{.15 \textwidth}|}
\hline
Test1 & Test2 & Test3 &
\multirowcell{6}[-2pt]{\includegraphics[scale=0.1]{example-image}%
}% End of multirowcell
\\
Line2 & & & \\
Line3 & & & \\
Line4 & & & \\
Line5 & & & \\
Line6 & & & \\
\hline
\end{tabular}
\end{document}
我添加了\hline
顺序检查以检查对齐并减少了列宽。请根据需要回滚。
顺便说一句,该\multirow
命令还允许垂直移动,但我到目前为止还没有尝试过。