如何减少重叠帽子和符号之间的空间?

如何减少重叠帽子和符号之间的空间?

我想把 放在\rightharpoonupr 上,让它们更近一些。我试过\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

问题分为两个层次:

  1. 箭头到符号的距离太大;

  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}

在此处输入图片描述

相关内容