XY-pic 是绘制流程图的专用宏包。要想使用它,只需在导言区加上:

\usepackage[options]{xy}
  • [options]options 是列出需要载入的 XY-pic 的选项。这些选项基本上被用于调试这个宏包的使用。建议使用 all,可以让 LaTex 载入 XY 的所有命令。

XY-pic 中最常用的是基于矩阵的图形。它的矩阵语法如下:

\xymatrix{object}
  • {object}object 的矩阵语法,和 matrix 环境类似,矩阵的内容将以数学模式排版。

如下是使用 XY-pic 绘制在画布上一个矩阵:

\begin{displaymath}    \xymatrix{A & B \\              C & D }\end{displaymath}

命令 \xymatrix 必须置于数学模式中。上面的例子设定了一个两行两列的矩阵。只要使用命令 \ar[direction] 添加带方向的箭头即可,而箭头命令要放在其触发的那个单元里。direction 参量是箭头的方向(u:上,d:下,r:右 以及 l:左)。

命令 \xymatrix 必须置于数学模式中。这里,我们设定了一个两行两列的矩阵。为了画出流程,我们只需要使用命令 \ar 增加带方向的箭头即可。

\begin{displaymath}    \xymatrix{         A \ar[r] & B \ar[d] \\        D \ar[u] & C \ar[l]     }\end{displaymath}

而对角线可以指向不同的方向参量。下面是一个指向同一个方向的箭头。

要画对角线,可以指出不只一个方向参量。实际上,你还可以重复同一个方向来得到更大的箭头。

\begin{displaymath}    \xymatrix{        A \ar[d] \ar[dr] \ar[drr] & B &&\\        C \ar[r] & D \ar[u] & E \ar[r] & F \ar[ull]     }\end{displaymath}

还可以给箭头加上标签,只需要使用普通的上标和下标即可。

\begin{displaymath}    \xymatrix{        A \ar[r]^f \ar[d]_g &        B \ar[d]^{g’} \\        D \ar[r]_{f’} & C     }\end{displaymath}

如上图所示,使用上下标会给箭头添加标签。上标表示放在 “箭头的上方”,下标表示放在 “箭头的下方”。如果想把标签放在箭头上可以使用 |。如下所示:

\begin{displaymath}    \xymatrix{        A \ar[r]|f \ar[d]|g &        B \ar[d]|{g’} \\        D \ar[r]|\hole & C     }\end{displaymath}

上面有一个命令,我们没有见到过,就是 \ar[...]|\hole,这是用来绘制空心箭头的。

下面给出不同类型的箭头。

\begin{displaymath}    \xymatrix{        A \ar@{->}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{-->}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{=>}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{~)}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{.>}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{:>}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{-}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{|->>}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{^(-_>}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@3{->}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{=+}[dr] \\        & B    }\end{displaymath}

\begin{displaymath}    \xymatrix{        A \ar@{}[dr] \\        & B    }\end{displaymath}

从上面这些箭头样式来看,样式是由中间的连线和箭头的前后端点组成,中间的连线可以是直线、虚线、双线、波浪线、点线等样式组成。箭头也可以是尖角、圆角、平角等样式,或是通过上下标调整位置的样式。连线和箭头都可以为空,不同的样式可以组合成多种复杂的形式。

除了直接连线,XY-pic 也可以画出弯曲的箭头连线,其语法是:

\ar@/(曲线)/
  • (曲线)曲线 可以是 ^_,即沿箭头向左或向右弯曲。

下面给出例子。

\begin{displaymath}    \xymatrix{        A \ar@/^/[dr]^{\phi} \\        & B \ar@/^/[ul]^{\psi}    }\end{displaymath}

更复杂的曲线可以用 @((出),(入)) 指定曲线发出和射入的方向,如下所示,画出有向图的自环:

\begin{displaymath}    \xymatrix{        A \ar@{->}[dr] \\        & B \ar@(ur, dr)    }\end{displaymath}

在箭头命令 \ar 后面加上 @可以画出向一侧平移的箭头,这特别适用于在两个对象之间画双箭头,例如:

\begin{displaymath}    \xymatrix{        A \ar@<.5ex>[dr]^f \\        & B \ar@<.5ex>[ul]^g    }\end{displaymath}

XY-pic 中,不仅连线可以有多种样式,矩阵的元素和标签页可以有不同的样式。使用 * 可以引入带有修饰符的对象,其语法如下:

*(修饰){(文本)}

下面看例子。

\begin{displaymath}    \xymatrix@=2cm{        *[F]{A} \ar[r]^*+[F=]{k} & *=[o][F]{B}    }\end{displaymath}

其中 [F] 表示加框,[F=] 加双框,[o] 表示使用圆形框,+ 表示增加对象与边框的间距;XY-pic 中常见的修饰符见下表。这里在 \xymatrix 后面用 @=(距离) 来设置相邻矩阵元素的间距。

语法 说明
+ 增加边距
+ 增加指定(长度)的边距
+= 扩展边距到正方形,使水平与垂直边距相等
- 减少边距
- 减少指定(长度)的边距
-= 减少边距到正方形,使水平与垂直边距相等
! 不居中
[o] 设置边框为椭圆形
[l] [x] [u] [d] 左、右、上、下对齐
[F] [F=] 单线框、双线框
[F.] [F--] 点线框、虚线框
[F-,] [F-<3pt>] 阴影框 圆角矩形框

之前 XY-pic中的标签都是数学公式,使用 \txt{...}命令则可以得到文字模式的 XY-pic对象。使用 \txt可以在内容中用 \\换行,使用 txt可以让文字指定宽度自动换行,如下所示:

\begin{displaymath}    \xymatrix{        *++=[o][F]\txt{猫猫} \ar@{}[r] &         *+[F]\txt{狗\\狗}    }\end{displaymath}

这里组合使用了 ++=[o][F] 修饰符来画出比文字稍大的圆形边框。

命令 \composite{... * ...} 可以用来修饰把两个不同的 Xy-pic 对象重叠在一起组合成一个对象,例如:

\begin{displaymath}    \xymatrix{        *+[F]{\composite{*+[o][F]{a\quad} * *+[F]{\quad b}}} \ar[r]        & *+[F]{c}    }\end{displaymath}

\xymatrix 命令后面也可以使用如下修饰符来调整矩阵元素的间距:

修饰符 描述
@=(长度) 设置元素间距
@R=(长度) 设置行间距
@C=(长度) 设置列间距
@M=(长度) 设置元素的默认边距
@W=(长度) 设置元素的默认宽度
@H=(长度) 设置元素的默认高度
@L=(长度) 设置标签的边距

其中的等号 = 还可以替换为 ++=--=,其意义与上述Xy-pic修饰符表一致,例如:

\begin{displaymath}    \xymatrix@R=2ex{        A \ar[drr] & B & C \\        D & E & F    }\end{displaymath}

\xymatrix 后面直接加上 u,d,ul,ur 等方向,则表示将矩阵的连线按此方向旋转,使原来向右的方向指向给定的坐标方向,例如:

\begin{displaymath}    \xymatrix@ru{        A \ar[r] & B \ar[d] \\        C \ar[u] & D \ar[l]    }\end{displaymath}

这里就介绍到这里,如需了解更多用法,就需要参见宏包的官方指南。

你的赞和在看,我都喜欢!

左对齐 latex_LaTex中使用XYpic绘制交换图表相关推荐

  1. python怎么左对齐_python中如何用ljust()实现字符串左对齐?

    在python编程中,有时为了便于码代码,会将字符串左对齐,这样方便观看与书写,python中用于字符串左对齐的是ljust()方法,本文将向大家介绍ljust()方法.具体内容请看本文. 1.lju ...

  2. flutter text 左对齐_flutter输入框TextField中文本textAlign对齐分析篇

    当我们在使用一个 TextField 构建一个输入框时,会有如下效果: 在实际应用程序的开发中,有时我们会希望输入的文字居中对齐或者是右对齐,那么就应用到了我本文章中所讲述内容,凡是涉及到一个内容,我 ...

  3. Android ImageView中scaleType=centerCrop实现左对齐效果

    在开发过程中,用于显示图片大家用的比较多的应该是ImageView,在显示图片时是通常我们会设置scaleType以达到不同的展示效果.然后通常scaleType能设置的属性仅为: CENTER /c ...

  4. R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐、右对齐、居中)实战

    R语言ggplot2可视化使用vjust和hjust参数对齐图像中的文本注释信息(左对齐.右对齐.居中)实战 目录

  5. 将选定的文本对象左对齐、右对齐或对中

    ;; ;;程序名称:对象水平对齐程序 ;;执行命令:TXTAL ;;程序功能:将选定的对象左对齐.右对齐或对中. ;; (defun c:TXTAL(/ selobjs oldcmdecho) ;定义 ...

  6. latex中设置标题左对齐

    在ctexart类型文章中,默认 \section{标题} 是居中的,现在需要 \section{摘要}居中,但是后面的section的标题是左对齐的.需要插入以下设置: \CTEXsetup[for ...

  7. Markdown中图片左对齐

    Markdown中图片左对齐 左对齐: 在图片前面输入空格即可 - 右对齐 需要使用CSS样式

  8. Word2016中调节页眉内容一部分左对齐,一部分右对齐

    如何让Word页眉内容一部分左对齐,一部分右对齐. 需求: "页眉内容:左对齐为"XXX学位论文",右对齐是各章章名,奇偶页页眉内容一致:" 问题描述: 发现右 ...

  9. c++中关于设置左对齐和右对齐的问题解决方法

    不知道大家有没有试过,设置了左对齐后,后面设置了右对齐,然后左对齐的cout在后面的循环中不起作用了,如图下所示. 解决方法有两个,第一个 第二个 感谢 http://bbs.csdn.net/top ...

  10. Word中插入公式左对齐,编号右对齐的设置

    本文介绍方法采用制表位方法实现,具体操作步骤如下 首先需要确定公式和公式编号在Word中的位置,首先需要确定Word页面设置中的左右页边距和纸张宽度,此操作可以通过查看页面设置找到.页面设置如下,其中 ...

最新文章

  1. guava之Stopwatch
  2. 【Linux 内核】Linux 内核源码几个重要的入口源文件及函数介绍 ( 系统初始化 | 内存管理 | 虚拟文件系统 | 网络管理 )
  3. 修改linux系统iqn,linux iSCSI target配置全过程
  4. 实践:使用了CompletableFuture之后,程序性能提升了三倍
  5. struts2基础梳理(二)
  6. MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
  7. mysql数据库银行项目题_银行数据库笔试编程题
  8. zip保存数据和接口获取压缩包 jsZip
  9. 阿里飞猪个性化推荐:召回篇
  10. Bundle-Adjustment并行求解器
  11. hiveSQL执行计划(explain使用全网最详细!!)
  12. 安卓投屏大师TC DS如何把手机声音传输到电脑教程
  13. 对某在线教育平台用户使用RFM模型按价值分类
  14. oracle中 greatest、east、coalesce
  15. linux静态路由表无故消失,探究几种静态路由的行为及自动删除行为
  16. “新基建”下的智慧城轨:城轨为“体” 智慧为“用”
  17. 前端面试题型汇总(适合应届/社招1年水平)
  18. ERP与PDM集成基本原理
  19. 1-3 Burpsuite 抓取手机APP流量
  20. 2020年数字设计/芯片前端面试经验-格科微+盛科科技+瑞晟+长江存储+兆芯

热门文章

  1. python3调用摄像头_教你如何利用python调用摄像头
  2. ajax req.getsession() 获取不到_[AJAX] -AJAX,你要学的,都在这儿(案例小剧场-搜索框提示(经典))...
  3. eclipse android 服务端,Eclipse搭建服务器,实现与Android的简单通信
  4. JavaScript:面向对象简单实例——图书馆
  5. FFmpeg学习(5)——视频加水印
  6. 人物关系图谱:ECharts 实现
  7. ubuntu 安装多个CUDA版本并可以随时切换
  8. ubuntu14.04 配置C/C++开发IDE
  9. Focal Loss-RetinaNet算法解析
  10. a.out的构成及运行时在内存区域的分配