mathabx 和 mathtools:\widetilde{} 和 \dot{} 问题

mathabx 和 mathtools:\widetilde{} 和 \dot{} 问题

问题是环境中第二行中 g 的位置很奇怪align。奇怪的是,\dot{}-character 只有在后面跟着另一个字符时才会放错位置。我需要mathabx一些符号的包,因此更希望有一个替代方案这个问题。没有 mathabx 一切都按预期工作。

\documentclass[10pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{mathtools}
\usepackage{mathabx} 
\begin{document}
\begin{align*}
\widetilde{g\dot{g}}\\
\widetilde{\dot{g}g}
\end{align*}
\end{document}

答案1

问题与为什么使用 amsmath 时嵌套 \tilde 或 \breve 命令的参数会重新出现?这里看起来不太引人注目, 的效果mathabx只是用 来产生它widetilde。解决方案始终相同:

\documentclass[10pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{mathtools}
\usepackage{mathabx}

\newsavebox{\accentbox}
\newcommand{\compositeaccents}[2]{%
  \sbox\accentbox{$#2$}#1{\usebox\accentbox}}

\begin{document}
\begin{align*}
\compositeaccents{\widetilde}{g\dot{g}}\\
\compositeaccents{\widetilde}{\dot{g}g}
\end{align*}

\end{document}

当然,你可以用任何你想要的名字来代替\compositeaccents

在此处输入图片描述

答案2

一个解决方法是先将表达式放在一个框中(将其合并到重新定义的中\widetilde):

\documentclass[10pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{mathtools}
\usepackage{mathabx} 
\newsavebox\tempbox
\let\svwidetilde\widetilde
\renewcommand\widetilde[1]{\sbox\tempbox{$#1$}\svwidetilde{\usebox{\tempbox}}}
\begin{document}
\begin{align*}
\widetilde{g\dot{g}}\\
\widetilde{\dot{g}g}
\end{align*}
\end{document}

在此处输入图片描述

或者,作为一种解决方法,可以使用scalerel包来拉伸波浪号,并stackengine使用包将其设置在表达式的顶部。

\documentclass[10pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage{mathtools}
\usepackage{mathabx} 
\usepackage{stackengine}
\stackMath
\usepackage{scalerel}
\begin{document}
\begin{align*}
\widetilde{g\dot{g}}\\
\stackon[0pt]{\dot{g}g}{\hstretch{1.4}{\sim}}\\
%\widetilde{\dot{g}g}
\end{align*}
\end{document}

在此处输入图片描述

相关内容