具有多行和多列的表格

具有多行和多列的表格

我只想创建一个具有多行和多列的表格,这是一个非常合适的解决方案:表格行跨度和列跨度,但有人能帮助我获得可变的列宽而不是相等的列宽吗?

答案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}

在此处输入图片描述

相关内容