如何在 LaTeX 中排版右、左逻辑投影二元运算?

如何在 LaTeX 中排版右、左逻辑投影二元运算?

在布尔基础知识部分中计算机编程艺术 第 4A 卷、前分册0B,Donald Knuth 引入了左右逻辑投影的符号,这些符号与英文字母非常相似,L并被R翻译成逻辑连接词,见第 3 页表 1(PDF 第 7 页)。这正是我在寻找的符号这个 StackExchange 问题

但是,我不确定在 LaTeX 中用什么命令输出这些符号,而且我无法在综合 LaTeX 符号列表也没有。有人知道 Donald Knuth 是如何想出这些符号的,以及如何在 LaTeX 中排版它们吗?

答案1

扩展我的第一个方法识别神秘的“R”符号,以包含\KnL与 具有相同高度和宽度的\KnR。已编辑以调整大放大倍数下符号的质量。

根据 OP 的评论,已编辑以使用 调整大小到“i”的高度\scalerel*{item to scale}{item of target size};还将解决方案包含在 中\mathbin以解决间距问题。请注意,用户可以将目标大小更改为“i”以外的其他大小,以适应他们的感受。

\documentclass{article}
\usepackage{stackengine,scalerel}
\usepackage{graphicx}
\def\KnRgap{\rule{1.63ex}{0ex}\rule[-.3ex]{0ex}{1.8ex}}
\def\KnR{\kern1pt\mathbin{\scalerel*{%
\stackinset{r}{0pt}{b}{0pt}{\rotatebox{53}{\rule{.07ex}{1.29ex}}}{%
\stackinset{l}{0pt}{t}{.02ex}{\rule{.07ex}{1.8ex}}{%
\stackinset{l}{.02ex}{t}{.02ex}{\rule{1ex}{.07ex}}{%
\stackinset{r}{0pt}{t}{.02ex}{\scalebox{.76}{$\supset\mkern -2mu$}}{%
\KnRgap%
}}}}}{i}}\kern1pt%
}
\def\KnL{\kern1pt\mathbin{\scalerel*{%
\stackinset{l}{0pt}{t}{.02ex}{\rule{.07ex}{1.78ex}}{%
\stackinset{l}{.02ex}{b}{0pt}{\rule{1.53ex}{.07ex}}{%
\KnRgap%
}}}{i}}\kern1pt%
}
\begin{document}
$\mathcal{P} \KnR \mathcal{Q} $~~Right projection; second dictator%

$\mathcal{P} \KnL \mathcal{Q} $~~Left projection
\end{document}

在此处输入图片描述

使用该\scalerel方法的一个优点是它可以自动考虑数学风格(此处显示为\textstyle\scriptstyle\scriptscriptstyle):

在此处输入图片描述

并从该答案扩展第二种方法(同样经过编辑以解决尺寸问题):

\documentclass{article}
\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * matha
      <10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12
      }{}
\DeclareSymbolFont{matha}{U}{matha}{m}{n}
\DeclareMathSymbol{\varcup}{3}{matha}{"59}
\usepackage{stackengine,scalerel}
\usepackage{graphicx}
\def\KnRgap{\rule{1.45ex}{0ex}\rule[-.3ex]{0ex}{1.8ex}}
\def\KnR{\kern1pt\mathbin{\scalerel*{%
\stackinset{r}{0pt}{b}{0pt}{\rotatebox{45}{\rule{.08ex}{1.14ex}}}{%
\stackinset{l}{0pt}{t}{.02ex}{\rule{.08ex}{1.8ex}}{%
\stackinset{l}{.02ex}{t}{0.0pt}{\rule{.7ex}{.08ex}}{%
\stackinset{r}{0pt}{t}{0.0ex}{\scalebox{.81}{%
  \rotatebox{90}{$\varcup\mkern -2mu$}}}{%
\KnRgap%
}}}}}{i}}\kern1pt%
}
\def\KnL{\kern1pt\mathbin{\scalerel*{%
\stackinset{l}{0pt}{t}{.02ex}{\rule{.08ex}{1.78ex}}{%
\stackinset{l}{}{b}{}{\rule{1.4ex}{.08ex}}{%
{%
\KnRgap%
}}}}{i}}\kern1pt%
}
\begin{document}
$\mathcal{P} \KnR \mathcal{Q} $~~Right projection; second dictator%

$\mathcal{P} \KnL \mathcal{Q} $~~Left projection
\end{document}

在此处输入图片描述

相关内容