这是我的代码
\documentclass[a4paper]{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{5}}
\begin{document}
\begin{tabular}{c l l c |d{5}|d{1}|d{5}|}
\toprule
\bfseries i &
\bfseries Component &
\bfseries Category &
$N_i$ &
\multicolumn{1}{c}{ $\lambda_b$ } &
\multicolumn{1}{c}{ $\pi_Q$ } &
\multicolumn{1}{c}{ $\lambda_i$ } \\
\cmidrule(lr){1-7}
1 & MCU & Microprocessors & 1 & .048 & 10 & .48 \\
2 & MCU Socket & IC Sockets & 1 & .0035 & 0.3 & .00105 \\
3 & Ceramic capacitor & Capacitors & 2 & .0017 & 3 & .0102 \\
\midrule
\multicolumn{4}{r}{} & \multicolumn{2}{c|}{ $\lambda_{EQUIP}$ } & \multicolumn{1}{d{1}|}{ \multirow{2}{*}{0.491} } \\
\multicolumn{4}{r}{} & \multicolumn{2}{c|}{ [Failures/$10^6$ h] } & \\
\cmidrule{5-7}
\multicolumn{4}{r}{} & \multicolumn{2}{c|}{ \bfseries MTBF } & \multirow{2}{*}{2.037} \\
\multicolumn{4}{r}{} & \multicolumn{2}{c|}{ [$10^6$ h] } & \\
\cmidrule{5-7}
\end{tabular}
\end{document}
前提:我插入垂直线只是为了更好地看到水平间距。
我正在尝试解决这些问题:
- 我想为第六列定义一个带有 1 位小数的第二列类型,但我还没有找到有关 \newcolumntype 的详尽文档
- 为什么 lambda_EQUIP 和 MTBF 值不与小数点对齐?这是多行问题吗?我尝试将 lambda_EQUIP 封装在与小数点对齐的多列中,但如您所见,没有成功。
- 水平线有什么建议吗?我应该用 \bottomrule 替换 \midrule 吗?有类似 \bottomrule{5-7} 的东西吗?
答案1
我不明白你的意思第六列保留 1 位小数,因为值是整数。对于其余的,可以使用numprint
和makecell
包来满足您的要求。最后提到的代替了,multirow
因为它允许在具有预定义格式的表格中使用多行单元格。我还定义了一个cbottomrule
按您想要的方式显示的命令,以及一个\ctoprule
您在这里不需要但可能有用的命令。
以下是代码:
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{amsmath}
\usepackage{booktabs}
\newcommand*\cbottomrule[1]{\cmidrule[\heavyrulewidth]{#1}\addlinespace}
\newcommand*\ctoprule[1]{\addlinespace\cmidrule[\heavyrulewidth]{#1}}
\usepackage{numprint}%
\npdecimalsign{.}
\npthousandsep{,}
\npthousandthpartsep{\,}
\usepackage{makecell}
\renewcommand{\theadfont}{\bfseries\boldmath}}
\newcommand\twocolcell[1]{\multicolumn{2}{c}{\makecell{#1}}}
\begin{document}
\begin{tabular}[t]{c l lc n{1}{4} n{2}{1} n{1}{5} }%
\toprule
\thead{i}&
\thead{Component} &
\thead{Category} &
\thead{$N_i$} &
{\thead{$\lambda_b$}} &%
{\thead{ $\pi_Q$ }} &
{\thead{$\lambda_i$}} \\
\cmidrule(lr){1-7}
1 & MCU & Microprocessors & 1 & .048 & 10 & .48 \\
2 & MCU Socket & IC Sockets & 1 & .0035 & 0.3 & .00105 \\
3 & Ceramic capacitor & Capacitors & 2 & .0017 & 3 & .0102 \\
\midrule
& & & & \twocolcell{{\boldmath$\lambda_\textbf{\itshape\scriptsize EQUIP}$} \\{[Failures/$10^6$\,h]}} & 0.491 \\
\cmidrule{5-7}
& & & & \twocolcell{\bfseries MTBF\\{[$10^6$\,h]}} & 2.037 \\
\cbottomrule{5-7}
\end{tabular}
\end{document}
使用垂直线(代码略有不同):