latex中的逻辑等价符号
无论是latex默认支持符号,还是amssymb,都没有逻辑等价符号。
在amssymb中支持\vDash, 但我希望得到A|=|B这样的逻辑等价公式,
找了一圈,发现基本没有现成命令可用,于是,想到自己去实现。
如果将\vDash和竖线摆在一块儿,是会有间隔的,因为公式内部默认是有间隔的,因此,解决方案在于去年这个间隔。
我们知道\quad可以在公式内产生一个空格,却少有人用到一个相关的命令\!
这个命令的作用是增加-3/18 quad,也就是说6个\!命令相当于缩小\quad产生的那么长的距离。
我尝试了一下,三个\!解决问题,消除了两个符号之间的间隔,这说明公式内默认的间隔是1/2 quad.
尝试\vDash\!\!\!|发现右边的竖线和左边的\vDash不一般高,因此换成\models,再试,搞定。
最后结果是
当然换成
也是可以的。而且两者结果一致.只不过后者表示的符号与周围字符的间隔更小一些,为显得对称,前者后面要加上~.
下面两个是更直接的形式
\models\hspace{-.5em}|~ \models\hspace{-5pt}|~ |
续:
上面的几种方式都有一个不可调和的缺陷,即造出来的符号构不成一个整体,遇到换行就分家了。下面这种方式可以解决这个问题.
缺陷,在 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) |