我是 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 的直立版本要好得多。