我有一张包含三列的表格,并且我希望该表格分布在\textwidth
页面上。
我试过:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\textwidth/3}{| c | c | c |} %Math operation here.
\hline
looooooong & long & very loooong \\
long & very looooooong & long\\
\hline
\end{tabularx}
\end{document}
答案1
\documentclass{article}
\usepackage{tabularx}
\usepackage{lipsum}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{| X | X | X |} \hline
\lipsum[5] & \lipsum[5] & \lipsum[5]\\\hline
\end{tabularx}
\noindent
\begin{tabularx}{\textwidth}{
| >{\hsize=0.5\hsize}X
| X
| >{\hsize=1.5\hsize}X |} \hline
\lipsum[5] & \lipsum[5] & \lipsum[5]\\\hline
\end{tabularx}
\end{document}
如果您需要分页符,则使用xltabular
。
答案2
以下两种方法提供相同的输出;第一种方法使用计算来\textwidth
均匀分布列,而第二种方法使用tabularx
的X
列来计算长度:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\setlength{\parindent}{0pt}% Just for this example
\begin{tabular}
{ | *{3}{p{\dimexpr(\textwidth - \arrayrulewidth)/3 - 2\tabcolsep - \arrayrulewidth} |} }
\hline
looooooong & long & very loooong \\
long & very looooooong & long \\
\hline
\end{tabular}
\begin{tabularx}{\textwidth}{ | *{3}{X |} }
\hline
looooooong & long & very loooong \\
long & very looooooong & long \\
\hline
\end{tabularx}
\end{document}
X
-columns 默认为p{<len>}
after<len>
。如果你想改变这一点,你可以使用
\renewcommand{\tabularxcolumn}[1]{ m{#1} }
垂直居中列条目,例如(m{<len>}
由提供array
,由tabularx
。