创建中等长度的蕴涵和等价符号

创建中等长度的蕴涵和等价符号

据说使用命令\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}

结果

相关内容