我找不到办法来解决这个恼人的极端情况。
在这个例子中,正确地spreadtab
给出了值cell(foo)+cell(bar)
,但是如果在那个单元格中使用siunitx
则不会执行其操作,因为为了使示例能够编译,我被迫隐藏计算(显然)。\bfseries
spreadtab
siunitx
所显示的值20.687
应为20.69
。并且数字未对齐。小数点位置错误。
我怎样才能安抚spreadtab
两者siunitx
?
在电子表格中将数字与 siunitx 对齐,包括计算出的数字看起来是同样的问题,但唯一的答案并没有描述令人满意的解决方案。
有人可以建议一个解决方法吗?
\documentclass[12pt]{standalone}
\usepackage{siunitx}
\usepackage{spreadtab}
\RequirePackage{unicode-math}
\setmainfont[Scale=0.93]{TeX Gyre Schola}
\setmathfont[Scale=0.93]{TeX Gyre Schola Math}
\begin{document}
\begin{spreadtab}{{tabular}{S[table-format=6.2, round-mode=places, round-precision=2, detect-weight=true]}}
tag(foo) 10.343\\
tag(bar) 10.344\\
cell(foo)+cell(bar)\\
\bfseries :={cell(foo)+cell(bar)}\\
\end{spreadtab}
\end{document}
答案1
siunitx 使用数学来打印数字,因此您需要一个 boldmath 字体。要么切换到文本模式,要么定义一个粗体数学版本:
\documentclass[12pt]{standalone}
\usepackage{siunitx}
\usepackage{spreadtab}
\RequirePackage{unicode-math}
\setmainfont[Scale=0.93]{TeX Gyre Schola}
\setmathfont[Scale=0.93]{TeX Gyre Schola Math}
\setmathfont{TeX Gyre Schola Math}[version=bold,FakeBold=2]
\begin{document}
\begin{spreadtab}{{tabular}{S[table-format=6.2, round-mode=places, round-precision=2, detect-weight=true]}}
tag(foo) 10.343\\
tag(bar) 10.344\\
cell(foo)+cell(bar)\\
\bfseries :={cell(foo)+cell(bar)}\\
\end{spreadtab}
\end{document}