![当加粗电子表格计算时,如何让电子表格和 siunitx 顺利共存?](https://linux22.com/image/439156/%E5%BD%93%E5%8A%A0%E7%B2%97%E7%94%B5%E5%AD%90%E8%A1%A8%E6%A0%BC%E8%AE%A1%E7%AE%97%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%A9%E7%94%B5%E5%AD%90%E8%A1%A8%E6%A0%BC%E5%92%8C%20siunitx%20%E9%A1%BA%E5%88%A9%E5%85%B1%E5%AD%98%EF%BC%9F.png)
我找不到办法来解决这个恼人的极端情况。
在这个例子中,正确地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}