\vec{x} 但是箭头从右到左?

\vec{x} 但是箭头从右到左?

我有两个变量:\vec{x}另一个变量在某种程度上与第一个变量对偶。因此,我想用类似的东西来表示第二个变量,但在 x 上方有一个左箭头。我已经尝试过了,\stackrel{leftarrow}{x}但看起来不一样(x 和箭头之间的间隙太大,箭头太大)。

有没有办法定义一个\cev可以完成我想要的操作的命令?

答案1

这可能不是最好的方法,但两个\reflectbox命令可以解决问题:

\documentclass{article}
\usepackage{graphicx}
\newcommand{\cev}[1]{\reflectbox{\ensuremath{\vec{\reflectbox{\ensuremath{#1}}}}}}
\begin{document}
\[
\vec{a} \quad \cev{a} \quad \vec{b} \quad \cev{b}
\]
\end{document}

答案2

该命令\cev似乎对大多数字母都能产生良好的效果,并且在下标和上标中都能正常工作(除了非常小的漂移)。

\documentclass{article}
\usepackage{graphicx,accents}

\makeatletter
\DeclareRobustCommand{\cev}[1]{%
  \mathpalette\do@cev{#1}%
}
\newcommand{\do@cev}[2]{%
  \fix@cev{#1}{+}%
  \reflectbox{$\m@th#1\vec{\reflectbox{$\fix@cev{#1}{-}\m@th#1#2\fix@cev{#1}{+}$}}$}%
  \fix@cev{#1}{-}%
}
\newcommand{\fix@cev}[2]{%
  \ifx#1\displaystyle
    \mkern#23mu
  \else
    \ifx#1\textstyle
      \mkern#23mu
    \else
      \ifx#1\scriptstyle
        \mkern#22mu
      \else
        \mkern#22mu
      \fi
    \fi
  \fi
}

\makeatother

\begin{document}
$Xx$

$X\cev{x}_{\cev{x}_{\cev{x}}}$ $\cev{a}\cev{b}\cev{m}\cev{X}$

$X\vec{x}_{\vec{x}_{\vec{x}}}$ $\vec{a}\vec{b}\vec{m}\vec{X}$

$\cev{\imath}$

$\vec{\imath}$
\end{document}

在此处输入图片描述

不同的实现:

\documentclass{article}
\usepackage{graphicx}

\makeatletter
\DeclareRobustCommand{\cev}[1]{%
  {\mathpalette\do@cev{#1}}%
}
\newcommand{\do@cev}[2]{%
  \vbox{\offinterlineskip
    \sbox\z@{$\m@th#1 x$}%
    \ialign{##\cr
      \hidewidth\reflectbox{$\m@th#1\vec{}\mkern4mu$}\hidewidth\cr
      \noalign{\kern-\ht\z@}
      $\m@th#1#2$\cr
    }%
  }%
}
\makeatother

\begin{document}
$Xx$

$X\cev{x}_{\cev{x}_{\cev{x}}}$ $\cev{a}\cev{b}\cev{m}\cev{X}$

$X\vec{x}_{\vec{x}_{\vec{x}}}$ $\vec{a}\vec{b}\vec{m}\vec{X}$

$\cev{\imath}$

$\vec{\imath}$

$\cev{\sigma}\cev{x}$
$\vec{\sigma}\vec{x}$
\end{document}

在此处输入图片描述

答案3

可扩展性\overleftarrow可能会解决问题。问题是箭头比 使用的箭头大\vec,如 所示\[\overleftarrow{a}\overrightarrow{a}\vec{a}\]。要获得一致的箭头,您应该重新定义 $\vec$ :

\documentclass{minimal}
\renewcommand\vec[1]{\overrightarrow{#1}}
\newcommand\cev[1]{\overleftarrow{#1}}

\begin{document}
\[\cev{a}\vec{a}\]
\end{document}

编辑后添加:

另一个解决方案是使用\overset中的命令amsmath,与 一起使用\leftarrow。但是,箭头仍然比命令中的箭头大\vec

\documentclass{minimal}
\usepackage{amsmath}
\begin{document}
\[\overset{\leftarrow}{v}\overset{\rightarrow}{v}\vec{v}\]
\end{document}

*编辑后添加 *\shortleftarrow从包中 使用stmaryrd可以稍微改善上述构造。

答案4

我对 Frederic 的解决方案有几点补充:

\usepackage{stmaryrd}

\overset{\shortleftarrow}{a} \quad \vec{a} \quad \overset{{}_{\shortleftarrow}}{a}

基本上,下标中的箭头使其变小,并减少了它与变量之间的垂直空间。不幸的是,嵌套似乎不起作用。

在此处输入图片描述

相关内容