如何強制內容從(垂直居中)表格儲存格中突出?

如何強制內容從(垂直居中)表格儲存格中突出?

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

在此輸入影像描述

相關內容