Wie zeichne ich einen Rand, der auch an eine kurze Regel angehängt ist?

Wie zeichne ich einen Rand, der auch an eine kurze Regel angehängt ist?

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!

Logischer Beweis von (P -> (Q ^ R)) ┠ (P -> R)

Antwort1

Verwenden Sie innerhalb der bereitgestellten myproofUmgebung \zfür einen vertikalen Balken, \z*für den vertikalen Balken mit horizontalem Fuß. Das optionale Argument myproofgibt die Einrückung für an \reason.

Weil ich \parin 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}

Bildbeschreibung hier eingeben

verwandte Informationen