更改 \overleftarrow-Command 的箭头尖端

更改 \overleftarrow-Command 的箭头尖端

我定义了一个新命令

\newcommand{\pfeil}[2]{[\overleftarrow{#1,#2}]}

将图论领域中使用的箭头可视化。

在此处输入图片描述

如您所见,箭头的尖端接触到数字。有什么方法可以更改尖端样式和大小吗?例如,Tikz 箭头尖端库中的“隐形”尖端对我的需求来说是一个更好的选择。因为在文本模式下使用时,标准尖端似乎太高了。请参阅此示例(使用 egreg 的答案中的命令):

在此处输入图片描述

答案1

修改https://tex.stackexchange.com/a/248297/4427

第二行,只是\badpfeil为了比较。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\overleftsmallarrow}{\mathpalette{\overarrowsmall@\leftarrowfill@}}
\newcommand{\overarrowsmall@}[3]{%
  \vbox{%
    \ialign{%
      ##\crcr
      #1{\smaller@style{#2}}\crcr
      \noalign{\nointerlineskip}%
      $\m@th\hfil#2#3\hfil$\crcr
    }%
  }%
}
\def\smaller@style#1{%
  \ifx#1\displaystyle\scriptstyle\else
    \ifx#1\textstyle\scriptstyle\else
      \scriptscriptstyle
    \fi
  \fi
}
\makeatother

\newcommand{\pfeil}[2]{[\overleftsmallarrow{\mathstrut#1,#2}]}
\newcommand{\badpfeil}[2]{[\overleftarrow{\mathstrut#1,#2}]}


\begin{document}

\[
\pfeil{1}{7}\quad\pfeil{2}{8}\quad\pfeil{8}{3}
\]

\[
\badpfeil{1}{7}\quad\badpfeil{2}{8}\quad\badpfeil{8}{3}
\]

\end{document}

在此处输入图片描述

带有不同且较小的箭头,取自mathabx

\documentclass{article}
\usepackage{amsmath,mathabx}

\DeclareFontFamily{U}{mathb}{}
\DeclareFontShape{U}{mathb}{m}{n}{
  <-5.5>    mathb5
  <5.5-6.5> mathb6
  <6.5-7.5> mathb7
  <7.5-8.5> mathb8
  <8.5-9.5> mathb9
  <9.5-11>  mathb10
  <11->     mathb12
}{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}
\DeclareMathSymbol{\blacktriangleleft}{2}{mathb}{"9E}

\makeatletter
\newcommand{\overleftsmallarrow}{\mathpalette{\overarrowsmall@\smallleftarrowfill@}}
\newcommand{\overarrowsmall@}[3]{%
  \vbox{%
    \ialign{%
      ##\crcr
      #1{\smaller@style{#2}}\crcr
      \noalign{\nointerlineskip\kern0.4pt}%
      $\m@th\hfil#2#3\hfil$\crcr
    }%
  }%
}
\newcommand{\smallleftarrowfill@}{%
  \arrowfill@\blacktriangleleft\relbar\relbar
}
\def\smaller@style#1{%
  \ifx#1\displaystyle\scriptstyle\else
    \ifx#1\textstyle\scriptstyle\else
      \scriptscriptstyle
    \fi
  \fi
}
\makeatother

\newcommand{\pfeil}[2]{[\overleftsmallarrow{#1,#2}]}


\begin{document}

Space between a deep line and a digit:
\the\dimexpr\baselineskip-\fontchardp\font`y-\fontcharht\font`8\relax

Space between a deep line and \verb|\pfeil|
\sbox0{$\pfeil{2}{8}$}
\the\dimexpr\baselineskip-\fontchardp\font`y-\ht0\relax

\[
\pfeil{1}{7}\quad\pfeil{2}{8}\quad\pfeil{8}{3}
\]

yyyyyy yyyyy yyyyyy yyyyy yyyyyy yyyyy yyyyyy yyyyy
yyyyyy yyyyy yyyyyy yyyyy yyyyyy yyyyy yyyyyy yyyyy
yyyyyy yyyyy yyyyyy $\pfeil{2}{8}$ yyyyy yyyyyy yyyyy
yyyyyy yyyyy yyyyyy yyyyy yyyyyy yyyyy

\end{document}

计算表明,行间距不会增加;箭头尖端几乎会碰到较深的字母,但发生这种情况的概率并不高。您可以减小(已经很小的)字距,使接触不那么明显。

在此处输入图片描述

答案2

您可以使用该old-arrows包:

\documentclass{article}

\usepackage{mathtools, amssymb, old-arrows}
\newcommand{\pfeil}[2]{[\overleftarrow{#1,#2}]}

\begin{document} %

\[ \pfeil{1}{7}\enspace\pfeil{2}{8}\enspace\pfeil{8}{3} \]%

\end{document} 

在此处输入图片描述

相关内容