
Ich arbeite an einer Logikaufgabe und soll LaTeX verwenden. In den Aufgaben muss ich oft in der Lage sein, etwas wie das Folgende zu schreiben. Ich weiß, wie man die angezeigte Tabelle erstellt, aber keine Balken, insbesondere wenn es eingebettete Beweise gibt. Und was würde ich tun, wenn es mehrere Prämissen gäbe? Danke für Ihre Hilfe!
Antwort1
Verwenden Sie innerhalb der bereitgestellten myproof
Umgebung \z
für einen vertikalen Balken, \z*
für den vertikalen Balken mit horizontalem Fuß. Das optionale Argument myproof
gibt die Einrückung für an \reason
.
Weil ich \par
in der Umgebung neu definiere, dumussVerwenden Sie zwischen den Beweisschritten genau eine Leerzeile.
\documentclass{article}
\usepackage{tabto}
\def\zz{1.8\dimexpr}
\makeatletter
\newcommand\z{\@ifstar{\zstar}{\znostar}}
\makeatother
\newcommand\zstar{\makebox[1em][l]{%
\smash{\rule[-\dimexpr2pt+\zz\dp\strutbox]{.5pt}{\zz\baselineskip}%
\rlap{\rule[-\zz.9\dp\strutbox]{14pt}{.5pt}}}}\ignorespaces}
\newcommand\znostar{\makebox[1em][l]{%
\smash{\rule[-\dimexpr2pt+\zz\dp\strutbox]{.5pt}{\zz\baselineskip}}}%
\ignorespaces}
\let\svpar\par
\newcounter{proofline}
\newenvironment{myproof}[1][1.8in]{%
\setcounter{proofline}{0}%
\parskip0.8\baselineskip
\def\reason{\tabto{#1}}%
\def\par{\stepcounter{proofline}%
\svpar\noindent\makebox[1.5em][l]{\theproofline}}%
\par\ignorespaces
}
{\let\par\svpar
\par\noindent
\ignorespacesafterend
}
\begin{document}
\noindent Before
\begin{myproof}
\z* $(P\rightarrow(Q\wedge R))$ \reason Premise
\z\z* $P$ \reason Assumption
\z\z $(Q\wedge R)$ \reason 1,2 $\rightarrow$E
\z\z $R$ \reason 3 $\wedge$E
\z $(P\rightarrow R)$ \reason 2-4 $\rightarrow$I
\end{myproof}
After
\noindent parskip was restored
\end{document}