Как нарисовать поле, которое также прикреплено к короткой линейке?

Как нарисовать поле, которое также прикреплено к короткой линейке?

Я работаю над заданием по логике, и мне нужно использовать LaTeX. В заданиях мне часто нужно уметь писать что-то вроде того, что ниже. Я знаю, как сделать таблицу, которую она показывает, но не столбцы, особенно когда есть встроенные доказательства. Кроме того, что бы я сделал, если бы было несколько предпосылок? Спасибо за помощь!

Логическое доказательство (P -> (Q ^ R)) ┠ (P -> R)

решение1

Внутри предоставленной myproofсреды используйте \zдля вертикальной черты, \z*для вертикальной черты с горизонтальной ногой. Необязательный аргумент для myproofобеспечивает отступ для \reason.

Поскольку я переопределяю \parокружающую среду, выдолжениспользуйте ровно одну пустую строку между шагами доказательства.

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

введите описание изображения здесь

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