![如何强制内容突出(垂直居中)表格单元格?](https://linux22.com/image/310173/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6%E5%86%85%E5%AE%B9%E7%AA%81%E5%87%BA%EF%BC%88%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%EF%BC%89%E8%A1%A8%E6%A0%BC%E5%8D%95%E5%85%83%E6%A0%BC%EF%BC%9F.png)
我想强制表格中某个单元格的内容超出单元格宽度指定量。对于c
列,负字距调整可以解决问题。但我还想要垂直对齐,而负字距调整不再适用于m
列。
最小工作示例:
\documentclass{article}
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
%\begin{tabular}[h]{|M{1in}|M{1in}|M{1in}|}
\begin{tabular}[h]{|c|c|c|}
\hline
\rule{0.2in}{1in} &
\rule{1in}{0.2in} &
\rule{0.2in}{1in} \\
\hline
\rule{1in}{0.2in} &
\rule{0.2in}{1in} &
\rule{1in}{0.2in} \\
\hline
\rule{0.2in}{1in} &
\kern-0.5in\rule{1.5in}{0.2in} &
\rule{0.2in}{1in} \\
\hline
\end{tabular}
\end{document}
底部中间的单元格显示了我的意思。切换\begin{tabular}
行上的注释以查看它在m
列上失败。我该如何让它工作?
动机:我有一列包含一堆内容相似且对齐的图像。它们大多数宽度相同,但有一列更宽,因为额外的空间包含一些额外的信息,如标签。我希望忽略额外的空间,以便图像在文档中保持对齐。我不想简单地使用左对齐或右对齐,因为这会浪费其他单元格中的额外空间。
答案1
\makebox
代替使用\kern
:
\documentclass{article}
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{tabular}[h]{|M{1in}|M{1in}|M{1in}|}
%\begin{tabular}[h]{|c|c|c|}
\hline
\rule{0.2in}{1in} &
\rule{1in}{0.2in} &
\rule{0.2in}{1in} \\
\hline
\rule{1in}{0.2in} &
\rule{0.2in}{1in} &
\rule{1in}{0.2in} \\
\hline
\rule{0.2in}{1in} &
\makebox[1in][r]{\rule{1.5in}{0.2in}} &
\rule{0.2in}{1in} \\
\hline
\end{tabular}
\end{document}
解释:\makebox[1in][r]{\rule{1.5in}{0.2in}}
将规则放在一个宽度的框中1in
,r
并将其右对齐在框中。