我需要将表格从 pdf 文件复制到我的 LaTeX 文档中。我知道我必须手动完成,但仍然不明白如何使用 LaTeX 创建表格。
答案1
这里,图形标签打印为,Table x.y
其中x
是章节编号,y
是章节内的表格编号x
。
\documentclass{article}
\usepackage[hmargin=3cm,vmargin=3.75cm]{geometry} % Here, only used to get rid of a overfull \hbox warning.
\usepackage{booktabs,dcolumn} % Tables.
\usepackage[figureposition=bottom]{caption} % Float captions.
% Globally set table float position.
\makeatletter
\providecommand*\setfloatlocations[2]{\@namedef{fps@#1}{#2}}
\makeatother
\setfloatlocations{table}{htbp}
% Redefine table counter.
\makeatletter
\@addtoreset{table}{section}
\makeatother
\renewcommand*\thetable{\arabic{section}.\arabic{table}}
% Simplify notation.
\newcolumntype{d}[1]{D{.}{.}{#1}}
\newcommand*\mc[1]{\multicolumn{1}{c}{#1}}
\newcommand*\mcTwo[1]{\multicolumn{2}{l}{#1}}
\begin{document}
\section{First section}
Something.
\begin{table}
\centering
\caption{A data table.}
\label{tbl:1}
\begin{tabular}{c c}
A & B \\
C & D
\end{tabular}
\end{table}
\begin{table}
\centering
\caption{A data table.}
\label{tbl:2}
\begin{tabular}{c c}
E & F \\
G & H
\end{tabular}
\end{table}
\section{Second section}
Something.
\begin{table}
\centering
\caption{A data table.}
\label{tbl:3}
\begin{tabular}{c d{2.1} d{2.1} d{2.1} d{1.1} d{1.1} d{1.2} d{1.1} d{1.1} d{1.1} d{1.1} d{1.0} d{1.2}}
\toprule
Alloy & \mc{Ni} & \mc{Cr} & \mc{Co} & \mc{Mo} & \mc{W} & \mc{Al} & \mc{Ti} & \mc{Ta} & \mc{Re} & \mc{Nb} & \mc{V} & \mc{Hf} \\
\midrule
\mcTwo{First generation} & & & & & & & & & & & \\
\midrule
PWA~1480 & 62.5 & 10 & 5 & \mc{---} & 4 & 5 & 1.5 & 12 & \mc{---} & \mc{---} & \mc{---} & \mc{---} \\[1ex]
Ren{\'e}~N4 & 62.6 & 9 & 8 & 2 & 6 & 3.7 & 4.2 & 4 & \mc{---} & 0.5 & \mc{---} & \mc{---} \\[1ex]
CMSX-2 & 66.6 & 8 & 4.6 & 0.6 & 7.9 & 5.6 & 0.9 & 5.8 & \mc{---} & \mc{---} & \mc{---} & \mc{---} \\[1ex]
SRR~99 & 66.5 & 8.5 & 5 & \mc{---} & 9.5 & 5.5 & 2.2 & 2.8 & \mc{---} & \mc{---} & \mc{---} & \mc{---} \\
\midrule
\mcTwo{Second generation} & & & & & & & & & & & \\
\midrule
PWA~1484 & 59.4 & 5 & 10 & 2 & 6 & 5.6 & \mc{---} & 9 & 3 & \mc{---} & \mc{---} & \mc{---} \\[1ex]
Ren{\'e}~N5 & 61.8 & 7 & 8 & 2 & 5 & 6.2 & \mc{---} & 7 & 3 & 0.5 & \mc{---} & 0.2 \\[1ex]
CMSX~4 & 61.8 & 6.5 & 9 & 0.6 & 6 & 5.6 & 1 & 6.5 & 3 & \mc{---} & \mc{---} & 0.1 \\[1ex]
CMSX~6 & 70.4 & 10 & 5 & 3 & \mc{---} & 4.8 & 4.7 & 2 & \mc{---} & \mc{---} & \mc{---} & 0.1 \\
\midrule
\mcTwo{Third generation} & & & & & & & & & & & \\
\midrule
CMSX-10 & 69.6 & 2 & 3 & 0.4 & 5 & 5.7 & 0.2 & 8 & 6 & 0.1 & \mc{---} & 0.03 \\[1ex]
Ren{\'e}~N6 & 57.4 & 4.2 & 12.5 & 1.4 & 6 & 5.75 & 0 & 7.2 & 5.4 & 0 & 0 & 0.15 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
更新
创建表的另一种方法是S
使用siunitx
;
\documentclass{article}
\usepackage[
% locale = DE % if you want a comma as decimal separator instead of a dot
]{siunitx}
%\usepackage[version = 3]{mhchem} % typesetting chemical formulae using \ce{}
\usepackage{booktabs}
\newcommand*\mcTwo[1]{\multicolumn{2}{l}{#1}}
\begin{document}
\begin{tabular}{
c
*{3}{S[table-format = 2.1]}
*{2}{S[table-format = 1.1]}
S[table-format = 1.2]
*{4}{S[table-format = 1.1]}
S[table-format = 1]
S[table-format = 1.2]
}
\toprule
Alloy & {Ni} & {Cr} & {Co} & {Mo} & {W} & {Al} & {Ti} & {Ta} & {Re} & {Nb} & {V} & {Hf} \\
\midrule
\mcTwo{First generation} & & & & & & & & & & & \\
\midrule
PWA~1480 & 62.5 & 10 & 5 & {---} & 4 & 5 & 1.5 & 12 & {---} & {---} & {---} & {---} \\[1ex]
Ren{\'e}~N4 & 62.6 & 9 & 8 & 2 & 6 & 3.7 & 4.2 & 4 & {---} & 0.5 & {---} & {---} \\[1ex]
CMSX-2 & 66.6 & 8 & 4.6 & 0.6 & 7.9 & 5.6 & 0.9 & 5.8 & {---} & {---} & {---} & {---} \\[1ex]
SRR~99 & 66.5 & 8.5 & 5 & {---} & 9.5 & 5.5 & 2.2 & 2.8 & {---} & {---} & {---} & {---} \\
\midrule
\mcTwo{Second generation} & & & & & & & & & & & \\
\midrule
PWA~1484 & 59.4 & 5 & 10 & 2 & 6 & 5.6 & {---} & 9 & 3 & {---} & {---} & {---} \\[1ex]
Ren{\'e}~N5 & 61.8 & 7 & 8 & 2 & 5 & 6.2 & {---} & 7 & 3 & 0.5 & {---} & 0.2 \\[1ex]
CMSX~4 & 61.8 & 6.5 & 9 & 0.6 & 6 & 5.6 & 1 & 6.5 & 3 & {---} & {---} & 0.1 \\[1ex]
CMSX~6 & 70.4 & 10 & 5 & 3 & {---} & 4.8 & 4.7 & 2 & {---} & {---} & {---} & 0.1 \\
\midrule
\mcTwo{Third generation} & & & & & & & & & & & \\
\midrule
CMSX-10 & 69.6 & 2 & 3 & 0.4 & 5 & 5.7 & 0.2 & 8 & 6 & 0.1 & {---} & 0.03 \\[1ex]
Ren{\'e}~N6 & 57.4 & 4.2 & 12.5 & 1.4 & 6 & 5.75 & 0 & 7.2 & 5.4 & 0 & 0 & 0.15 \\
\bottomrule
\end{tabular}
\end{document}
(我个人比较喜欢这种方法。)
答案2
该表的简单版本:
\documentclass[12pt]{article}
\renewcommand*{\arraystretch}{1.2}
\begin{document}
\noindent
\begin{tabular}{|c|*{12}{c}}
\hline
Alloy & Ni & Cr & Co & Mo & W & Al & Ti & Ta & Re & Nb & V & Hf \\
\hline
\multicolumn{13}{|l}{First generation}\\
\hline
PWA 1480 & 62.5 & 10 & 5 & & 4 & 5 & 1.5 & 12 \\
Ren\'e N4 & 62.6 & 9 & 8 & 2 & 6 & 3.7 & 4.2 & 4 & & 0.5 \\
CMSX-2 & 66.6 & 8 & 4.6 & 0.6 & 7.9 & 5.6 & 0.9 & 5.8 \\
SRR 99 & 66.5 & 8.5 & 5 & & 9.5 & 5.5 & 2.2 & 2.8 \\
\hline
\multicolumn{13}{|l}{Second generation}\\
\hline
PWA 1484 & 59.4 & 5 & 10 & 2 & 6 & 5.6 & & 9 & 3 \\
Ren\'e N5 & 61.8 & 7 & 8 & 2 & 5 & 6.2 & & 7 & 3 & & & 0.2 \\
\end{tabular}
\end{document}
(表中缺失的以下几行留给读者作为练习。)
微调:
*{12}{c}
是 的快捷方式cccccccccccc
。在
tabular
s 中,行距由具有高度和深度的支柱管理,这些支柱的总高度和深度等于文本行。对于水平线,文本可能太靠近线条,因此\renewcommand*{\arraystretch}{1.2}
这些支柱增加了 20%。另一种方法是使用长度
\extrarowheight
,此量将添加到表中的行高,例如:\usepackage{array} \setlength{\extrarowheight}{.2ex}
如果您想将数字对齐在点处,请查看包
dcolumn
或siunitx
。