这可以完全在 LaTeX 中完成......
\documentclass{article}
\usepackage{amsmath,collcell,array}% http://ctan.org/pkg/{amsmathm,collcell,array}
\makeatletter
\def\insertbf@$\underset#1#2${$\underset{#1}{\mathbf{#2}}$}
\newcommand{\insertbf}[1]{\expandafter\insertbf@#1}
\newcolumntype{C}{>{\collectcell\insertbf}c<{\endcollectcell}}
\makeatother
\begin{document}
\begin{table}[hptb]
\centering
\begin{tabular}{|l||*{7}{c|}} \hline
(Intercept) & $\underset{(1.742)}{-9.686}$ & $\underset{(0.907)}{-9.085}$ & $\underset{(0.663)}{-9.724}$
& $\underset{(0.565)}{-9.077}$ & $\underset{(0.619)}{-7.601}$ & $\underset{(0.838)}{-5.273}$
& $\underset{(1.120)}{-3.417}$
\end{tabular}
\bigskip
\begin{tabular}{|l||*{7}{C|}} \hline
(Intercept) & $\underset{(1.742)}{-9.686}$ & $\underset{(0.907)}{-9.085}$ & $\underset{(0.663)}{-9.724}$
& $\underset{(0.565)}{-9.077}$ & $\underset{(0.619)}{-7.601}$ & $\underset{(0.838)}{-5.273}$
& $\underset{(1.120)}{-3.417}$
\end{tabular}
\end{table}
\end{document}
在上面的示例中,两个表都相同,顶部的表使用常规c
-column 规范,而底部的表使用新定义的C
-column 规范。后者截取 的设置\underset
来修改第二个参数的字体。
该collcell
包用于捕获第 2-8 列中每个单元格的内容。它们必须与表单完全匹配$\underset{#1}{#2}$
,才能将其转换为$\underset{#1}{\mathbf{#2}}$
. 该array
包通过新定义的列简化了单元格收集(简化了代码)。
需要注意的一些事项:
我使用了一个复制列说明符,它总共*{<num>}{<col spec>}
重复列说明。它使代码更具可读性。<col spec>
<num>
使用\mathbf
而不是与文本相关的\bf
. 请参阅如果我使用or 、or等是否重要\textit
\it
\bfseries
\bf
,以及两个字母的字体样式命令 ( \bf
, \it
, ...) 是否会在 LaTeX 中复活?
与其一遍又一遍地重复相同的原始概念,不如定义一个您可以使用的宏(请参阅一致的排版)。通过这种方式,它可以让您深入了解内容,如果您改变主意,您可以轻松操作这些内容。例如,
\newcommand{\stderrest}[2]{$\underset{(#1)}{#2}$}% \stderrest{<stderr>}{<est>}
然后\stderrest{<stderr>}{<est>}
在需要这种东西的地方使用。这样,格式的更新就像
\renewcommand{\stderrest}[2]{$\underset{(#1)}{\mathbf{#2}}$}% \stderrest{<stderr>}{<est>}
你就完成了。
不要使用center
浮子内部的环境;而是使用\centering
. 作为参考,请参阅我应该使用\center
或\centering
用于图形和表格吗?
使用\makeatletter
...\makeatother
对只是因为我定义了一个与您的规范输入相匹配的特定“内部”命令。这不是真正必要的,可以更改。但有关这方面的更多信息,请参阅做什么\makeatletter
和\makeatother
做什么?
如果新定义的C
-column 中有一个没有$\underset{#1}{#2}$
表单的单元格,则需要使用\multicolumn{1}{c|}{..}
它来避免它被收集。
...无论如何要添加一个条件语句,该语句仅在当且仅当除以的绝对值大于 2时才插入\mathbf
先验?截至目前,它会将.{#2}
{#2}
{#1}
\mathbf
{#2}
对于变量的条件格式,这里有一个选项:
\documentclass{article}
\usepackage{amsmath,collcell,array}% http://ctan.org/pkg/{amsmathm,collcell,array}
\usepackage[nomessages]{fp}% http://ctan.org/pkg/fp
\makeatletter
\let\stderr@format\relax
\def\stripparen@(#1){#1}% Remove parentheses
\def\insertbf@$\underset#1#2${%
\FPabs\resultA{#2}% Absolute value of #2
\edef\resultB{\stripparen@#1}% Extract std err
\FPeval\result{\resultA / \resultB}% Divide est / std err
\FPifgt\result{2}\let\stderr@format\mathbf\fi%
$\underset{#1}{\stderr@format{#2}}$}%
\newcommand{\insertbf}[1]{\expandafter\insertbf@#1}
\newcolumntype{C}{>{\collectcell\insertbf}c<{\endcollectcell}}
\makeatother
\begin{document}
\begin{table}[hptb]
\centering
\begin{tabular}{|l||*{7}{c|}} \hline
(Intercept) & $\underset{(1.742)}{-9.686}$ & $\underset{(0.907)}{-9.085}$ & $\underset{(0.663)}{-9.724}$
& $\underset{(0.565)}{-9.077}$ & $\underset{(0.619)}{-7.601}$ & $\underset{(0.838)}{-5.273}$
& $\underset{(1.120)}{-3.417}$
\end{tabular}
\bigskip
\begin{tabular}{|l||*{7}{C|}} \hline
(Intercept) & $\underset{(1.742)}{-9.686}$ & $\underset{(0.907)}{-9.085}$ & $\underset{(0.663)}{-9.724}$
& $\underset{(0.565)}{-9.077}$ & $\underset{(0.619)}{-7.601}$ & $\underset{(0.838)}{-5.273}$
& $\underset{(1.120)}{-3.417}$
\end{tabular}
\bigskip
\begin{tabular}{|l||*{7}{C|}} \hline
(Intercept) & $\underset{(1.742)}{-2.686}$ & $\underset{(0.907)}{-9.085}$ & $\underset{(0.663)}{-9.724}$
& $\underset{(0.565)}{-9.077}$ & $\underset{(0.619)}{-7.601}$ & $\underset{(0.838)}{-1.273}$
& $\underset{(1.120)}{-3.417}$
\end{tabular}
\end{table}
\end{document}
fp
提供定点算法来条件某些变量的值。我确信更新的代码是不言自明的。