Como usar automaticamente a fonte da máquina de escrever em arrays?

Como usar automaticamente a fonte da máquina de escrever em arrays?

Estou tentando escrever um script sobre lógica formal. O código-fonte é mais ou menos assim:

some text...

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

some more text...

Como posso fazer com que o texto dentro do array seja escrito em fonte de máquina de escrever? Eu tentei algo assim, que funciona bem:

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

O problema é que dá muito trabalho e não é dinâmico. Portanto, se eu quiser voltar para uma fonte normal, precisarei remover tudo sozinho. Existe uma solução elegante para isso?

Obrigado!

Responder1

Algo assim?

insira a descrição da imagem aqui

\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}

Como \ttfamilyé um comando em modo texto, sugiro empregar um tabularambiente em vez de um arrayambiente.

Responder2

Eu acho que você pode ter umProblema XYaqui.

Com muitas fontes OpenType, você poderá usar o comando

\addfontfeatures{Numbers={Monospaced,Lining}}

para obter números de largura fixa em uma fonte mais atraente. Você pode agrupar isso em um ambiente, como:

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

Você também pode achar o espaço de figuras Unicode, que é exatamente tão largo quanto um dígito tabular, útil aqui:

\newcommand\figspace{^^^^2007}

informação relacionada