我更喜欢带有收盘向下刻度的 SQRT 符号,并且一直在使用这个答案达到预期的效果。然而,当我大幅增加字体大小并使用 fixcmex 实现一些很好的缩放符号(需要对 matplotlib 绘图进行良好的修复)SQRT 向下刻度不再能很好地缩放。
比较
正常字体大小
超大字体(50pt)
平均能量损失
\documentclass{article}
\usepackage{lmodern,amsmath,amssymb,bm,physics,letltxmacro,fixcmex}
% Gives the nice SQRT symbol.
\makeatletter
\let\oldr@@t\r@@t
\def\r@@t#1#2{%
\setbox0=\hbox{$\oldr@@t#1{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}
\LetLtxMacro{\oldsqrt}{\sqrt}
\renewcommand*{\sqrt}[2][\ ]{\oldsqrt[#1]{#2}}
\makeatother
\usepackage[papersize={12in,12in},body={10in,10in},margin={1in,1in}]{geometry}
\pagestyle{empty}
\begin{document}
\fontsize{50.000000}{62.500000}{\rmfamily % Comment out for normal
$\sqrt{D_3} \,\textrm{RMSE}(X, Y)$
} % Comment out for normal
\end{document}
PS——我想继续使用该physics
软件包。
答案1
正如您在宏定义中看到的,添加的规则的宽度被省略(假设为 0.4pt),并且向下偏移固定为 0.4pt,这与大字体大小不匹配。您可以使用相对大小(ex
或em
)作为以下代码修改:
\documentclass{article}
\usepackage{lmodern,amsmath,amssymb,bm,physics,letltxmacro,fixcmex}
% Gives the nice SQRT symbol.
\makeatletter
\let\oldr@@t\r@@t
\def\r@@t#1#2{%
\setbox0=\hbox{$\oldr@@t#1{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule width 0.035em height\ht0 depth -\dimen0}%
{\box0\lower0.095ex\box2}}
\LetLtxMacro{\oldsqrt}{\sqrt}
\renewcommand*{\sqrt}[2][\ ]{\oldsqrt[#1]{#2}}
\makeatother
\usepackage[papersize={12in,12in},body={10in,10in},margin={1in,1in}]{geometry}
\pagestyle{empty}
\begin{document}
$\sqrt{D_3} \,\textrm{RMSE}(X, Y)$
\fontsize{20}{24}{\rmfamily
$\sqrt{D_3} \,\textrm{RMSE}(X, Y)$
}
\fontsize{30}{36}{\rmfamily
$\sqrt{D_3} \,\textrm{RMSE}(X, Y)$
}
\fontsize{40}{48}{\rmfamily
$\sqrt{D_3} \,\textrm{RMSE}(X, Y)$
}
\fontsize{50}{60}{\rmfamily
$\sqrt{D_3} \,\textrm{RMSE}(X, Y)$
}
\end{document}
结果是: