适用于独立数学表达式的真正等宽字体

适用于独立数学表达式的真正等宽字体

我希望以下内容采用fixed-width(ie monospace) 字体,这样我就可以将各种表达方式很好地排列起来,以便(可能经过一些操作)使它们的相似点和不同点更加明显和立即显现出来。

不过我确实喜欢这个字体,所以如果有类似的字体,即等宽字体,或者某种量化方法;一种强制每个字符占据相同空间的方法;那就太理想了。我不抱太大希望,只是说如果能有就好了。


在此处输入图片描述


\documentclass[border=5mm,varwidth]{standalone}

\begin{document}

$(x+y)'=x'y'$\\
$\neg(p\vee q)\leftrightarrow\neg p\wedge\neg q$\\
$(A\cup B)^c=A^c\cap$ $B^c$\\
\\
$(xy)'=x'+y'$\\
$\neg(p\wedge q)\leftrightarrow\neg p\vee\neg q$\\
$(A\cap B)^c=A^c\cup B^c$\\

\end{document}

答案1

如果我理解正确的话,你希望它易于比较。因此,这里有两个建议(如果你不喜欢其中任何一个,我会删除我的帖子):

  • 使用align它们,就像在你的帖子中一样 版本 1
  • 使用 atabular使比较更加清晰 对齐 2

代码:

\documentclass{article}

\usepackage{mathtools}

\usepackage{array}

\begin{document}
\begin{align*}
(x+y)' &= x'y'\\
\neg(p\vee q) &\leftrightarrow \neg p\wedge\neg q\\
(A\cup B)^c &= A^c\cap B^c\\[\baselineskip]
x' + y' &= (xy)'\\
\neg(p\wedge q) &\leftrightarrow \neg p\vee\neg q\\
(A\cap B)^c &= A^c\cup B^c
\end{align*}

\vfill

\begin{tabular}{*{2}{>{\(}r<{\)}@{\hskip.25em}>{\(}c<{\)}@{\hskip.25em}>{\(}l<{\)}}}
  (x+y)' &=& x'y' & x' + y' &=& (xy)'\\
  \neg(p\vee q) &\leftrightarrow& \neg p\wedge\neg q & \neg(p\wedge q) &\leftrightarrow& \neg p\vee\neg q\\
  (A\cup B)^c &=& A^c\cap B^c & (A\cap B)^c &=& A^c\cup B^c
\end{tabular}
\end{document}

答案2

可能像这样:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\ExplSyntaxOn

\NewDocumentCommand{\fsmath}{m}
 {
  \tl_map_inline:nn { #1 } { \makebox[1.2em]{$##1$} }
 }

\ExplSyntaxOff

\begin{document}

\begin{align*}
& \fsmath{(x+y)'=x'y'} \\
& \fsmath{\neg(p\vee q)\leftrightarrow\neg p\wedge\neg q} \\
& \fsmath{(A\cap B){^c}=A{^c}\cup B{^c}}
\end{align*}

\end{document}

在此处输入图片描述

答案3

对您的问题的字面回答:从技术上讲,是可行的,使用unicode-math,加载 TeX Gyre DejaVu 数学作为您的数学字体,然后使用 选项将 DejaVu Sans Mono 中的字母、数字和符号加载到其range=\setmathfont

但是,这不会达到您想要的效果,因为下标、大运算符、间距等不会是等宽的。这是一个 XY 问题。

相关内容