我是一个新的 latex 用户,我编写了以下表格代码:
\begin{tabular}{|l|c{1.5cm}|c|c|c|c|c|c|c|}
\hline
\textbf{\textcolor{red}{Proportional}}&\multicolumn{8}{c}{\textbf{$\sigma_D$}}\\\cline{2-9}
\textbf{\textcolor{red}{layer}}&\textbf{0}&\textbf{0.1}&\textbf{0.2}&\textbf{0.3}&\textbf{0.4}&\textbf{2}&\textbf{4}&\textbf{6}\\\hline
\textbf{daisy-chain}&136&148&157&167&173&304&424&544\\\hline
\textbf{Net1}&136&140&140&142&145&220&313&373\\\hline
\textbf{tree}&136&126&123&104&\textbf{93}&211&315&436\\\hline
\textbf{ring}&136&147&154&165&170&304&424&536\\\hline
\textbf{star-1}&136&134&146&162&175&389&607&\textbf{771}\\\hline
\textbf{wheel}&136&149&160&167&173&381&601&765\\\hline
\textbf{neighb135}&136&149&162&166&182&390&594&762\\\hline
\textbf{Net2}&136&133&138&135&146&392&524&605\\\hline
\textbf{Net3}&136&142&144&146&167&401&538&686\\\hline
\textbf{all-to-all}&136&145&149&154&170&408&554&713\\\hline
\end{tabular}
我如何修改此代码以增加所有带有数字的列的宽度?
答案1
为了充分利用所有可用宽度(\textwidth
),您可以使用tabularx
包。第一列设置为左对齐,而所有剩余的水平空间由数字列共享。
另外,为了使x
列居中,您可以定义一个新的列类型,如下所示:
\newcolumntype{Y}{>{\centering\arraybackslash}X}
在该包的帮助下array
。
\documentclass{article}
\usepackage{tabularx,color,array}
\begin{document}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{tabularx}{\textwidth}{|l|*{8}{Y}|}
\hline
\textbf{\textcolor{red}{Proportional}}&\multicolumn{8}{c|}{\textbf{$\sigma_D$}}\\\cline{2-9}
\textbf{\textcolor{red}{layer}}&\textbf{0}&\textbf{0.1}&\textbf{0.2}&\textbf{0.3}&\textbf{0.4}&\textbf{2}&\textbf{4}&\textbf{6}\\\hline
\textbf{daisy-chain}&136&148&157&167&173&304&424&544\\\hline
\textbf{Net1}&136&140&140&142&145&220&313&373\\\hline
\textbf{tree}&136&126&123&104&\textbf{93}&211&315&436\\\hline
\textbf{ring}&136&147&154&165&170&304&424&536\\\hline
\textbf{star-1}&136&134&146&162&175&389&607&\textbf{771}\\\hline
\textbf{wheel}&136&149&160&167&173&381&601&765\\\hline
\textbf{neighb135}&136&149&162&166&182&390&594&762\\\hline
\textbf{Net2}&136&133&138&135&146&392&524&605\\\hline
\textbf{Net3}&136&142&144&146&167&401&538&686\\\hline
\textbf{all-to-all}&136&145&149&154&170&408&554&713\\\hline
\end{tabularx}
\end{document}
更好的方法是使用booktabs
包:
\documentclass{article}
\usepackage{tabularx,color,array,booktabs,multirow}
\begin{document}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{tabularx}{\textwidth}{@{}l*{8}{Y}@{}}
\toprule
&\multicolumn{8}{c}{\textbf{$\sigma_D$}}\\\cmidrule(lr){2-9}
\multirow{-2}{*}{\textbf{\textcolor{red}{\parbox{6.7em}{Proportional layer}}}}&\textbf{0}&\textbf{0.1}&\textbf{0.2}&\textbf{0.3}&\textbf{0.4}&\textbf{2}&\textbf{4}&\textbf{6}\\\midrule
\textbf{daisy-chain}&136&148&157&167&173&304&424&544\\
\textbf{Net1}&136&140&140&142&145&220&313&373\\
\textbf{tree}&136&126&123&104&\textbf{93}&211&315&436\\
\textbf{ring}&136&147&154&165&170&304&424&536\\
\textbf{star-1}&136&134&146&162&175&389&607&\textbf{771}\\
\textbf{wheel}&136&149&160&167&173&381&601&765\\
\textbf{neighb135}&136&149&162&166&182&390&594&762\\
\textbf{Net2}&136&133&138&135&146&392&524&605\\
\textbf{Net3}&136&142&144&146&167&401&538&686\\
\textbf{all-to-all}&136&145&149&154&170&408&554&713\\\bottomrule
\end{tabularx}
\end{document}
答案2
\documentclass{article}
\usepackage{xcolor}
\begin{document}
\begin{tabular}{|l|*8{p{1cm}}|}
\hline
\textbf{\textcolor{red}{Proportional}}&\multicolumn{8}{c|}{\textbf{$\sigma_D$}}\\\cline{2-9}
\textbf{\textcolor{red}{layer}}&\textbf{0}&\textbf{0.1}&\textbf{0.2}&\textbf{0.3}&\textbf{0.4}&\textbf{2}&\textbf{4}&\textbf{6}\\\hline
\textbf{daisy-chain}&136&148&157&167&173&304&424&544\\\hline
\textbf{Net1}&136&140&140&142&145&220&313&373\\\hline
\textbf{tree}&136&126&123&104&\textbf{93}&211&315&436\\\hline
\textbf{ring}&136&147&154&165&170&304&424&536\\\hline
\textbf{star-1}&136&134&146&162&175&389&607&\textbf{771}\\\hline
\textbf{wheel}&136&149&160&167&173&381&601&765\\\hline
\textbf{neighb135}&136&149&162&166&182&390&594&762\\\hline
\textbf{Net2}&136&133&138&135&146&392&524&605\\\hline
\textbf{Net3}&136&142&144&146&167&401&538&686\\\hline
\textbf{all-to-all}&136&145&149&154&170&408&554&713\\\hline
\end{tabular}
\end{document}