如何在陣列中自動使用打字機字體?

如何在陣列中自動使用打字機字體?

我正在嘗試寫一個關於形式邏輯的腳本。原始碼看起來像這樣:

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}

相關內容