![100% 寬度和垂直/水平對齊的表格](https://rvso.com/image/266422/100%25%20%E5%AF%AC%E5%BA%A6%E5%92%8C%E5%9E%82%E7%9B%B4%2F%E6%B0%B4%E5%B9%B3%E5%B0%8D%E9%BD%8A%E7%9A%84%E8%A1%A8%E6%A0%BC.png)
我想用 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}{...}
.