如何在创建表格时创建所需长度的水平空间

如何在创建表格时创建所需长度的水平空间

我是 LaTeX 的新手。昨天开始使用。我一直在使用 R,现在也在使用,但发现使用 LaTeX 可以制作非常漂亮的表格。我一直在搜索并找到了一些我一直在修改的代码。下面的内容产生了一些不错的结果,但是,“Early”和“Late”名称,我希望它们更靠左。我现在知道这是一个愚蠢的问题,但我一直在为此苦苦思索几个小时。而名称“stimuli1、stimuli2 等。我希望它们向右移动几小步。我曾尝试\hspace just在 $stimuli1$ 之前放置以将整行向右移动,但没有结果。我试过了\phantom。LaTex 命令的 Wiki 页面给出了这个:\\[*][extra-space]但它似乎没有给出预期的结果。我可以继续使用三到四个命令。任何有关此问题的帮助都将不胜感激。我在 R-studio 上使用 Sweave 工作。

\documentclass{article}
\usepackage{booktabs} 
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}

\begin{document}
\SweaveOpts{concordance=TRUE}
\begin{table*}\centering
\ra{1.3}
\begin{tabular}{@{}rrcrrrcrrr@{}}\toprule
& \multicolumn{3}{c}{$Early$} & \phantom{abc}& &\multicolumn{3}{c}{$Late$} &
\phantom{abc}\\ \cmidrule{0-4} \cmidrule{6-10} 
$stimuli1$ && $stimuli2$ &&& $stimuli1$ && $stimuli2$\\ \midrule 
$CS+$ & $CS-$ & $CS+$ & $ CS+$ && $CS+$ & $CS-$ & $CS+$ & $CS-$\\ \midrule
$Object1$\ \hphantom{xyz}  0.07 (0.15) & 0.16 (0.16) & 0.07 (0.15) & 0.29 (0.45) && 0.36 (0.70) & 0.71 (0.87) & 3.18 (0.15) & 0.07 (0.90) \\
$Object2$\ \hphantom{xyz}  0.07 (0.15) & 0.16 (0.16) & 0.07 (0.15) & 0.29 (0.45) && 0.36 (0.70) & 0.71 (0.87) & 3.18 (0.15) & 0.07 (0.90) \\
\bottomrule
\end{tabular}
\caption{caption}
\end{table*}

\end{document}

答案1

我添加了一个宏来帮助保持一致的标题格式,并减少所需的冗余代码量。调用该宏\hf{columns}{content}并接受一个参数,即列数,就像 -environment 一样multicolumn。它以斜体排版其内容,如果您决定要将格式更改为普通文本,则只需更改一行即可。

我建议将这张表拆分成两张,因为这张表太宽了。由于太宽,我不得不将字体大小设置为\tiny,但这不是最好的方法。您也可以将这张表旋转,这样您就可以得到一张长表,而不是宽表。

在位于底部的第二段代码中,我通过创建一个包含所有标题的宏来拆分表格,因此它们具有相同的一致外观。我认为这比真正宽大的表格看起来更好。

第一个输出,宽表格,较小的字体

在此处输入图片描述

第一个代码,宽表格,较小的字体

\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\newcommand{\hf}[2]{%HeaderFormat
  \multicolumn{#1}{c}{#2}%
}
\begin{document}
% \SweaveOpts{concordance=TRUE}
\begin{table*}
\centering
\tiny
\ra{1.3}
\setlength{\tabcolsep}{2pt}
\begin{tabular}{%
  @{}>{\itshape}l% Remove space from edge, Set first colun in italice
  *{4}{% 4 columns of the following
    r@{\,}% right column for the mean value, and set the space between the two numbers to be exactly `\,`-space
    >{(}r<{)}% right column for the standard deviation, add paratheses before and after
    }%
  @{}l@{\hspace{2em}}% Need to control the space before and after the column with @{}, so that no `\tabcolsep` is inserted, and then we add the exact space we need.
  *{4}{r@{\,}>{(}r<{)}}% Same as above
  }
\toprule
& \hf{8}{Early} &&\hf{8}{Late}\\

\cmidrule{2-9} \cmidrule{11-18}
& \hf{4}{stimuli1} & \hf{4}{stimuli2} && \hf{4}{stimuli1} & \hf{4}{stimuli2}\\
\midrule
&\hf{2}{CS+} & \hf{2}{CS-} & \hf{2}{CS+} &  \hf{2}{CS+} && \hf{2}{CS+} & \hf{2}{CS-} & \hf{2}{CS+} & \hf{2}{CS-}\\
\midrule
Object1 &0.07&0.15 & 0.16&0.16 & 0.07&0.15 & 0.29&0.45 && 0.36&0.70 & 0.71&0.87 & 3.18&0.15 & 0.07&0.90 \\
Object2  &0.07&0.15 & 0.16&0.16 & 0.07&0.15 & 0.29&0.45 && 0.36&0.70 & 0.71&0.87 & 3.18&0.15 & 0.07&0.90 \\
\bottomrule
\end{tabular}
\caption{caption}
\end{table*}

\end{document}

第二个输出,拆分表

在此处输入图片描述

第二段代码,拆分表格

\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\newcommand{\hf}[2]{%HeaderFormat
  \multicolumn{#1}{c}{\itshape#2}%
}
\newcommand{\tableStimuli}[1]{%
\begin{tabular}{%
    @{}>{\itshape}l% Remove space from edge, Set first colun in   italice
    *{4}{% 4 columns of the following
      r@{\,}% right column for the mean value, and set the space between the two numbers to be exactly `\,`-space
      >{(}r<{)}% right column for the standard deviation, add paratheses before and after
      }
  }
\toprule

& \hf{4}{stimuli1} & \hf{4}{stimuli2}\\
 \cmidrule{2-9}% \cmidrule{6-8}
&\hf{2}{CS+} & \hf{2}{CS-} & \hf{2}{CS+} &  \hf{2}{CS+}\\
\midrule
#1\\
\bottomrule
\end{tabular}
}
\begin{document}
\begin{table*}
\centering
\ra{1.3}
\tableStimuli{%
Object1 &0.07&0.15 & 0.16&0.16 & 0.07&0.15 & 0.29&0.45\\
Object2 &0.07&0.15 & 0.16&0.16 & 0.07&0.15 & 0.29&0.45}
\caption{Early}
\end{table*}

\begin{table*}[hbt]
\centering
\ra{1.3}
\tableStimuli{%
Object1 &0.36&0.70 & 0.71&0.87 & 3.18&0.15 & 0.07&0.90\\
Object2 &0.36&0.70 & 0.71&0.87 & 3.18&0.15 & 0.07&0.90}
\caption{Late}
\end{table*}



\end{document}

答案2

我建议将其用于siunitx数字的垂直对齐。另外,您不应使用数学模式将文本设为斜体:字母间距与普通单词的间距不同。

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{booktabs, siunitx}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}

\begin{document}

%\SweaveOpts{concordance=TRUE}
\begin{table*}\centering\footnotesize\setlength\tabcolsep{3.3pt}
  \ra{1.3}\sisetup{table-format=1.2, table-number-alignment=center, table-space-text-post ={\, (0.00)}}
  \begin{tabular}{@{}>{\itshape}l*{2}{S}c*{2}{S}c*{2}{S}c*{2}{S}@{}}\toprule
    & \multicolumn{5}{>{\itshape}c}{Early} & & \multicolumn{5}{>{\itshape}c}{Late} \\ %
    \cmidrule(r){2-6} \cmidrule(l){8-12}
    & \multicolumn{2}{>{\itshape}c}{stimuli1} & & \multicolumn{2}{>{\itshape}c}{stimuli2} & & \multicolumn{2}{>{\itshape}c}{stimuli1} & & \multicolumn{2}{>{\itshape}c}{stimuli2} \\ \midrule
            & {$ CS+ $} & {$ CS- $} & & {$ CS+ $} & {$ CS+ $} & & {$ CS+ $} & {$ CS- $} & & {$ CS+ $} & {$ CS- $} \\ %
    \midrule
    Object1 &0.07 {\,(0.15)} & 0.16 {\,(0.16)} & & 0.07 {\,(0.15)} & 0.29 {\,(0.45)} && 0.36 {\,(0.70)} & 0.71 {\,(0.87)} & & 3.18 {\,(0.15)} & 0.07 {\,(0.90)} \\
    Object2 &0.07 {\,(0.15)} & 0.16 {\,(0.16)} & & 0.07 {\,(0.15)} & 0.29 {\,(0.45)} && 0.36 {\,(0.70)} & 0.71 {\,(0.87)} & & 3.18 {\,(0.15)} & 0.07 {\,(0.90)} \\
    \bottomrule
  \end{tabular}
  \caption{caption}
\end{table*}

\end{document} 

在此处输入图片描述

答案3

添加一列并居中逻辑组似乎是您所期望的:

\documentclass{article}
\usepackage{booktabs} 
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}

\begin{document}
%\SweaveOpts{concordance=TRUE}
\begin{table*}\centering
\ra{1.3}
\begin{tabular}{@{}rrrcrrrcrrr@{}}\toprule % one r added - PS
& \multicolumn{4}{c}{$Early$} & \phantom{abc} &\multicolumn{4}{c}{$Late$} &
\phantom{abc}\\ \cmidrule{0-4} \cmidrule{6-11} 
%$stimuli1$ && $stimuli2$ &&& $stimuli1$ && $stimuli2$\\ \midrule
&\multicolumn{2}{c}{$stimuli1$} &\multicolumn{2}{c}{$stimuli2$} && \multicolumn{2}{c}{$stimuli1$} & \multicolumn{2}{c}{$stimuli2$}\\ \midrule 
&$CS+$ & $CS-$ & $CS+$ & $ CS+$ && $CS+$ & $CS-$ & $CS+$ & $CS-$\\ \midrule
%$Social$\ \hphantom{xyz}  0.0790 & 0.1692 & 0.0790 & 0.2945 && 0.3670 & 0.7187 & 3.1815 & 0.0790 \\
$Social$& 0.0790 & 0.1692 & 0.0790 & 0.2945 && 0.3670 & 0.7187 & 3.1815 & 0.0790 \\
%$Sphere$\ \hphantom{xyz}  0.0790 & 0.1692 & 0.0790 & 0.2945 && 0.3670 & 0.7187 & 3.1815 & 0.0790\\
$Sphere$ &  0.0790 & 0.1692 & 0.0790 & 0.2945 && 0.3670 & 0.7187 & 3.1815 & 0.0790\\
\bottomrule
\end{tabular}
\caption{caption}
\end{table*}

\end{document}

在此处输入图片描述

顺便说一句:请不要使用数学模式来获得斜体字。不是$Early$,但是\textit{Early}等等。可能 Early 和 stimuli 的直立版本要好得多。

相关内容