我想強製表格中一個單元格的內容溢出單元格寬度指定的量。對於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
在框中右對齊。