如何在数组中自动使用打字机字体?

如何在数组中自动使用打字机字体?

我正在尝试编写一个基于形式逻辑的脚本。源代码如下所示:

some text...

\[
\begin{array}[]{c | c}
p   &   (\lnot p) \\ \hline
1   &   0 \\
0   &   1 \\
\end{array}
\]

some more text...

我怎样才能使数组中的文本以打字机字体书写?我尝试了类似的方法,效果很好:

\[
\begin{array}[]{c | c}
\texttt{p}   &   \texttt{($\lnot$ p)} \\ \hline
\texttt{1}   &   \texttt{0} \\
\texttt{0}   &   \texttt{1} \\
\end{array}
\]

问题是,这需要大量工作,而且不是动态的。所以如果我想把它改回正常字体,我需要自己删除所有内容。有没有优雅的解决方案?

谢谢你!

答案1

像这样吗?

在此处输入图片描述

\documentclass{article}
\usepackage{array} % for '\newcolumntype' macro
\newcolumntype{T}{>{\ttfamily}c} 

\begin{document}
\begin{center}
\begin{tabular}{ T | T }
p  & ($\lnot$p) \\ 
\hline
1  & 0 \\
0  & 1 \\
\end{tabular}
\end{center}
\end{document}

因为\ttfamily是一个文本模式命令,所以我建议使用tabular环境而不是array环境。

答案2

我认为你可能有一个XY问题这里。

对于许多 OpenType 字体,你可以使用命令

\addfontfeatures{Numbers={Monospaced,Lining}}

以更具吸引力的字体获得固定宽度的数字。您可以将其包装在环境中,例如:

\newenvironment{arraymono}%
  {\begingroup\addfontfeatures{Numbers={Monospaced,Lining}}\begin{array}}%
  {\end{array}\endgroup}

您可能还会发现 Unicode 图形空间(其宽度与表格数字完全相同)在这里很有用:

\newcommand\figspace{^^^^2007}

相关内容