从 MnSymbol 中提取 overrightharpoon

从 MnSymbol 中提取 overrightharpoon

之前的许多问题都谈到了从 MnSymbol 中提取符号,或者从其他包中找到了替代方案。但是,我找不到\overrightharpoonMnSymbol 中合适的替代品。事实上,有没有更好的替代品可以替代这种类型的符号?它没有出现在任何早期的摘要和问题中。

奖励:如果您能好心地添加另一个带有鱼叉式刻度的符号,但现在带有向后的 4 个刻度(因此这\overrightharpoon是一个 3 矢量,而新符号是一个 4 矢量,那么将非常感激。

答案1

您需要提取鱼叉以及关系栏:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\DeclareFontFamily{U}{MnSymbolA}{}
\DeclareFontShape{U}{MnSymbolA}{m}{n}{
    <-6>  MnSymbolA5
   <6-7>  MnSymbolA6
   <7-8>  MnSymbolA7
   <8-9>  MnSymbolA8
   <9-10> MnSymbolA9
  <10-12> MnSymbolA10
  <12->   MnSymbolA12}{}
\DeclareFontShape{U}{MnSymbolA}{b}{n}{
    <-6>  MnSymbolA-Bold5
   <6-7>  MnSymbolA-Bold6
   <7-8>  MnSymbolA-Bold7
   <8-9>  MnSymbolA-Bold8
   <9-10> MnSymbolA-Bold9
  <10-12> MnSymbolA-Bold10
  <12->   MnSymbolA-Bold12}{}
\DeclareSymbolFont{MnSyA}{U}{MnSymbolA}{m}{n}
\SetSymbolFont{MnSyA}{bold}{U}{MnSymbolA}{b}{n}

\DeclareRobustCommand{\overleftharpoon}{\mathpalette{\overarrow@\leftharpoonfill@}}
\DeclareRobustCommand{\overrightharpoon}{\mathpalette{\overarrow@\rightharpoonfill@}}
\def\leftharpoonfill@{\arrowfill@\leftharpoondown\mn@relbar\mn@relbar}
\def\rightharpoonfill@{\arrowfill@\mn@relbar\mn@relbar\rightharpoonup}

\DeclareMathSymbol{\leftharpoondown}{\mathrel}{MnSyA}{'112}
\DeclareMathSymbol{\rightharpoonup}{\mathrel}{MnSyA}{'100}
\DeclareMathSymbol{\mn@relbar}{\mathrel}{MnSyA}{'320}
\makeatother

\begin{document}
$\overrightharpoon{abc}$
$\overleftharpoon{abc}$
\end{document}

在此处输入图片描述

答案2

根据 OP 的评论进行重新加工,以提供可扩展性。

它基于我的回答可扩展 \vec 替代 \overrightarrow

这里我使用默认的 harpoon 来提供可扩展性。方法可以扩展到其他 harpoon 品种。

\documentclass[12pt]{scrartcl}
\usepackage{stackengine}
\usepackage{calc}
\newlength\shlength
\newcommand\xshlonghvecr[2][1]{\setlength\shlength{#1pt}%
  \stackengine{-1.0pt}{$#2$}{\smash{$\kern\shlength%
    \stackengine{2.75pt}{$\mathchar"012A$}%
      {\rule{\widthof{$#2$}}{.50pt}\kern1pt}{O}{r}{F}{F}{L}\kern-\shlength$}}%
      {O}{c}{F}{T}{S}}
\newcommand\xshlonghvecl[2][1]{\setlength\shlength{#1pt}%
  \stackengine{-1.0pt}{$#2$}{\smash{$\kern\shlength%
    \stackengine{2.75pt}{\kern-1pt$\mathchar"0128$}%
      {\rule{\widthof{$#2$}}{.50pt}\kern1pt}{O}{l}{F}{F}{L}\kern-\shlength$}}%
      {O}{c}{F}{T}{S}}
\begin{document}
\centering
\[ \vec{A} \quad \xshlonghvecr{ABC} \quad \xshlonghvecr{xy}
 \quad \xshlonghvecr{x} \]
\[ \vec{A} \quad \xshlonghvecl{ABC} \quad \xshlonghvecl{xy}
 \quad \xshlonghvecl{x} \]
\end{document}

在此处输入图片描述

答案3

我不确定是否真正理解了这个问题(这是字体还是箭头的问题?),但如果你只是寻找\rightharpoonup\leftharpoonup宏,我写了一个箭头重新定义它们(和其他变体)的包。

例如:

\documentclass{article}

\usepackage[overleftharpoonup, overrightharpoonup]{overarrows}

\begin{document}

  \[ \overrightharpoonup{abc} \]

  \[ \overleftharpoonup{abc} \]

  \bigskip

  \TestOverArrow{overleftharpoonup}

  \medskip

  \TestOverArrow{overrightharpoonup}

\end{document}

给出(\TestOverArrow是包定义的测试宏overarrows): overarrows 包中的 \overleftharpoonup 和 \overrightharpoonup

如果您想要来自 MnSymbol 的符号,您可以重新定义leftharpoonuprightharpoonup像 egreg 的回答中那样:

\documentclass{article}

\DeclareFontFamily{U}{MnSymbolA}{}
\DeclareFontShape{U}{MnSymbolA}{m}{n}{
<-6>  MnSymbolA5
<6-7>  MnSymbolA6
<7-8>  MnSymbolA7
<8-9>  MnSymbolA8
<9-10> MnSymbolA9
<10-12> MnSymbolA10
<12->   MnSymbolA12}{}
\DeclareFontShape{U}{MnSymbolA}{b}{n}{
<-6>  MnSymbolA-Bold5
<6-7>  MnSymbolA-Bold6
<7-8>  MnSymbolA-Bold7
<8-9>  MnSymbolA-Bold8
<9-10> MnSymbolA-Bold9
<10-12> MnSymbolA-Bold10
<12->   MnSymbolA-Bold12}{}
\DeclareSymbolFont{MnSyA}{U}{MnSymbolA}{m}{n}
\SetSymbolFont{MnSyA}{bold}{U}{MnSymbolA}{b}{n}

\DeclareMathSymbol{\leftharpoonup}{\mathrel}{MnSyA}{'112}
\DeclareMathSymbol{\rightharpoonup}{\mathrel}{MnSyA}{'100}

\usepackage[overleftharpoonup, overrightharpoonup]{overarrows}

\begin{document}

\[ \overrightharpoonup{abc} \]

\[ \overleftharpoonup{abc} \]

\bigskip

\TestOverArrow{overleftharpoonup}

\medskip

\TestOverArrow{overrightharpoonup}

\end{document}

或者直接添加

\usepackage{MnSymbol}

两者都给出: 用 MnSymbol 钓鱼

相关内容