在文章文档类中将三部分表格居中

在文章文档类中将三部分表格居中

我有一个三部分表格,其中的单元格需要居中。我测试了所有\centering\begin{center}…\end{center}命令。但这些命令不起作用!虽然没有错误,但单元格中的文本仍然左对齐。这是我的表格:

\documentclass{elsart5p}
\usepackage{subcaption}
\usepackage{booktabs}
\usepackage{threeparttable}
\begin{document}

\begin{threeparttable}
%\centering
\begin{center}
\caption{myTable}\label{tab:table1}
\setlength{\tabcolsep}{6pt}

\begin{tabular}[width=\linewidth]{p{0.6\linewidth}p{0.4\linewidth}}
\toprule
Header Header Header Header Header Header Header Header Header Header1&Header Header Header Header Header2\\
     \midrule 
col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1* & col2 col2 col2 \\
cell3 cell3& cell4 cell4 cell4 cell4 cell4\\
\bottomrule

\end{tabular}

\begin{tablenotes}
\item *Star: important
\end{tablenotes}

\end{center}
\end{threeparttable}


\end{document}

有些单元格中要写入的文本太长,所以我不得不使用 \begin{tabular}[width=\linewidth]{p{0.6\linewidth}p{0.4\linewidth}}命令将每个单元格的文本分成两行或三行。

我怎样才能使这张表居中?

答案1

一些评论和意见:

  • tabular确实不是采用预期宽度参数。 识别的唯一参数tabular会影响相对于相邻元素的垂直定位:tc(默认),而b.width=\linewidth则被忽略。

  • 你可能正在考虑tabularx环境。默认情况下,其X列类型将材料排版为完全对齐。要获取X列类型的居中版本,请通过以下方式定义它

    \newcolumntype{C}{>{\centering\arraybackslash}X}
    
  • 如果你想让第一列比第二列宽 50%,你应该这样写

    \begin{tabularx}{\linewidth}{@{} >{\hsize=1.2\hsize}C >{\hsize=0.8\hsize}C @{}}
    

    观察1.2=1.5*0.8并且1.2+0.8=2——类型的列数X

  • 环境threeparttable应嵌入在table环境中。使用\tnote指令放置自由格式的脚注标记,并使用环境\item中的语句tablenotes开始相关的脚注文本。


在此处输入图片描述

\documentclass{elsart5p}
\usepackage{caption,tabularx,booktabs}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage[flushleft]{threeparttable}
\begin{document}

\begin{table}
%% \setlength\tabcolsep{6pt} % that's the default!
\begin{threeparttable}

\caption{myTable}
\label{tab:table1}

\begin{tabularx}{\linewidth}{@{} >{\hsize=1.2\hsize}C >{\hsize=0.8\hsize}C @{}}
\toprule
Header Header Header Header Header Header Header Header Header Header1&
Header Header Header Header Header2\\
\midrule
col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1 col1\tnote{*} &
col2 col2 col2 \\
cell3 cell3& 
cell4 cell4 cell4 cell4 cell4\\
\bottomrule
\end{tabularx}

\medskip
\begin{tablenotes}
\item[*]Star: important
\end{tablenotes}

\end{threeparttable}
\end{table}

\end{document} 

相关内容