我需要第一列中的所有数字都具有相同的十的指数,例如10^{-2}
。如果乘数不是放在数字附近,而是放在表格的标题中,那就太好了。
\documentclass[]{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{pgfplots, pgfplotstable}
\pgfplotstableread[]{
X Y Xerror Yerror Y2
0 0 0 0 0
0.022 0.4 0.005 0.1 0.66
0.038 0.8 0.005 0.1 1.14
0.058 1.2 0.005 0.1 1.74
0.09 1.6 0.005 0.1 2.7
0.101 2 0.005 0.1 3.03
0.123 2.4 0.005 0.1 3.69
0.130 2.8 0.005 0.1 3.9
}\datatable
\begin{document}
\pgfplotstableset{
columns={X,Y,Xerror,Yerror},
columns/X/.style={
column name={$x$, \si{\meter}},
/pgf/number format/.cd, sci, sci zerofill, relative*={-3}
},
columns/Y/.style={
column name={$F_\mathbf{elast}$, \si{\newton}},
/pgf/number format/.cd, fixed, fixed zerofill,
},
columns/Xerror/.style={
column name={$\Delta x$, \si{\meter}},
/pgf/number format/.cd, relative*={-2}
},
columns/Yerror/.style={
column name={$\Delta F_\mathbf{elast}$, \si{\newton}},
},
every head row/.style={
before row={\toprule},
after row={\midrule}
},
every last row/.style={after row=\bottomrule},
}
\pgfplotstabletypeset{\datatable}
\end{document}
期望结果应该如下图所示
答案1
除了使用relative*
,您还可以使用multiply by
来缩放值。然后,您只需将 更改column name
为包含 10 的幂即可。
另外,不需要使用/pgf/number format/.cd
,pgfplotstable
明白,您想要设置数字格式。
代码:
\documentclass[]{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{pgfplots, pgfplotstable}
\pgfplotstableread[]{
X Y Xerror Yerror Y2
0 0 0 0 0
0.022 0.4 0.005 0.1 0.66
0.038 0.8 0.005 0.1 1.14
0.058 1.2 0.005 0.1 1.74
0.09 1.6 0.005 0.1 2.7
0.101 2 0.005 0.1 3.03
0.123 2.4 0.005 0.1 3.69
0.130 2.8 0.005 0.1 3.9
}\datatable
\begin{document}
\pgfplotstableset{
columns={X,Y,Xerror,Yerror},
columns/X/.style={
column name={$x$, \SI{e-2}{\meter}},
multiply by=100,
fixed, fixed zerofill,
},
columns/Y/.style={
column name={$F_\mathbf{elast}$, \si{\newton}},
fixed, fixed zerofill,
},
columns/Xerror/.style={
column name={$\Delta x$, \SI{e-3}{\meter}},
multiply by=1000
},
columns/Yerror/.style={
column name={$\Delta F_\mathbf{elast}$, \si{\newton}},
},
every head row/.style={
before row={\toprule},
after row={\midrule}
},
every last row/.style={after row=\bottomrule},
}
\pgfplotstabletypeset{\datatable}
\end{document}
结果: