从作为外部文件的表格中生成 2 个并排表格(来源:R 中的 xtable)

从作为外部文件的表格中生成 2 个并排表格(来源:R 中的 xtable)

是否可以将两个位于单独 .tex 文件中的表格放在一起,然后通过 添加到文档中\input?如果不能,我也可以使用content.onlyxtable 命令仅创建表格的“原始”内容,即仅创建行和列。

假设我得到下表两次,保存为两个单独的 tex 文件:

\begin{table}
\begin{tabular}{lYY}
\toprule 
& \multicolumn{1}{c}{$N_1$} & 
\multicolumn{1}{c}{$N_2$} \\
\midrule 
\multicolumn{1}{l}{$S_1$} &  0.14 & -1.243 \\ 
\multicolumn{1}{l}{$S_2$} &  0.217 &  4.132 \\ 
\multicolumn{1}{l}{$S_3$} &  7.350 & -9.913 \\ 
\multicolumn{1}{l}{$S_4$} & 0.132 & 6.664 \\ 
\bottomrule 
\end{tabular}
\end{table}

我可以使用 将它们放在一起input吗?我知道您需要以minipage某种方式利用环境,但我不知道这是否可以与 include 结合使用。我无法让它在某些测试中发挥作用。

如果 include 不起作用,我可能会只创建内容,将其放在 minipage 环境中的正确位置。无论如何,请帮我编写代码。谢谢!

答案1

答案是肯定的,有可能。

假设你的 .tex 文件都包含以下形式的代码\begin{table}\begin{tabular}{...} ... \end{tabular}\end{table},你可以

  • 本地重新定义table环境,使其不执行任何操作,并且
  • 在环境内输入该代码subtable;这样的环境minipage在内部使用,这意味着您不必明确使用minipage

请注意,在这种特定情况下,您要使用\input,而不是\include;请参阅何时应使用 \input 和 \include?更多细节。

请参阅下面的示例,其中我定义了一个名为的宏\insertmytabular,以实现更多自动化。

在此处输入图片描述

\documentclass{article}

\usepackage{booktabs}
\usepackage{subcaption}
\usepackage{filecontents}

\newcommand\insertmytabular[3][.45]%
{%
    {% extra group to make the redefinition of table local
        \renewenvironment{table}[1][]{}{}
        \begin{subtable}[b]{#1\textwidth}
            \centering
            \input{#2}
            \caption{#3}
        \end{subtable}%
    }%
}

\begin{filecontents*}{tabularstuff.tex}
\begin{table}
\begin{tabular}{lll}
\toprule 
& \multicolumn{1}{c}{$N_1$} & 
\multicolumn{1}{c}{$N_2$} \\
\midrule 
$S_1$ &  0.14 & -1.243 \\ 
$S_2$ &  0.217 &  4.132 \\ 
$S_3$ &  7.350 & -9.913 \\ 
$S_4$ & 0.132 & 6.664 \\ 
\bottomrule 
\end{tabular}
\end{table}
\end{filecontents*}

\begin{document}
\begin{table}
    \insertmytabular{tabularstuff}{first table}
    \hfill
    \insertmytabular{tabularstuff}{second table}
    \caption{two tables}
\end{table}
\end{document}

编辑(回答后续问题):在这种情况下,定义\insertmytabular如下:

\newcommand\insertmytabular[3][.45]%
{%
    {% extra group to make the redefinition of table local
        \renewenvironment{table}[1][]{}{}
        \begin{subtable}[b]{#1\textwidth}
            \input{#2}
        \end{subtable}%
    }%
}

相关内容