使用来自的代码\overleftarrow 和 \overrightarrow 的反向箭头提示我可以在字母上方创建特殊箭头。但是,当在总和下方使用这些符号时,箭头会变得一团糟(参见下面的示例)。你能帮忙吗?
\documentclass{article}
\usepackage{amsmath,amssymb,trimclip}
\makeatletter
\def\righttailfill@{\arrowfill@{\clipbox{0pt 0pt 6pt 0pt}{\ensuremath\rightarrowtail}}\relbar\relbar}
\ams@newcommand{\overrighttail}{\mathpalette{\overarrow@\righttailfill@}}
\def\leftrighttailfill@{\arrowfill@{\clipbox{0pt 0pt 6pt 0pt}{\ensuremath\rightarrowtail}}\relbar{\clipbox{6pt 0pt 0pt 0pt}{\ensuremath\leftarrowtail}}}
\ams@newcommand{\overleftrighttail}{\mathpalette{\overarrow@\leftrighttailfill@}}
\makeatother
\begin{document}
\[
\overrighttail{abc}
\]
\[
\sum _{\overrighttail{abc}}
\]
\[
\overleftrighttail{abc}
\]
\[
\sum _{\overleftrighttail{abc}}
\]
\end{document}
答案1
这里是使用 的完全不同的方法tikz
。定义新命令\overrighttail
、\overlefttail
和\overleftrighttail
,它们接受参数,如\overrighttail{abc}
。这些命令将参数放在 a 中node
,然后draw
s 上面的箭头。您可以通过更改shift
值来调整间距。
要在下面 (或上面) 使用这些命令\sum
,请使用附加的新命令\limstyle
,该命令具有用法\limstyle{\overlefttail{abc}}
。此命令使用\mathclap
,它需要mathtools
包。
可选的第二个参数允许进一步设置箭头的样式。例如:
$\overrighttail[red, semithick, densely dotted, line cap=round]{abc}$
请注意,您可以Straight Barb
通过更改设置将箭头样式更改为许多其他形状tail/.tip
。例如,
\tikzset{tail/.tip={to[reversed, length=1.5pt]}}
或者\tikzset{tail/.tip={Latex[reversed, length=4pt]}}
:
\documentclass{article}
\usepackage{tikz, mathtools}
\usetikzlibrary{arrows.meta}
\tikzset{tail/.tip={Straight Barb[reversed, length=1.5pt]}}
\newcommand{\limstyle}[1]{\mathclap{\scriptsize{#1}}}
\newcommand{\overrighttail}[2][]{\tikz[baseline, anchor=base]{\node[inner sep=0pt](a){$#2$};
\draw[tail-, #1]([shift={(1pt,2pt)}]a.north west)--([shift={(-1pt,2pt)}]a.north east);}}
\newcommand{\overlefttail}[2][]{\tikz[baseline, anchor=base]{\node[inner sep=0pt](a){$#2$};
\draw[-tail, #1]([shift={(1pt,2pt)}]a.north west)--([shift={(-1pt,2pt)}]a.north east);}}
\newcommand{\overleftrighttail}[2][]{\tikz[baseline, anchor=base]{\node[inner sep=0pt](a){$#2$};
\draw[tail-tail, #1]([shift={(1pt,2pt)}]a.north west)--([shift={(-1pt,2pt)}]a.north east);}}
\begin{document}
\[
\overrighttail{abc}\;\overlefttail{abc}\;\overleftrighttail{abc}\;
\sum_{\limstyle{\overrighttail{abc}}}^{\limstyle{\overlefttail{abc}}}
\]
\end{document}