宽度为 100% 且垂直/水平对齐的表格

宽度为 100% 且垂直/水平对齐的表格

我想在 LaTeX 中绘制下表。第一列中的文本应左对齐。所有其他单元格中的文本应居中。第一个问题出现在第一行的 D 上。如果我\centering在 前面写一个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}{...}

相关内容