我想把 放在\rightharpoonup
r 上,让它们更近一些。我试过\overset
和\Rvector
包。但前者的间距太大。后者在较小的字体大小下放置时性能不佳。我提供以下代码:
\documentclass[titlepage]{article}
\usepackage[cm]{fullpage}
\usepackage{amsmath,amssymb}
\begin{document}
\[\mathbf{e}_{\overset{\rightharpoonup}{r}}\]
\end{document}
答案1
这里有一个快速且不太脏的宏:一个名为\harp
。它假设它只用于下标和上标位置。目前,它只适用于以下字母不要有升部部分。即,不要将 if 与 b、d、f、h 等字母一起使用。(如果您确实需要将宏与此类字母一起使用,则需要调整宏的参数\raise
。)
\documentclass[titlepage]{article}
\usepackage[cm]{fullpage}
\usepackage{amsmath,amssymb}
\newcommand\harp[1]{\mathstrut\mkern2.5mu#1\mkern-11mu\raise0.6ex%
\hbox{$\scriptscriptstyle\rightharpoonup$}}
\begin{document}
\[
\mathbf{e}_{\overset{\rightharpoonup}{r}}
\text{ vs.\ }
\mathbf{e}_{\harp{r}}
\]
\end{document}
答案2
问题分为两个层次:
箭头到符号的距离太大;
在下标或上标中,箭头太宽。
这是针对这两种情况的解决方案。
\documentclass[titlepage]{article}
\usepackage{amsmath,graphicx}
\newcommand{\harp}[1]{\mathpalette\harpoonvec{#1}}
\newcommand{\harpvecsign}{\scriptscriptstyle\rightharpoonup}
\newcommand{\harpoonvec}[2]{%
\ifx\displaystyle#1\doalign{$\harpvecsign$}{#1#2}\fi
\ifx\textstyle#1\doalign{$\harpvecsign$}{#1#2}\fi
\ifx\scriptstyle#1\doalign{\scalebox{.6}[.9]{$\harpvecsign$}}{#1#2}\fi
\ifx\scriptscriptstyle#1\doalign{\scalebox{.5}[.8]{$\harpvecsign$}}{#1#2}\fi
}
\newcommand{\doalign}[2]{%
{\vbox{\offinterlineskip\ialign{\hfil##\hfil\cr#1\cr$#2$\cr}}}%
}
\begin{document}
\begin{equation*}
\mathbf{e}_{\harp{r}_{\harp{r}}} \harp{\mathbf{g}} \harp{A}
\end{equation*}
\end{document}
答案3
使用包的解决方案accents
。与 OP 方法相比,垂直间距的差异\overset
在 中为零scriptscriptstyle
,在 中很小\scriptstyle
,在 中更重要\textstyle
。否则,位置是不同的:
\documentclass[titlepage]{article}
\usepackage{amsmath,amssymb}
\usepackage{accents}
\newcommand*\harp[1]{\mkern2mu\accentset{\rightharpoonup}{#1}\mkern2mu}%
\begin{document}
\[ \begin{array}{cc}
\texttt{\small\textbackslash mathaccent: } & \texttt{\small\textbackslash overset: }\\
\mathbf{e}_{\scriptscriptstyle\harp r} & \mathbf{e}_{\scriptscriptstyle\overset{\rightharpoonup}{r}} \\[2pt]
\mathbf{e}_{\harp r} & \mathbf{e}_{\overset{\rightharpoonup}{r}} \\[4pt]
\harp{\mathbf g } & \overset{\rightharpoonup}{\mathbf g}
\end{array} \]%
\end{document}
答案4
软件包中的宏stackengine
允许设置垂直堆叠间隙。比较项目 1 与 2 和/或项目 3 与 4 和/或项目 5 与 6,以演示如何更改堆叠间隙。此外,外观也会受到下标基线的影响。在 1、2 中,基线位于“r”和鱼叉之间;在 3、4 中,“r”是基线,而在 5、6 中,“鱼叉”是基线。
\documentclass[titlepage]{article}
\usepackage[cm]{fullpage}
\usepackage{amsmath,amssymb}
\usepackage{stackengine}
\stackMath
\begin{document}
\[
\mathbf{e}_{\stackanchor[-.5pt]{\scriptscriptstyle \rightharpoonup}{\scriptstyle r}}
\mathbf{e}_{\stackanchor[0pt]{\scriptscriptstyle \rightharpoonup}{\scriptstyle r}}
~
\mathbf{e}_{\stackon[-.5pt]{\scriptstyle r}{\scriptscriptstyle \rightharpoonup}}
\mathbf{e}_{\stackon[0pt]{\scriptstyle r}{\scriptscriptstyle \rightharpoonup}}
~
\mathbf{e}_{\stackunder[-.5pt]{\scriptscriptstyle \rightharpoonup}{\scriptstyle r}}
\mathbf{e}_{\stackunder[0pt]{\scriptscriptstyle \rightharpoonup}{\scriptstyle r}}
\]
\end{document}