100% 寬度和垂直/水平對齊的表格

100% 寬度和垂直/水平對齊的表格

我想用 LaTeX 繪製下表。在第一列中,文字應左對齊。所有其他單元格中的文字應居中。第一個問題出現在第一行的 D 處。如果我\centering在 前面寫 a D,則會出現 LaTeX 錯誤。第二個問題是,我想垂直對齊所有單元格中的文本,但我不知道如何對齊。我找到了一個解決方案,但如果指定了第一列的寬度,它就不起作用。

\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}

\begin{document}
  \begin{tabularx}{\textwidth}{|p{4cm}|X|X|X|X|}
    \hline
               & \centering A & \centering B & \centering C & D\\
    \hline
    \blindtext & 123 & 123 & 123 & 123\\
    \hline
  \end{tabularx}
\end{document}

答案1

對於水平和垂直居中的文本,重新定義 X 列定義:

\documentclass{article}
\usepackage{ragged2e}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{>{\Centering}m{#1}}

\newcommand\TEXT{%
I want to draw the following table in Latex. In the first column the text should be left aligned. The text in all other cells should be centered.}% only for demo


\begin{document}
\begin{tabularx}{\textwidth}{|m{4cm}*4{|X}|}\hline
           &  A  &   B &   C & D         \\\hline
\TEXT\TEXT & 123 & 123 & 123 & \TEXT\\\hline
\end{tabularx}
\end{document}

在此輸入影像描述

答案2

您可以使用標準 TeX 方法進行對齊,但使用 LaTeXragged2e套件效果更好:

\documentclass{article}
\usepackage{blindtext}
\usepackage{tabularx}

\usepackage{ragged2e}


\begin{document}
  \begin{tabularx}{\textwidth}{|>{\RaggedRight}p{4cm}*{5}{|>{\Centering}X}|}
    \hline
               &  A & B & C & D\\
    \hline
    \blindtext & 123 & 123 & 123 & 123\\
    \hline
  \end{tabularx}
\end{document}

一個X列基本上就是一個p{...}列。因此,您可以使用\RaggedRight每個單元格開頭的命令。要為每個單元格自動執行此操作,只需使用>{..},它將大括號的內容插入到該行中每個單元格的開頭。

為了避免重複最後五個單元格,我插入了構造*{5}{...}.

相關內容