答案1
您正在寻找的是 TikZ 包(https://www.ctan.org/pkg/pgf)。它已成为 LaTeX 中事实上的标准绘图工具。你给出的图片可以写成
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node at (0, 0) (a) {(a)};
\node at (2, 0) (b) {(b)};
\node at (4, 0) (c) {(c)};
\draw [double, ->, bend right, auto, swap] (a) to node {label 1} (b);
\draw [double, ->, bend right, auto, swap] (b) to node {label 2} (a);
\draw [double, ->, auto] (c) to node {label 3} (b);
\end{tikzpicture}
\end{document}
现在,这里发生了什么?您可以考虑要tikzpicture
在其上进行绘制的画布。这三个命令分别在给定的坐标、和\node
处在画布上创建点(第一个数字是从左到右的水平坐标,第二个数字是从下到上的垂直坐标)。为了便于以后参考,这些点分别称为、和,并以此方式绘制,带有括号。(0, 0)
(2, 0)
(4, 0)
a
b
c
命令\draw
负责绘制箭头。我们暂时忽略选项,假设命令是\draw (c) to node {label 3} (b)
。这将从我们调用的点到点绘制一条线c
。b
为了标记这条线,我们使用临时创建另一个节点node {label 3}
,其中括号中的内容是要出现在该线旁边的文本。
该命令的选项\draw
执行以下操作:
double
绘制两条线而不是一条线,使它们看起来像“暗示”箭头,正如您所要求的那样。->
指定箭头的尖端。即,开头没有尖端(直线-
,结尾有箭头尖端 )>
。bend right
表示曲率。bend left
也是可能的。请注意,两个箭头都向右弯曲。auto
巧妙地定位行的标签。尝试编译示例而不使用选项:标签将被写入在而不是紧挨着线。swap
控制标签是否出现在行的左侧或右侧。如果两条线都没有此swap
选项,则标签将设置在行之间,并且行与行之间的间距很小。试试看!
TikZ 是一款功能强大的软件包。在学习使用它时,你一定要遵循软件包作者的邀请,按照一开始的教程进行操作。