如何在不使用 tabularx 之类的包的情况下将表格大小设置为 \linewidth?

如何在不使用 tabularx 之类的包的情况下将表格大小设置为 \linewidth?

PLOS 期刊提供以下内容指示准备 LaTeX 稿件:

  1. 请勿使用模板中未指定的任何其他软件包。如果您使用任何其他软件包,您的稿件将被退回。
  2. 请限制使用宏。我们使用的转换软件通常无法处理甚至“简单”的宏,这会增加转换后的文档出现错误的可能性。

模板仅使用以下包:amsmathamssymbgraphicxcitecolor

这是我想要包含在文档中的表格的示例:

\documentclass[10pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{cite}
\usepackage{color} 
\topmargin 0.0cm
\oddsidemargin 0.5cm
\evensidemargin 0.5cm
\textwidth 16cm 
\textheight 21cm
\usepackage[labelfont=bf,labelsep=period,justification=raggedright]{caption}
\makeatletter
\makeatother
\date{}
\begin{document}
\begin{table}[!ht]
\caption{\bf{Test Table}}
  \begin{tabular*}{1\linewidth}{@\extracolsep{\fill}}{rllllrrrlllll}
    \hline
    & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 \\ 
    \hline
    & Rowname & something  & 1000000 & 200 & 3000 & 40 &   1.5 & 320000 & 5.8 & 80 &  $^\ast$   \\ 
    \hline
  \end{tabular*}
\begin{flushleft}
caption text caption text
\end{flushleft}
\label{tab:priors}
\end{table}
\end{document}

我尝试过回答回到之前的问题:\begin{tabular*}{.5\linewidth}{@{\extracolsep{\fill}}rllllrrrlllll},但是这不起作用。

答案1

如果要使表格的总宽度等于\linewidth并使列间距均匀,那么您可以减小表格的字体(例如,使用\fontsize我的示例代码),然后将列间距设置为0pt(重新定义\tabcolsep),然后使用

\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llllrrrllll}

(您的代码有错误)。

我还根据包抑制了命令,caption因为它不在“accdepted”包列表中,并增加了行之间的垂直空间(重新定义\arraystretch):

\documentclass[10pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{cite}
\usepackage{color} 
\topmargin 0.0cm
\oddsidemargin 0.5cm
\evensidemargin 0.5cm
\textwidth 16cm 
\textheight 21cm

\date{}

\begin{document}

text text text text text text text text text text text text text text text text text text text text text text text text text
\begin{table}[!ht]
\footnotesize
\caption{Test Table}
\renewcommand\arraystretch{1.3}
\renewcommand\tabcolsep{0pt}
  \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llllrrrllll}
    \hline
    Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 & Column1 \\ 
    \hline
    Rowname & something  & 1000000 & 200 & 3000 & 40 &   1.5 & 320000 & 5.8 & 80 &  $^\ast$   \\ 
    \hline
  \end{tabular*}\par\medskip
text caption text
\label{tab:priors}
\end{table}

\end{document}

得出的结果为:

答案2

您的代码中有语法错误。应该是:

\begin{tabular*}{1\linewidth}{@{\extracolsep{\fill}}rllllrrrlllll}

不是

\begin{tabular*}{1\linewidth}{@\extracolsep{\fill}}{rllllrrrlllll}

这将为您提供下表。请注意,您的示例内容对于 来说太宽了\linewidth

结果

您没有说明您真正想要的结果(即表格应如何对齐等),所以我不能判断这是否就是您所需要的。另一种选择是仅按其自然宽度排版表格并使用 使其居中\centering

相关内容