不使用 threeparttable 和 minipage,图例的宽度与表格的宽度相同吗?

不使用 threeparttable 和 minipage,图例的宽度与表格的宽度相同吗?

我正在创建表格,但我希望标题与表格宽度相同。我无法使用threeparttableminipage环境,因为我的大学的标准模板不允许这样做。我需要在tabular环境中使用一些东西。

    \begin{table}[h]
        \begin{center}
            \caption{Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo }
            \renewcommand\tabcolsep{3pt}
            \begin{tabular}{c|c|c|c|c|c}
                    \hline
                    1 & 1 & 2 & 3 & 4 & 5 \\ \hline
                    2 & Text Text & Text Text & Text Text & Text Text & Text Text \\
                    3 & Text Text & Text Text & Text Text & Text Text & Text Text \\ \hline             
            \end{tabular}%
        \end{center}
    \end{table}

在此处输入图片描述

我不想手动指定宽度,因为我有很多表格。我需要一些命令来\changecaptionwidth自动\captionwidth使用表格宽度。这可能吗?

答案1

在此处输入图片描述

我确信您对要求有误解,minipage这是一个核心 latex 环境,如果允许您使用 latex,那么您就可以使用。同样,如果允许您使用此处发布的答案中的宏,那么即使由于某种原因您无法加载文件,minipage您也可以使用从中复制的宏。threeparttable

然而,它足够简单,可以满足要求,只需测量表格并将标题设置为该宽度。

\documentclass{article}

\newbox\tblbox
\begin{document}

\begin{table}[htp]% never use [h]
        \centering % not \begin{center} in floats 
            \renewcommand\tabcolsep{3pt}
            \sbox\tblbox{\begin{tabular}{c|c|c|c|c|c}
                    \hline
                    1 & 1 & 2 & 3 & 4 & 5 \\ \hline
                    2 & Text Text & Text Text & Text Text & Text Text & Text Text \\
                    3 & Text Text & Text Text & Text Text & Text Text & Text Text \\ \hline             
            \end{tabular}}%
       % \end{center}
       \parbox{\wd\tblbox}{\centering
       \caption{Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo }
       \smallskip
       \usebox\tblbox
       }
    \end{table}
\end{document}

答案2

在此处输入图片描述

\documentclass{article}
\usepackage{caption}
\captionsetup{width=.75\textwidth}
\begin{document}

 \begin{table}[h]
        \begin{center}
            \caption{Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo }
            \renewcommand\tabcolsep{3pt}
            \begin{tabular}{c|c|c|c|c|c}
                    \hline
                    1 & 1 & 2 & 3 & 4 & 5 \\ \hline
                    2 & Text Text & Text Text & Text Text & Text Text & Text Text \\
                    3 & Text Text & Text Text & Text Text & Text Text & Text Text \\ \hline             
            \end{tabular}%
        \end{center}
    \end{table}
\end{document}

答案3

既然您可以使用tabular,我认为使用tabularx也不是问题。您想为设置任何合适的总宽度tabularx,就像.8\textwidth我下面所做的那样。然后,标题只不过是 tabularx 中的一行。该行只有一个单元格,就像p{\dimexpr.8\textwidth-\tabcolsep}自动换行一样。

\documentclass[10pt,a4paper]{article}
\usepackage{tabularx}
\begin{document}

\begin{table}[!htbp]
  \centering
  \renewcommand\tabcolsep{3pt}
  \begin{tabularx}{.8\textwidth}{c*5{|X}}
    \multicolumn{6}{p{\dimexpr.8\textwidth-\tabcolsep}}{\caption{Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo}}\\[-.5\normalbaselineskip]
    \hline
    1 & 1 & 2 & 3 & 4 & 5 \\ \hline
    2 & Text Text & Text Text & Text Text & Text Text & Text Text \\
    3 & Text Text & Text Text & Text Text & Text Text & Text Text \\ \hline             
  \end{tabularx}%
\end{table}

\end{document}

在此处输入图片描述

答案4

如果您被允许加载该floatrow 包,它会定义一个\ttabbox命令,该命令默认将标题宽度设置为表格宽度(类似地,它有一个ffigbox用于图形的命令):

\documentclass{article}
\usepackage{floatrow}

\begin{document}

\begin{table}[htp]%
        \centering %
        \ttabbox{\begin{tabular}{c|c|c|c|c|c}
                    \hline
                    1 & 1 & 2 & 3 & 4 & 5 \\ \hline
                    2 & Text Text & Text Text & Text Text & Text Text & Text Text \\
                    3 & Text Text & Text Text & Text Text & Text Text & Text Text \\ \hline
            \end{tabular}}%
       {\caption{Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo Exemplo }}
    \end{table}

\end{document} 

在此处输入图片描述

相关内容