我有一个要逐字(实际上)使用的列表,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}
这是字体表,因此您可以以相同的方式扩展该集合。