我刚刚在法国 Facebook LaTeX 小组上看到一篇帖子,其中写道:
当使用法语小数点分隔符(逗号)时,部首内数字之间的间距会减小。
建议的 MWE 为(整数、英国十进制、法国十进制):
\documentclass{standalone}
\begin{document}
$\sqrt{1}, \sqrt{1.1}, \sqrt{1,1}$
\end{document}
其结果为:
问题似乎出在逗号本身的高度和部首没有像视觉预期的那样伸展。
讨论中提出了三项行动:
- 使用
\usepackage[locale=FR]{siunitx}
和\num{1.1}
- 用作
{,}
分隔符 - 用于
\displaystyle
操作 1 和 2 不会对根号高度问题产生任何改变,但它们确实具有减少逗号后多余空格的优势,这最初并不是问题的目的,但仍然很有趣。
操作3实际上解决了这个问题。操作1和2,再次纠正逗号后面的水平多余空格。
其代码如下:
\documentclass{article}
\usepackage[locale=FR]{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{@{}llllll@{}}
\toprule
& integer & English & French & \{,\} & siunitx \\ \midrule
inline & $\sqrt{1}$ & $\sqrt{1.1}$ & $\sqrt{1,1}$ & $\sqrt{1{,}1}$ & $\sqrt{\num{1.1}}$ \\ \midrule
displaystyle & $\displaystyle{\sqrt{1}}$ & $\displaystyle{\sqrt{1.1}}$ & $\displaystyle{\sqrt{1,1}}$ & $\displaystyle{\sqrt{1{,}1}}$ & $\displaystyle{\sqrt{\num{1.1}}}$ \\ \bottomrule
\end{tabular}
\end{document}
现在我想知道:有没有办法在不使用的情况下获得适当的根高度\displaystyle
?
答案1
平方根很麻烦。
在这里,我把部首内的每个逗号都删除。
\documentclass{article}
\usepackage{amsmath,siunitx,letltxmacro,booktabs}
\sisetup{output-decimal-marker={,}}
\LetLtxMacro\ORIsqrt\sqrt
\DeclareRobustCommand{\sqrt}[2][]{%
\begingroup
\begingroup\lccode`~=`,\lowercase{\endgroup\let~}\smashedcomma
\ifnum\mathcode`,="8000 \else\mathchardef\ORIcomma=\mathcode`, \fi
\mathcode`,="8000
\if\relax\detokenize{#1}\relax\ORIsqrt{#2}\else\ORIsqrt[#1]{#2}\fi
\endgroup
}
\newcommand{\smashedcomma}{\smash{\ORIcomma}}
\begin{document}
\begin{tabular}{@{}llllll@{}}
\toprule
& integer & English & French & \{,\} & siunitx \\ \midrule
inline & $\sqrt{1}$ & $\sqrt{1.1}$ & $\sqrt{1,1}$ & $\sqrt{1{,}1}$ & $\sqrt{\num{1.1}}$ \\
\midrule
displaystyle & $\displaystyle{\sqrt{1}}$ & $\displaystyle{\sqrt{1.1}}$ &
$\displaystyle{\sqrt{1,1}}$ & $\displaystyle{\sqrt{1{,}1}}$ &
$\displaystyle{\sqrt{\num{1.1}}}$ \\
\bottomrule
\end{tabular}
\[
\sqrt{\frac{\num{1,1}}{\num{1,1}}}+\sqrt{\frac{1}{1}}
\]
\end{document}