我目前正在听一场关于形式系统的讲座(计算机科学讲座)。
讲师制作了一个符号,写成类似于覆盖<
和>
:
每次画的时候,他都会说“genau dann wenn”(德语,意为“如果,且唯若”)。
我如何使用 LaTeX 创建这个符号?
答案1
这里的定义比@egregs ooalign 更简单:
\def\gdw{\mathrel{{>}\mkern-13mu{<}}}
$A \gdw B$
而且它的光学效果更好:
答案2
简单的应用\ooalign
:
\documentclass{article}
% Simple version if you don't need it in sub/superscripts
%\newcommand\gdw{\mathrel{\ooalign{$<$\cr$>$\cr}}}
% Fuller version
\makeatletter
\newcommand{\gdw}{\mathrel{\mathpalette\@gdw@\relax}}
\newcommand{\@gdw@}[2]{\ooalign{$\m@th#1<$\cr$\m@th#1>$\cr}}
\makeatother
\begin{document}
$X \gdw Y_{\gdw}$
\end{document}
看这个答案快速了解\ooalign
。与看似更简单的“打印 >,备份并打印 <”相比,这种看起来很复杂的解决方案有什么优势?您不需要猜测符号的宽度,因为符号的宽度可能会随着所用字体而变化;\ooalign
您不必冒着必须计算宽度的风险。
如果要使内菱形变小,可以添加一些推动力:
\documentclass{article}
\makeatletter
\newcommand{\gdw}{\mathrel{\mathpalette\@gdw@\relax}}
\newcommand{\@gdw@}[2]{%
\ooalign{$\m@th#1\@gdw@push<$\cr$\m@th#1>\@gdw@push$\cr}}
\newcommand{\@gdw@push}{\mkern2mu}% adjust to suit
\makeatother
\begin{document}
$X \gdw Y_{\gdw}$
\end{document}
另一种可能性:
\documentclass{article}
\usepackage{mathtools}
\newcommand{\gdw}{%
\mathrel{\mathrlap{>}}% print > with zero width
\mathrel{\mkern2mu}% some small spacing
<% print the <
}
\begin{document}
$X \gdw Y_{\gdw}$
\end{document}
这会产生与上一个完全相同的输出(需要调整 2mu 以适应)。从其方面来说,它更简单,因为它\mathpalette
在内部使用。它利用了 TeX 在连续关系原子之间不插入空格的事实。
答案3
这是 unicode乌+2AA4名为“大于重叠小于”。这里,你可以看到哪些字体支持这个符号,这里,您的系统上有哪些字体提供该功能。
MWE 需要 Lua 或 XeLaTeX。它只显示我在 PC 上找到的两种字体。当然,你应该在命令中定义你首选的版本\mathrel
。
% arara: lualatex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\fontspec{Asana Math}\symbol{"2AA4}
\fontspec{XITS Math}\symbol{"2AA4}
\end{document}