之前的许多问题都谈到了从 MnSymbol 中提取符号,或者从其他包中找到了替代方案。但是,我找不到\overrightharpoon
MnSymbol 中合适的替代品。事实上,有没有更好的替代品可以替代这种类型的符号?它没有出现在任何早期的摘要和问题中。
奖励:如果您能好心地添加另一个带有鱼叉式刻度的符号,但现在带有向后的 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
):
如果您想要来自 MnSymbol 的符号,您可以重新定义leftharpoonup
并rightharpoonup
像 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}