我有两个\newcommand
定义如下:
\newcommand{\hvar}[1]{\hat{\delta #1}}
\newcommand{\gbp}{{{\bar{\gamma}}_p}}
它们看起来像这样:
\hvar{X}
\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 中,如何使抑扬符号更宽但仍保持固定大小?