适合数学符号 (∀、∃、→) 的打字机字体,例如在逐字环境中

适合数学符号 (∀、∃、→) 的打字机字体,例如在逐字环境中

我有一个要逐字(实际上)使用的列表,Verbatim它使用了 Unicode 字符,例如 ∀、∃、→、∨。使用

\DeclareUnicodeCharacter{2203}{\ensuremath\exists}

它们确实出现在列表中,但显然字体错误。

对于 → 我使用以下方法获得了所需的结果

\usepackage{textcomp}
\DeclareUnicodeCharacter{2192}{\ifmmode\to\else\textrightarrow\fi}

但我不知道如何对 ∃、∀ 和 ∨ 做到这一点。

梅威瑟:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\DeclareUnicodeCharacter{2192}{\ifmmode\to\else\textrightarrow\fi}
\DeclareUnicodeCharacter{2203}{\ensuremath\exists}
\begin{document}
\begin{verbatim}
Make this → ∃ look nice!
\end{verbatim}
\end{document}

我想坚持使用 latex(即不是 xetex)。我更愿意坚持使用默认的打字机字体(Computer Modern Typewriter),但如果它只适用于其他字体(例如 DejaVu Sans Mono),那么也可以。

答案1

您可以使用cmtex10具有多个数学符号且与 兼容的字体cmtt。以下代码假定您在数学模式或 中使用字符Verbatim

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{fancyvrb}
\usepackage{newunicodechar}

\DeclareFontFamily{U}{cmtex}{}
\DeclareFontShape{U}{cmtex}{m}{n}{
 <-> cmtex10
}{}
\newcommand{\cmtex}[1]{{%
  \usefont{U}{cmtex}{m}{n}\symbol{#1}%
}}

\newcommand{\ttexists}{\cmtex{"15}}
\newcommand{\ttforall}{\cmtex{"14}}
\newcommand{\ttrightarrow}{\cmtex{"19}}
\newcommand{\ttlor}{\cmtex{"1F}}
\newcommand{\ttland}{\cmtex{"04}}

\newunicodechar{∃}{\ifmmode\exists\else\ttexists\fi}
\newunicodechar{∀}{\ifmmode\forall\else\ttforall\fi}
\newunicodechar{→}{\ifmmode\expandafter\rightarrow\else\ttrightarrow\fi}
\newunicodechar{∨}{\ifmmode\lor\else\ttlor\fi}
\newunicodechar{∧}{\ifmmode\land\else\ttland\fi}

\begin{document}

$∃∀→∨∧$

\begin{Verbatim}
∃∀→∨∧
abcde
\end{Verbatim}

\end{document}

在此处输入图片描述

这是字体表,因此您可以以相同的方式扩展该集合。

在此处输入图片描述

相关内容