为什么使用 dcolumn 包对齐数字时 65* 会变成 65∗?

为什么使用 dcolumn 包对齐数字时 65* 会变成 65∗?

我正在使用dcolumn包来对齐小数点后的一些数字。但是,其中一些数字带有“***符号”,以便将它们与表格末尾的附加信息相关联。但是,一旦我编译,就会0.098*变成0.098∗。只有当我将列中心定义为而.不是c或时,才会发生这种情况l。例如begin{tabular}{l . c}

前言:

\usepackage[dvips,letterpaper,margin=1in]{geometry}
\usepackage{booktabs}
\usepackage{tabularx}
\setlength{\abovecaptionskip}{6pt}  
\setlength{\belowcaptionskip}{6pt}  
\usepackage[large, bf, justification=centering]{caption}
\usepackage{rotating}
\usepackage{dcolumn}
\newcolumntype{.}{D{.}{.}{5,6}}

以下是其余代码:

代码: 选择全部

\begin{table}
\footnotesize
\caption*{Table 5: Ordered logit results for men and women living in Denmark}
\centering
\begin{tabular}{l . .}
\toprule
\toprule
%
\multicolumn{1}{l}{taste for redistribution} & \multicolumn{1}{c}{\bf Men} & \multicolumn{1}{c}{\bf Women} \
\multicolumn{1}{l}{in Denemark} & \multicolumn{1}{c}{\bf b/se} & \multicolumn{1}{c}{\bf b/se} \
\midrule
&          \\
%
%    
               age       & 0.018*  &       0.020* \
\midrule
* p<0.05, ** p<0.01, *** p<0.001 \\
\bottomrule
\addlinespace[0.75em]
%
\scriptsize{\emph{Source: }stayers survey}
\end{tabular}
\end{table}

有人能提供提示吗?

答案1

获得所需输出的一种方法是使用^{\ast}而不是*。此外,在这种情况下,脚注应该处于数学模式:

在此处输入图片描述

\documentclass{article}
\usepackage[dvips,letterpaper,margin=1in]{geometry}
\usepackage{booktabs}
\usepackage{tabularx}
\setlength{\abovecaptionskip}{6pt}  
\setlength{\belowcaptionskip}{6pt}  
\usepackage[large, bf, justification=centering]{caption}
\usepackage{rotating}
\usepackage{dcolumn}
\newcolumntype{.}{D{.}{.}{5,6}}

\begin{document}
\begin{table}
\footnotesize
\caption*{Table 5: Ordered logit results for men and women living in Denmark}
\centering
\begin{tabular}{l . .}
\toprule
\toprule
%
\multicolumn{1}{l}{taste for redistribution} & \multicolumn{1}{c}{\bf Men} & \multicolumn{1}{c}{\bf Women} \\

\multicolumn{1}{l}{in Denemark} & \multicolumn{1}{c}{\bf b/se} & \multicolumn{1}{c}{\bf b/se} \\

\midrule
&          \\
%
%    
               age       & 0.018^{\ast}  &       0.020^{\ast} \\

\midrule
${}^\ast p<0.05$, ${}^{\ast\ast} p<0.01$, ${}^{\ast\ast\ast} p<0.001$ \\
\bottomrule
\addlinespace[0.75em]
%
\scriptsize{\emph{Source: }stayers survey}
\end{tabular}
\end{table}

\end{document}

答案2

对你的问题的简短回答是:dcolumn格式列中的材料是以数学模式而不是文本模式设置的。

稍微长一点的回答:当 TeX 处于数学模式时,它会将*符号渲染为乘法运算符号,而当 TeX 处于文本模式时,它会将符号视为“凸起的星号”(因为没有更好的术语)。要在设置中获得文本模式行为dcolumn,最好在序言中创建以下三个宏

\newcommand\istar{\text{*}}
\newcommand\iistar{\text{**}}
\newcommand\iiistar{\text{***}}

然后0.018\istar在表格环境中使用这些宏,如 。注意:\text命令由包提供amsmath(这意味着也必须加载此包 - 但是,您可能已经这样做了,对吗?)。

下面的图片基于您的代码,但经过修改和简化,以突出与星号相关的问题。例如,我省略了所有更改字体大小的命令,并大大缩短了标题。

在此处输入图片描述

\documentclass[letterpaper]{article}
\usepackage{booktabs,amsmath,caption,dcolumn}
\newcolumntype{.}{D{.}{.}{2,5}}
\newcommand\istar{\text{*}}
\newcommand\iistar{\text{**}}
\newcommand\iiistar{\text{***}}
\begin{document}
\begin{table}
\caption*{Table 5: Ordered logit results}
\centering
\begin{tabular}{l . .}
\toprule
Taste for redistribution & 
  \multicolumn{1}{c}{\bfseries Men} & \multicolumn{1}{c}{\bfseries Women} \\
in Denmark & 
  \multicolumn{1}{c}{\bfseries b/se} & \multicolumn{1}{c}{\bfseries b/se} \\
\midrule
Age       & 0.018\istar  &       0.020\iiistar \\
\midrule
\multicolumn{3}{l}{* $p<0.05$, ** $p<0.01$, *** $p<0.001$} \\
\midrule[\heavyrulewidth]
\emph{Source:} Stayers survey\\
\end{tabular}
\end{table}
\end{document}

相关内容