我需要改变 sqrt 的样式,使它比标准窄一点。第二张图片显示了我想要的。任何帮助都值得感激。
答案1
我采取了以下方法来解决此问题。如果我想知道 \sqrt{expression}
无理数在哪里变窄,我首先将\sqrt{\phantom{\cramped{#1#1}}}
其表达出来并水平压缩 2 倍。然后,我以右对齐格式将原始内容expression
叠加到这个被挤压的空白 sqrt 上。
我使用包\ThisStyle{...\SavedStyle...}
的语法scalerel
将当前数学样式导入表达式,以便它在\scriptstyle
和\scriptscriptstyle
以及中发挥作用\displaystyle
。
MWE 使用原文显示表达式\sqrt
,然后使用修订版显示相同的表达式\sqrt
。
\documentclass{article}
\usepackage{graphicx,scalerel,mathtools}
\let\svsqrt\sqrt
\def\Sqrt#1{\ThisStyle{\ooalign{%
\scalebox{.5}[1]{$\SavedStyle\svsqrt{\phantom{\cramped{#1#1}}}$}\cr
\hfil$\SavedStyle\cramped{#1}$}}}
\parskip 1em
\def\testexpr{
$\sqrt{2}\quad\sqrt{357x}\quad\scriptstyle\sqrt{12345}\quad\sqrt{\frac{x}{x+1}}$
\[\sqrt{x^2 + y^2}\quad\sqrt{\frac{x^3}{x+1}}\]\par
}
\begin{document}
\centering
\testexpr
\let\sqrt\Sqrt
\testexpr
\end{document}
如果担心将表达式压缩 2 倍会导致无理数的线条太细,那么这个更复杂的定义提供了一种补救措施:
\newsavebox\Nsqrt
\def\Sqrt#1{\ThisStyle{%
\savebox\Nsqrt{\scalebox{.5}[1]{$\SavedStyle\svsqrt{\phantom{\cramped{#1#1}}}$}}%
\ooalign{\usebox{\Nsqrt}\cr\kern.2pt\usebox{\Nsqrt}\cr\hfil$\SavedStyle\cramped{#1}$}}}
已编辑以确保该论点使用狭窄的数学风格(需要mathtools
包)。