Ich versuche, ein Skript zur formalen Logik zu schreiben. Der Quellcode sieht ungefähr so aus:
some text...
\[
\begin{array}[]{c | c}
p & (\lnot p) \\ \hline
1 & 0 \\
0 & 1 \\
\end{array}
\]
some more text...
Wie kann ich erreichen, dass der Text im Array in Schreibmaschinenschrift geschrieben wird? Ich habe es so probiert, und das funktioniert gut:
\[
\begin{array}[]{c | c}
\texttt{p} & \texttt{($\lnot$ p)} \\ \hline
\texttt{1} & \texttt{0} \\
\texttt{0} & \texttt{1} \\
\end{array}
\]
Das Problem ist, dass es viel Arbeit macht und nicht dynamisch ist. Wenn ich es also wieder in eine normale Schriftart ändern möchte, müsste ich alles selbst entfernen. Gibt es dafür eine elegante Lösung?
Danke schön!
Antwort1
Etwas wie das?
\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}
Da \ttfamily
es sich um einen Textmodusbefehl handelt, schlage ich vor, eine tabular
Umgebung anstelle einer array
Umgebung zu verwenden.
Antwort2
Ich glaube, Sie haben möglicherweise eineXY-ProblemHier.
Bei vielen OpenType-Schriftarten können Sie den Befehl
\addfontfeatures{Numbers={Monospaced,Lining}}
um Zahlen mit fester Breite in einer attraktiveren Schriftart zu erhalten. Sie können dies in eine Umgebung einbetten, wie zum Beispiel:
\newenvironment{arraymono}%
{\begingroup\addfontfeatures{Numbers={Monospaced,Lining}}\begin{array}}%
{\end{array}\endgroup}
Auch der Unicode-Ziffernraum, der genau so breit ist wie eine Tabellenziffer, könnte für Sie hier hilfreich sein:
\newcommand\figspace{^^^^2007}