I think it is worth pointing out that a lot of problems with tables can be avoided by reevaluating the design choices. I recommend reading The Data Prison and the booktabs
documentation to get a general idea of what's good table typography. If you still encounter layout problems, don't hesitate to consider arranging your data differently.
With this in mind, the following layout is an option.
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering
\sisetup{list-final-separator={, }}
\begin{tabular}{l r l}\toprule
Parameter & Unit & Values \\\midrule
channel bandwidth & \si{\mega\hertz} & \numlist{1.25; 2.5; 5; 10; 15; 20} \\
frame duration & \si{\milli\second} & \num{10} \\
sub-frame duration & \si{\milli\second} & \num{1} \\
sub-carrier spacing & \si{\kilo\hertz} & \num{15} \\
sampling frequency & \si{\mega\hertz} & \numlist{1.92; 3.84; 7.68; 15.36; 23.04; 30.72} \\\bottomrule
\end{tabular}
\end{table}
\end{document}
- In addition to the
booktabs
package I used siunitx
. It allows you to consistently typeset numbers and units. In this example, it doesn't do all that much, but it's a good idea to just always use it.
- Never use the option
h!
. If you don't want your table to float (i.e. move to a different place), then just don't put it into a floating environment (table
). I would recomment not giving the placement option at all as a rule and only fiddle with float placement when the document is finished otherwise.
- You should not use the
center
environment inside of a float environment (table
or figure
) as it introduces additional vertical space. Use \centering
instead.
- Try being consistent in your use of capital letters. I made all the parameter names lower case, though you may choose a different (consistent) convention.
If the values for the channel bandwidth and sampling frequency are not varied independently (as I suspect is the case here), it is better to move them next to each other so that they form their own little table.
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering
\begin{tabular}{l r *{6}{S[table-format=2.2]}}\toprule
Parameter & Unit & \multicolumn{6}{l}{Values} \\\midrule
frame duration & \si{\milli\second} & 10 \\
sub-frame duration & \si{\milli\second} & 1 \\
sub-carrier spacing & \si{\kilo\hertz} & 15 \\
sampling frequency & \si{\mega\hertz} & 1.92 & 3.84 & 7.68 & 15.36 & 23.04 & 30.72 \\
channel bandwidth & \si{\mega\hertz} & 1.25 & 2.5 & 5 & 10 & 15 & 20 \\\bottomrule
\end{tabular}
\end{table}
\end{document}
Should you have more values so that this approach isn't feasible any more, it is probably better to just put those to parameters in their own table. In general, having data of the same kind in a column is preferable to having it in a row.
article
document class show, that for text in first column is enough place to be in one line.