我只想创建一个具有多行和多列的表格,这是一个非常合适的解决方案:表格行跨度和列跨度,但有人能帮助我获得可变的列宽而不是相等的列宽吗?
答案1
假设您想继续使用tabularx
我在帖子回复中使用的表格类型表格行跨度和列跨度,您可以使用第 4.3 条中规定的方法实现您的目标用户指南包装tabularx
。那里描述的方法通过调整相对的类型的列的宽度X
。(当然,如果你的tabularx
环境只包含单身的类型的列X
,其宽度完全确定为残差,即整体或目标宽度与其他列和列间空间的宽度总和之间的差值。)
以下示例显示了如何应用此想法来创建一个表格,其中第一列和第四列的可用宽度比中间两列的可用宽度大 50%。请注意,四个值\hsize
(1.2、0.8、0.8 和 1.2)的总和为 4,这是类型 的列数X
(或者更准确地说是 类型Y
,其中Y
是 的一个版本X
,已修改为将单元格内容居中设置)。
\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{multirow,tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\renewcommand{\arraystretch}{2}
\begin{document}
\emph{Original form: All columns are equally wide.}
\noindent
\begin{tabularx}{\textwidth}{|*{4}{Y|}}
\hline
\multirow{2}{*}{State of Health}
& \multicolumn{2}{c|}{Fasting Value} & After Eating\\
\cline{2-4}
& Minimum & Maximum & 2 hours after eating\\
\hline
Healthy &70 &100 &Less than 140\\
\hline
Pre-Diabetes &101 &126 &140 to 200\\
\hline
Diabetes &More than 126 &N/A &More than 200\\
\hline
\end{tabularx}
\bigskip
\emph{Modified form: Columns 1 and 4 are 50\% wider than columns 2 and 3.}
\smallskip\noindent
\begin{tabularx}{\textwidth}{|
>{\hsize=1.2\hsize}Y|
>{\hsize=0.8\hsize}Y|
>{\hsize=0.8\hsize}Y|
>{\hsize=1.2\hsize}Y|}
\hline
\multirow{2}{*}{State of Health}
& \multicolumn{2}{c|}{Fasting Value} & After Eating\\
\cline{2-4}
& Minimum & Maximum & 2 hours after eating\\
\hline
Healthy &70 &100 &Less than 140\\
\hline
Pre-Diabetes &101 &126 &140 to 200\\
\hline
Diabetes &More than 126 &N/A &More than 200\\
\hline
\end{tabularx}
\end{document}
答案2
一种选择是使用tabulary
。它提供LCRJ
列类型,您可以控制最小和最大列宽,\tymin
例如\tymax
\tymin=20pt
\tymax=\maxdimen
也可以使用以下方法来设置\setlength
。
代码(使用链接的答案):
\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{multirow,tabulary}
\newcolumntype{Y}{>{\centering\arraybackslash}J}
\renewcommand{\arraystretch}{2}
\tymin=20pt
\tymax=\maxdimen
\begin{document}\pagestyle{empty}
\begin{tabulary}{\textwidth}{|*{4}{Y|}}
\hline
\multirow{2}{*}{State of Health}
&\multicolumn{2}{c|}{Fasting Value}&After Eating\\
\cline{2-4}
&Minimum &Maximum &2 hours after eating\\
\hline
Healthy &70 &100 &Less than 140\\
\hline
Pre-Diabetes &101 &126 &140 to 200\\
\hline
Diabetes &More than 126 &N/A &More than 200\\
\hline
\end{tabulary}
\end{document}