如何制作一个宽度自适应的列?

如何制作一个宽度自适应的列?

在创建下表时我有两个问题:

1) 如何让第一个子列(带有标题编号)的宽度自适应?现在它与第二个子列的宽度相同,但我想让编号列更窄一些。

2)如何使员工列标题“员工”垂直居中?

\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}
{ *2{>{\centering}m{2cm}| }
>{\centering\arraybackslash}m{2cm}|
 *2{>{\centering}m{1.6cm}| }
 >{\centering\arraybackslash}m{2cm}|
>{\centering\arraybackslash}m{1.7cm}}
\hline
\multicolumn{2}{c|}{ Location} & Production &
\multicolumn{2}{c|}{Ratio in Year} & Employees & Profit \\
\cline{1-1}\cline{2-1}\cline{4-1}\cline{5-1}
 No. & coordinates& (lb.) & 1983 & 1984 && \$ \\ \hline
1 & -2 36 27 & 28000 & 0.35 & 0.31 & 17 & 542800\\ \hline
\end{tabular}
\end{document}

在此处输入图片描述

答案1

对于自适应宽度,只需拆分前两列的定义,保留m{2cm}第二列并引入c第一列。clr列均将文本的自然宽度作为宽度。

对于垂直居中,您可以使用包\multirow{<rows>}{<width>}{<content>}中的命令multirow

\documentclass{article}
\usepackage{array}
\usepackage{multirow}
\begin{document}
\begin{tabular}{
    c|                              %first column
    >{\centering}m{2cm}|            
    >{\centering\arraybackslash}m{2cm}
    |*2{>{\centering}m{1.6cm}| }
    >{\centering\arraybackslash}m{2cm}|
    >{\centering\arraybackslash}m{1.7cm}
}
\hline
\multicolumn{2}{c|}{ Location} & Production &
\multicolumn{2}{c|}{Ratio in Year} & \multirow{2}{*}{Employees} & Profit \\
\cline{1-1}\cline{2-1}\cline{4-1}\cline{5-1}
 No. & coordinates& (lb.) & 1983 & 1984 && \$ \\ \hline
1 & -2 36 27 & 28000 & 0.35 & 0.31 & 17 & 542800\\ \hline
\end{tabular}
\end{document}

在此处输入图片描述

相关内容