编辑:

编辑:

我有两个\newcommand定义如下:

\newcommand{\hvar}[1]{\hat{\delta #1}}
\newcommand{\gbp}{{{\bar{\gamma}}_p}}

它们看起来像这样:

\hvar{X} \hvar{X}

\gbp \英镑

问题是,如果我将它们一起使用,我会得到以下结果:

\hvar{\gbp} \hvar{\gbp}

好像\gamma向右移动了。这是错误吗?有办法修复吗?

以下是 MWE:

\documentclass{article}
\usepackage{amsmath}
\newcommand{\hvar}[1]{\hat{\delta #1}}
\newcommand{\gbp}{{{\bar{\gamma}}_p}}
\begin{document}
\begin{equation}
\hvar{X} \qquad \gbp \qquad \hvar{\gbp}
\end{equation}
\end{document}

编辑:

正如 egreg 提到的,这是 的 accent 实现中的一个错误amsmath。这里提供了一种解决方法:为什么使用 amsmath 时嵌套 \tilde 或 \breve 命令的参数会重新出现?以及下面给出的 MWE:

\documentclass{article}
\usepackage{amsmath}

\newsavebox{\accentbox}
\newcommand{\compacc}[2]{\sbox\accentbox{$#2$}#1{\usebox\accentbox}}
\newcommand{\compaccX}[2]{\let\accenttemp#1\mathpalette\docompacc{#2}}
\def\docompacc#1#2{\compacc\accenttemp{#1#2}}

\newcommand{\hvar}[1]{\compaccX{\hat}{\delta #1}}
\newcommand{\gbp}{{{\bar{\gamma}}_p}}
\begin{document}
\begin{equation}
\hvar{X} \qquad \gbp \qquad \hvar{\gbp} \qquad A_{\hvar{\gbp}}
\end{equation}

\end{document}

好像:

在此处输入图片描述

答案1

下面是使用自行开发的例程的替代方法\althat,其中包含三个定义参数(\Ht\Wd\Dp)。

\documentclass{article}
\usepackage{amsmath}
\usepackage{scalerel}
\usepackage{adjustbox}

\newcommand{\hvar}[1]{\althat{\delta #1}}
\newcommand{\gbp}{{{\bar{\gamma}}_p}}

\newlength\svarraycolsep
\newcommand\althat[1]{%
\renewcommand\arraystretch{\Dp}%
\setlength\svarraycolsep{\arraycolsep}%
\setlength\arraycolsep{0in}%
\begin{array}{c}%
  \vstretch{\Ht}{%
    \hstretch{\Wd}{%
      \trimbox{.15ex .75ex .15ex .2ex}{\scalerel*{\char'136}{\rule{1ex}{1ex}}}%
    }%
  }\\%
  #1\\%
\rule{1ex}{0ex}\\%
\end{array}%
\renewcommand\arraystretch{1.0}%
\setlength\arraycolsep{\svarraycolsep}%
}

\parindent 0in
\begin{document}

\def\Ht{1.8}
\def\Wd{4.5}
\def\Dp{.3}
\( \althat {\mathrm{H}} = \althat {\mathrm{T}} + \althat {\mathrm{V}} \)

\( \hvar{X} \qquad \gbp \qquad \hvar{\gbp} \)

\end{document}

在此处输入图片描述

正如最初提议的那样在 XeTeX 中,如何使抑扬符号更宽但仍保持固定大小?

相关内容