如何在用“renewenvironment”重新定义的表中添加额外的“来源”标题?

如何在用“renewenvironment”重新定义的表中添加额外的“来源”标题?

我的表格运行良好,上面有常规标题,下面有源信息:

附有标题和来源的图表。

在实施给出的解决方案之后https://tex.stackexchange.com/a/485538/91816,字幕消失了。

图中无常规标题。

我认为标题已被源命令定义的标题所取代。

请参阅下面的 MWE(https://www.overleaf.com/read/bryfbdpbfcww)。

\documentclass[10pt]{book}

\usepackage{float}
\usepackage[table]{xcolor}
\usepackage{tabu}

\usepackage{caption}

% TABLE CONFIGURATION
\floatstyle{plaintop}
\restylefloat{table}
\makeatletter
\let\float@table\table % must be after \restylefloat{table}
\renewenvironment{table}
     {\taburulecolor{green}\arrayrulecolor{green}\float@table}
 {\end@float}
\makeatother
% TABLE CONFIGURATION

\newcommand{\source}[1]{\captionsetup{singlelinecheck=false,justification=justified}\caption*{\footnotesize \noindent Source: {#1}}}

\begin{document}

\begin{table}[H]

    \centering
    \caption{This is a caption.}
    \label{tab:atable}

    \begin{tabular}{c|c|c}
        \hline
        1 & 2 & 3 \tabularnewline
        \hline
        4 & 5 & 6 \tabularnewline
        \hline
    \end{tabular}

    \source{This is the source.}

\end{table}

\end{document}

它仅当我用 注释掉行间代码时才有效% TABLE CONFIGURATION

在我的实际文档中,情况更糟,因为甚至没有显示源代码。我猜是其他一些软件包newfloat导致了其他问题。

答案1

这是样式的限制plaintop。当您在同一个环境中有两个标题时table(这是 LaTeX 允许的),使用重新设置样式的浮动plaintop只会打印第二个标题,而忽略第一个标题。

\documentclass[10pt]{book}

\usepackage{float}

\floatstyle{plaintop}
\restylefloat{table}

\begin{document}

\begin{table}
\centering

\caption{First caption}

\begin{tabular}{cc}
\hline
a & b \\
\hline
\end{tabular}

\caption{Second caption}

\begin{tabular}{cc}
\hline
a & b \\
\hline
\end{tabular}

\end{table}

\end{document}

在此处输入图片描述

解决方案:不要\restylefloat{table}在适当的位置输入标题。

相关内容