如何获取等空间逻辑公式?

如何获取等空间逻辑公式?

以下操作在 LaTeX 中不起作用,因为逻辑符号只能在数学模式下使用:

\texttt{\forall x(\exists y((f(x)=y)\land(\neg(g(y)=y))))}

我想这样做是为了强调这些公式作为字符串(数学对象)的性质。逻辑符号应该看起来更类似于其他固定宽度的符号,而不是普通的数学模式符号。然后我也可以写出以下内容:

If $\phi$ is a formula of first-order logic and $x$ is a variable, then
\texttt{\forall$x$($\phi$)} is again a formula of first-order logic.

最好的方法是什么?显然,使用不同的命令代替 \forall、\land 等就可以了。直接输入 unicode 数学字符会更好:

\texttt{∀x(∃y((f(x)=y)∧(¬(g(y)=y))))}

If $\phi$ is a formula of first-order logic and $x$ is a variable, then
\texttt{∀$x$($\phi$)} is again a formula of first-order logic.

我尝试使用 \usepackage{utf8x} 来运行 XeTeX,但不起作用。否定符号给出“Character172appearedalone”,其他字符根本就不会打印。

[第一条回复后添加]

以下是迄今为止最好的近似值:

\newcommand{\Forall}{$\mathtt\forall$}
\newcommand{\Exists}{$\mathtt\exists$}
\newcommand{\Neg}{$\mathtt\neg$}
\newcommand{\Land}{$\mathtt\land$}
\newcommand{\Lor}{$\mathtt\lor$}

\noindent\texttt{\Forall x\Exists y(x\Land y)}\\
\texttt{abcde\Forall x\Exists y(x\Land y)}

使用示例表明逻辑符号的宽度并不完全正确。但至少在最初阶段,它足以满足我的需求。我想,对于最终的解决方案,我将研究如何让这些符号使用宽度零并将它们打印在 monotype 空格字符上。

答案1

XeTeX 没有问题如果您加载包含以下字符的字体:

\documentclass{minimal}

\usepackage{fontspec}

\setmainfont{DejaVu Serif}
\setsansfont{DejaVu Sans}
\setmonofont{DejaVu Sans Mono}

\begin{document}

\texttt{∀x(∃y((f(x)=y)∧(¬(g(y)=y))))}

If $\phi$ is a formula of first-order logic and $x$ is a variable, then
\texttt{∀$x$($\phi$)} is again a formula of first-order logic.

\end{document}

inputenc注意:使用 XeTeX 编译时切勿加载该包。

  • 使用 DejaVu Sans Mono 的结果: DejaVu Sans Mono

  • 使用 FreeMono 的结果: 自由单声道

答案2

你不能用吗$\mathtt{\forall x(\exists y((f(x)=y)\land(\neg(g(y)=y))))}$

相关内容