Remark: I wrote this answer to address the OP's initial query. Some time after I posted this answer, the OP changed the query more or less completely. I'm afraid that, as a result, my answer has become pretty much unintelligible to future readers, since it continues to address a query which is now no longer there.
I'd like to suggest that you employ a tabularx
environments, with four centered versions of the X
column type, and set the overall width to \columnwidth
.
Alternatively, you could let the table occupy the width of both columns by using a table*
environment and setting the width of the tabularx
environment equal to \textwidth
.


\documentclass[twocolumn]{elsarticle}
\usepackage{tabularx,ragged2e,booktabs}
\newcolumntype{C}[1]{>{\Centering\hsize=#1\hsize}X}
\begin{document}
\begin{table}[h] % all columns have same width
\begin{tabularx}{\columnwidth}{@{} *{4}{C{1}} @{}}
\toprule
Dataset & Number of speakers & Total utterances & Emotions\\
\midrule
Berlin Emotional Speech Database & 10 (5M,~5F) & 535 & Angry, Boredom, Disgust, Fear, Happy, Sadness, Neutral\\
\bottomrule
\end{tabularx}
\end{table}
\begin{table*}[h] % final column is twice as wide as first three
\begin{tabularx}{\textwidth}{@{} *{3}{C{0.8}} C{1.6} @{}}
\toprule
Dataset & Number of speakers & Total utterances & Emotions\\
\midrule
Berlin Emotional Speech Database & 10 (5M,~5F) & 535 & Angry, Boredom, Disgust, Fear, Happy, Sadness, Neutral\\
\bottomrule
\end{tabularx}
\end{table*}
\end{document}
Addendum to address one of the OP's follow-up queries:
I need to understand this whole line \begin{tabularx}{\textwidth}{@{} *{3}{C{0.8}} C{1.6} @{}}
Let's start with the definition of the C
column type:
\newcolumntype{C}[1]{>{\Centering\hsize=#1\hsize}X}
Here, the X
column type is defined by the tabularx
package and \Centering
is a macro defined by the ragged2e
package. If one or more columns of type X
are present, their width is calculated as a residual, i.e., after subtracting the widths of all other columns from the first argument of the \tabularx
environment. For instance,
\begin{tabularx}{\columnwidth}{@{} *{4}{C{1}} @{}}
means that the overall width (the first arg. of the tabularx
environment) is equal to \columnwidth
, while *{4}{C{1}}
means "4 columns of type C
, all equally wide". (The @{}
particles serve to suppress whitespace padding at the edges of the table.) The argument of C
is a relative width, where "relative" is in reference to the case of equal-width X-type columns. The main rule to follow here is that sum of the relative column widths (here: 1+1+1+1=4) must be equal to the number of X-type columns (here: 4).
We may now turn to the second tabularx
environment:
\begin{tabularx}{\textwidth}{@{} *{3}{C{0.8}} C{1.6} @{}}
Its overall width is \textwidth
(which is more than twice as large as \columnwidth
, and it consists of 4 columns overall. The first three are centered X-type columns with relative widths equal to 0.8, while the fourth is also a centered X-type column, with relative width of 1.6. Observe that 3*0.8+1.6 = 2.4+1.6 = 4 = number of X-type columns. In words: the usable width of the final column is twice that of the usable width of the first three columns." If you want to increase the relative widths of the first and last columns, you must also decrease the relative width of the second and third columns. E.g.,
\begin{tabularx}{\textwidth}{@{} C{0.9} C{0.7} C{0.7} C{1.7} @{}}
would be a syntactically correct specification.
c
columns are single line usep{6cm}
or whatever width you need in each case. if you usearray
package you can use>{\centering\arraybackslash}p{6cm}
to get centred entriesc
column types which does not allow line breaking in cells. Other than that I do not understand your comment, sorry.