我正在使用stackrelsp
重新定义的命令来\leftharpoonup
调整符号高度。但下标字体大小对我来说不起作用。
默认的 stackrel 命令遵循 mathsizes (10, 7, 5)。我将尝试为我定义的命令保留默认的 stackrel 字体设置,stackrelsp
但相同的文本字体大小遵循命令。如何获取此默认字体设置。
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\def\stackrelsp#1#2{%
\mathrel{\vbox{\offinterlineskip\ialign{%
\hfil##\hfil\cr
$#1$\cr
\noalign{\kern-0.2pt}
$#2${}\cr
}}}}
\begin{document}
\begin{equation}
\eta _{(\stackrel{\leftharpoonup}{m},\stackrel{\rightharpoonup}{m})_{(\stackrel{\leftharpoonup}{A}_{i}^{l} ,\stackrel{\rightharpoonup}{A}_{i}^{l} )} }
\end{equation}
\begin{equation}
\eta _{(\stackrelsp{\leftharpoonup}{m},\stackrelsp{\rightharpoonup}{m})_{(\stackrelsp{\leftharpoonup}{A}_{i}^{l} ,\stackrelsp{\rightharpoonup}{A}_{i}^{l} )} }
\end{equation}
\end{document}
我的输出:
答案1
scalerel
来拯救你。在这里,\ThisStyle{...\SavedStyle...}
语法允许将当前的数学样式 ( obtained at \ThisStyle
) 导入到否则会丢失的区域(在 处重建\SavedStyle
)。这是一种表达更冗长的 的紧凑方式\mathchoice
。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{scalerel}
\def\stackrelsp#1#2{\ThisStyle{%
\mathrel{\vbox{\offinterlineskip\ialign{%
\hfil##\hfil\cr
$\SavedStyle#1$\cr
\noalign{\kern-0.2pt}
$\SavedStyle#2${}\cr
}}}}}
\begin{document}
\begin{equation}
\eta _{(\stackrel{\leftharpoonup}{m},\stackrel{\rightharpoonup}{m})_{(\stackrel{\leftharpoonup}{A}_{i}^{l} ,\stackrel{\rightharpoonup}{A}_{i}^{l} )} }
\end{equation}
\begin{equation}
\eta _{(\stackrelsp{\leftharpoonup}{m},\stackrelsp{\rightharpoonup}{m})_{(\stackrelsp{\leftharpoonup}{A}_{i}^{l} ,\stackrelsp{\rightharpoonup}{A}_{i}^{l} )} }
\end{equation}
\end{document}
因此,即使默认数学大小发生变化,它仍将继续工作,例如在序言中
\makeatletter
\DeclareMathSizes{\@xpt}{\@xpt}{3}{3}
\makeatother
答案2
你需要\mathpalette
:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\rhu}[1]{\vetriaccent{\rightharpoonup}{#1}}
\newcommand{\lhu}[1]{\vetriaccent{\leftharpoonup}{#1}}
\makeatletter
\newcommand{\vetriaccent}[2]{{%
\mathpalette\vetri@accent@i{{#1}{#2}}%
}}
\newcommand{\vetri@accent@i}[2]{\vetri@accent@ii#1#2}
\newcommand{\vetri@accent@ii}[3]{%
\vbox{\offinterlineskip
\ialign{%
\hfil##\hfil\cr
$\m@th#1#2$\cr
$\m@th#1#3$\cr
}%
}%
}
\makeatother
\begin{document}
\[
(\lhu{m},\rhu{m})_{(\lhu{m},\rhu{m})_{(\lhu{A_{i}^{l}},\rhu{A_{i}^{l}})}}
\]
\end{document}