Chinaunix首页 | 论坛 | 博客
  • 博客访问: 262076
  • 博文数量: 41
  • 博客积分: 2013
  • 博客等级: 大尉
  • 技术积分: 523
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-08 23:13
文章分类

全部博文(41)

文章存档

2010年(41)

我的朋友

分类: LINUX

2010-01-23 11:29:18

latex中的逻辑等价符号

无论是latex默认支持符号,还是amssymb,都没有逻辑等价符号。
在amssymb中支持\vDash, 但我希望得到A|=|B这样的逻辑等价公式,
找了一圈,发现基本没有现成命令可用,于是,想到自己去实现。

如果将\vDash和竖线摆在一块儿,是会有间隔的,因为公式内部默认是有间隔的,因此,解决方案在于去年这个间隔。
我们知道\quad可以在公式内产生一个空格,却少有人用到一个相关的命令\!
这个命令的作用是增加-3/18 quad,也就是说6个\!命令相当于缩小\quad产生的那么长的距离。
我尝试了一下,三个\!解决问题,消除了两个符号之间的间隔,这说明公式内默认的间隔是1/2 quad.
尝试\vDash\!\!\!|发现右边的竖线和左边的\vDash不一般高,因此换成\models,再试,搞定。
最后结果是

\models\!\!\!|~


当然换成

|\!\!\!=\!\!\!|

也是可以的。而且两者结果一致.只不过后者表示的符号与周围字符的间隔更小一些,为显得对称,前者后面要加上~.

下面两个是更直接的形式

\models\hspace{-.5em}|~

\models\hspace{-5pt}|~


续:
上面的几种方式都有一个不可调和的缺陷,即造出来的符号构不成一个整体,遇到换行就分家了。下面这种方式可以解决这个问题.

\models\joinrel\mathrel|

�缺陷,在  ddd缺陷dd其其其
由于\models其实是由现成符号定义的\def\models{\mathrel|\joinrel=}
因此等价形式如下

\models\mathrel{\mkern-3mu}\mathrel|

\mathrel|\mkern-3mu=\mkern-3mu\mathrel|


其中\joinrel和\mathrel用来调节水平距离,而\joinrel由\mathrel定义:\def\joinrel{\mathrel{\mkern-3mu}}

如果觉得中间仍然有间隔,可以将距离进一步减小,这应该算是一个比较令人满意的结果了。

\mathrel|\mkern-4mu=\mkern-4mu\mathrel|



参考>
原理参考
阅读(27396) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~