我正在尝试将数据纳入表格环境
\usepackage{booktabs}
\usepackage{siunitx}
\begin{table}
\begin{center}
\begin{tabular}{SSSS}
\toprule
{$na^3$} & {$V_0/T_c^0$} & {$T_c/T_c^0$} & {$\nu$} \\
\midrule
\input{../results/110718/all.tex}
\bottomrule
\end{tabular}
\caption{bla}
\end{center}
\end{table}
编译时我收到错误消息Extra }, or forgotten $.
当我all.tex
手动插入时,它有效:
% ...
\midrule
0 & 0 & 0.99959(72) & 0.882(44) \\
% ...
5e-3 & 2 & 1.02710(66) & 0.757(73) \\
5e-3 & 7 & 0.53844(100) & 0.75(10) \\
\bottomrule
% ...
只需复制粘贴,all.tex
已经包含了与号和反斜杠。
当我不使用时siunitx
,它也能工作:
% ...
\begin{tabular}{cccc}
\toprule
{$na^3$} & {$V_0/T_c^0$} & {$T_c/T_c^0$} & {$\nu$} \\
\midrule
\input{../results/110718/all.tex}
\bottomrule
\end{tabular}
% ...
booktabs
似乎不会引起问题。当我删除规则时它仍然不起作用booktabs
。
该文件all.tex
是自动生成的。因此,手动添加它实际上不是一个选择。而且由于它的格式化功能很好,siunitx
我真的很想使用它。
我正在使用 TeX-Live 2011-05-26。
什么原因导致了此错误?我该如何解决这个问题?
答案1
正如 Mikael 所评论的,这里的问题是如何扩展数字。在标准模式下,siunitx
需要在排版之前收集数字。诀窍是使用额外的列。这将在没有任何额外软件包的情况下工作:
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{filecontents*}{all.tex}
& 1.1 & 2.2 & 3.3 & 4.4 \\
\end{filecontents*}
\begin{document}
\begin{table}
\begin{center}
\begin{tabular}{l@{}SSSS}
\toprule
& {$na^3$} & {$V_0/T_c^0$} & {$T_c/T_c^0$} & {$\nu$} \\
\midrule
\input{all.tex}
\bottomrule
\end{tabular}
\caption{bla}
\end{center}
\end{table}
\end{document}
siunitx
手册中有一个例子,datatool
它做了类似的事情,但使用 CSV 格式的数据。在这里改编它:
\documentclass{article}
\usepackage{booktabs}
\usepackage{datatool,siunitx}
\begin{filecontents*}{all.csv}
valuea,valueb,valuec,valued
1.1,2.2,3.3,4.4
\end{filecontents*}
\DTLloaddb{data}{all.csv}
\begin{document}
\begin{table}
\begin{center}
\begin{tabular}{SSSS@{}l}
\toprule
{$na^3$} & {$V_0/T_c^0$} & {$T_c/T_c^0$} & {$\nu$} &
\DTLforeach{data}
{\myvaluea=valuea,\myvalueb=valueb,\myvaluec=valuec,\myvalued=valued}{%
\DTLiffirstrow {\\ \midrule}{\\}%
\myvaluea & \myvalueb & \myvaluec & \myvalued &
}
\\
\bottomrule
\end{tabular}
\caption{bla}
\end{center}
\end{table}
\end{document}
如果您不想使用附加列,请关闭siunitx
数字解析器:
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{filecontents*}{all.tex}
1.1 & 2.2 & 3.3 & 4.4 \\
\end{filecontents*}
\begin{document}
\begin{table}
\sisetup{parse-numbers = false}
\begin{center}
\begin{tabular}{SSSS}
\toprule
\multicolumn{1}{c}{$na^3$} & \multicolumn{1}{c}{$V_0/T_c^0$} &
\multicolumn{1}{c}{$T_c/T_c^0$} & \multicolumn{1}{c}{$\nu$} \\
\midrule
\input{all.tex}
\bottomrule
\end{tabular}
\caption{bla}
\end{center}
\end{table}
\end{document}