我想要画一个箭头,它代表行号,如下面的屏幕截图所示。
我尝试过 xymatrix,但这似乎不是正确的方法。有什么想法吗?
答案1
正如评论中提到的,这很简单,使用tikz
;这里有一些可以让你入门的东西
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
% draw the arrow
\draw[->](0,0)--(10,0);
% draw the tick marks
\foreach \x/\nodename/\mytext in {1/a/$2(N-1)\omega$,5/b/$2N\omega$,7/c/$2\omega_0$,9/d/$2(N+1)\omega$}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[anchor=north](\nodename){\mytext};
% draw the braces
\draw[decorate,decoration={brace,amplitude=10}]($(a.north)+(0,.25)$)--($(b.north)+(0,.25)$)node[anchor=south,pos=.5,outer sep=.5cm]{$|2\omega|$};
\draw[decorate,decoration={brace,amplitude=10}]($(b.north)+(0,.25)$)--($(c.north)+(0,.25)$)node[anchor=south,pos=.5,outer sep=.5cm]{$|2\omega_0-2N\omega|$};
\end{tikzpicture}
\end{document}
笔记
我希望大部分代码都是不言自明的;对于没有看过太多tikz
代码的人来说,不太明显的部分是
\foreach \x/\nodename/\mytext in {1/a/$2(N-1)\omega$,5/b/$2N\omega$,7/c/$2\omega_0$,9/d/$2(N+1)\omega$}
我的理解是,认为\x
、\nodename
和都是循环变量,它们将采用以下花括号(以分隔符 分隔)\mytext
中指定的值。/
所以
\x
将采取价值观1,5,7,9
\nodename
将采取价值观a,b,c,d
\mytext
将采取价值观$2(N-1)\omega$,...,$2(N+1)\omega$
我用过
\usetikzlibrary{decorations.pathreplacing}
用于支撑;该amplitude
键控制支撑的幅度\usetikzlibrary{calc}
调整括号的垂直定位,例如($(a.north)+(0,.25)$)
意味着使用node
命名的a
北位置 PLUS(0,.25)
该tikz
软件包提供了大量的工具,因此可能有多种方法可以做到这一点 - 我的代码就是其中一种方式:)