据说使用命令\implies
和比和更\iff
可取\Rightarrow
\Leftrightarrow
,因为它们在周围留出更大的空间,从而使字符更加突出。(另一个问题讨论了这一点。)唉,我觉得这些符号有点太长了;这可能与我的“本土”印刷传统(德语)有关,也可能无关。
我如何定义中等长度(我想也是中等间距)的蕴涵/等价箭头符号?(如果解决方案是一个被选为单个符号的单元,并且粘贴了正确的 Unicode 代码点(U+21D2 和 U+21D4),则可获得奖励;思考没有(更长或其他)替代方案),accsupp
我想是使用。)
答案1
我假设包amsmath
已加载(例如需要\iff
)。
\implies
,,\impliedby
并\iff
在 周围添加 的空间\;
,即 的空间\thickmuskip
。宏\HalfThickmuskip
使用 的一半\;
。
\implies
,\impliedby
由带等号的箭头组成。宏\HalfRelbar
使用相同的等号,但宽度按 0.5 倍缩放。
\joinrel
固定侧边距(字形周围的水平空间)并调整为宏中缩放等号的较小侧边距\PartJoinrel
。
的情况\iff
有所不同,因为它是由两个箭头组成的,不能缩放,否则会影响箭头尖端。这里减去了等号的半宽。
正如所假设的,包accsupp
用于获得字形结构的更好的 Unicode 表示。
\documentclass{article}
\usepackage[fleqn]{amsmath}
\usepackage{graphics}
\usepackage{accsupp}
\makeatletter
\newcommand*{\HalfRelbar}{%
\mathrel{%
\mathpalette\MathResizeHalfWidth=%
}%
}
\newcommand*{\MathResizeHalfWidth}[2]{%
\scalebox{.5}[1]{$\m@th#1#2$}%
}
\newcommand*{\HalfThickmuskip}{%
\mskip.5\muexpr\thickmuskip\relax
}
\newcommand*{\NegHalfEquals}{%
\mathrel{%
\mathpalette\@NegHalfEquals=%
}%
}
\newcommand*{\@NegHalfEquals}[2]{%
\setbox0=\hbox{$\m@th#1#2$}%
\kern-.5\wd0 %
}
\newcommand*{\PartJoinrel}{%
\mathrel{\mkern-2.25mu}% -3mu/2 -1.5mu/2
}
\newcommand*{\Implies}{%
\DOTSB
\protect\HalfThickmuskip
\protect\BeginAccSupp{method=hex,unicode,ActualText=21D2}%
\protect\HalfRelbar
\protect\PartJoinrel
\protect\Rightarrow
\protect\EndAccSupp{}%
\protect\HalfThickmuskip
}
\newcommand*{\Impliedby}{%
\DOTSB
\protect\HalfThickmuskip
\protect\BeginAccSupp{method=hex,unicode,ActualText=21D0}%
\protect\Leftarrow
\protect\PartJoinrel
\protect\HalfRelbar
\protect\EndAccSupp{}%
\protect\HalfThickmuskip
}
\newcommand*{\Iff}{%
\DOTSB
\protect\HalfThickmuskip
\protect\BeginAccSupp{method=hex,unicode,ActualText=21D4}%
\protect\Leftarrow
\protect\joinrel
\protect\NegHalfEquals
\protect\Rightarrow
\protect\EndAccSupp{}%
\protect\HalfThickmuskip
}
\makeatother
\begin{document}
\begin{gather*}
a \implies b_{a \implies b} \\
a \Implies b_{a \Implies b} \\
a \Rightarrow b_{a \Rightarrow b} \\
c \impliedby d_{c \impliedby d} \\
c \Impliedby d_{c \Impliedby d} \\
c \Leftarrow d_{c \Leftarrow d} \\
e \iff f_{e \iff f}\\
e \Iff f_{e \Iff f} \\
e \Leftrightarrow f_{e \Leftrightarrow f} \\
\end{gather*}
\end{document}