Как автоматически использовать шрифт пишущей машинки в массивах?

Как автоматически использовать шрифт пишущей машинки в массивах?

Пытаюсь написать скрипт на формальной логике. Исходный код выглядит примерно так:

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}

Связанный контент