我试图在一段文本下放置一个左右箭头,并且文本位于每个箭头下方的中心,因此它看起来像这样
v = (0 1 ... 1 0 ... 0)
<-----> <----->
n p
我试过了
\begin{array}{lccr}
v = (0 & \underleftrightarrow{1 \cdots 1} & \underleftrightarrow{0 \cdots 0} &) \\
& p & n &
\end{array}
但我发现 和 箭头之间的垂直间距不够1 ... 1
,而 箭头和 之间的间距太大p
。而且,水平间距不均匀。
这里的间距比较好
\begin{align*}
v = (0\ & 1 \cdots 1\ 0 \cdots 0) \\
& \overleftrightarrow{\phantom{1 \cdots 1}}\ \overleftrightarrow{\phantom{0 \cdots 0}}
\end{align*}
但我不知道如何在箭头下方附加文本。
在\leftrightarrow
对我来说这不行,因为我想让它v = etc
与下面的箭头所在的线的其余部分对齐。
答案1
这里我创建了\myarrow
的语法\xleftrightarrow
,除了使用堆栈来完成它。(目前只在有效\displaystyle
,如果可以的话)
\documentclass{article}
\usepackage{stackengine,mathtools}
\newcommand\myarrow[2][]{%
\setstackEOL{\\}%
\setstackgap{L}{.7\baselineskip}%
\setbox0=\hbox{$\displaystyle #1$}%
\setbox2=\hbox{$\displaystyle #2$}%
\ensurestackMath{%
\Longunderstack{#2 \\ \xleftrightarrow[\rule{\wd2}{0pt}]{\rule{\wd0}{0pt}} \\ #1}%
}%
}
\begin{document}
\[
v = \{ 0 \myarrow[n]{1 \dots 1} \myarrow[p]{0 \dots 0}\}
\]
\end{document}
如果想要箭头突出部分少一些……
\documentclass{article}
\usepackage{stackengine,mathtools}
\newcommand\myarrow[2][]{%
\setstackEOL{\\}%
\setstackgap{L}{.7\baselineskip}%
\setbox0=\hbox{$\displaystyle #1$}%
\setbox2=\hbox{$\displaystyle #2$}%
\ensurestackMath{%
\Longunderstack{#2 \\ \xleftrightarrow[\rule{\dimexpr\wd2-4pt}{0pt}]{%
\rule{\dimexpr\wd0-4pt}{0pt}} \\ #1}%
}%
}
\begin{document}
\[
v = \{ 0 \myarrow[n]{1 \dots 1} \myarrow[p]{0 \dots 0}\}
\]
\end{document}
答案2
使用 很容易做到pstricks
。对于pdflatex
,不要忘记--enable-write 18
\ (MiKTeX) 或-shell-escape
(TeX Live, MacTeX)。
\documentclass{article}
\usepackage{pst-node, auto-pst-pdf}
\begin{document}
\begin{postscript}
\[ v = (0\ &\pnode(0, -1ex){a}{1} \cdots 1 \pnode(0, -1ex){b}\ \pnode (0, -1ex){c}0\cdots 0\pnode(0, -1ex){d})
\everypsbox{\scriptstyle}
\psset{linewidth=0.4pt, arrows=<->, arrowinset=0.2, shortput=nab, labelsep = 0.5ex}
\ncline{a}{b}_{n}
\ncline{c}{d}_{p}
\]
\end{postscript}
\end{document}