我在垂直方向正确堆叠两个宽波浪线(即一个在另一个上面)时遇到了问题。我设法缩小了它们之间的空间,但我不知道如何强制它们完全垂直对齐。
这是我的 MWE:
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%define doublewidetilde
\makeatletter
\DeclareRobustCommand{\doublewidetilde}[1]{{%
\mathpalette\double@widetilde{#1}%
}}
\DeclareRobustCommand{\double@widetilde}[2]{%
\sbox\z@{$\m@th#1\widetilde{#2}$}%
\ht\z@=.85\ht\z@
\widetilde{\box\z@}%
}
\makeatother
\begin{document}
E.g.: $\doublewidetilde{I}_N$ or $\doublewidetilde{abcde}_N$
\end{document}
另外,请注意,当宽波浪号的最大长度“饱和”时,两者会正确地垂直堆叠(请参见“abcde”上的双宽波浪号)。
注意:我使用\DeclareRobustCommand
(而不是例如\newcommand
),因为我打算\doublewidetilde
在部分名称中使用。
答案1
直接调整我的答案数学模式中的大波浪符号。已编辑以使用\AC
来自wasysym
包,而不是\sim
基线波浪号。
\documentclass{article}
\usepackage{scalerel}[2014/03/10]
\usepackage{stackengine,wasysym}
\newcommand\dwidetilde[1]{\ThisStyle{%
\setbox0=\hbox{$\SavedStyle#1$}%
\stackengine{-.1\LMpt}{$\SavedStyle#1\,\,$}{%
\stackengine{\dimexpr-3.5\LMpt+.3pt}{%
\stretchto{\scaleto{\mkern.2mu\AC}{.5150\wd0}}{.7\ht0}%
}{%
\stretchto{\scaleto{\mkern.2mu\AC}{.5150\wd0}}{.7\ht0}%
}{O}{c}{F}{T}{S}
}{O}{c}{F}{T}{S}%
\!\!}}
\def\test#1{$%
\dwidetilde{#1}\,
\scriptstyle\dwidetilde{#1}\,
\scriptscriptstyle\dwidetilde{#1}
$\par}
\parskip 1ex
\begin{document}
\test{abcdefghijklm}
\test{abcdefghijk}
\test{abcdefghi}
\test{abcdefg}
\test{abcde}
\test{abc}
\test{ab}
\end{document}