Vorsicht beim Kauf …

Vorsicht beim Kauf …

Der Baum ist auf zwei Seiten aufgeteilt, und zwischen einigen Baumzeilen sind Textzeilen eingefügt. Der Baum sieht auf der nächsten Seite nach links verschoben aus, da das Buch zweiseitig ist, aber ich setze keine zweiseitigen Dokumente. Der untere linke Zweig überspringt wie durch Zauberhand zwei Zeilen und beginnt bei (9) mit der Nummerierung.

Wie hat der Autor das nur gemacht? Wenn Prooftrees es einfach machen würde, würde ich es tun.

Bildbeschreibung hier eingeben

Antwort1

Einiges davon ist mit Prooftrees bereits möglich, aufgrund eines Fehlers ist es in der veröffentlichten Version jedoch noch nicht möglich, die Zeilennummerierung bei 6 zu beginnen.

Wenn Sie vorsichtig sind, können Sie den split hereStil verwenden, der inmeine andere Antwortund basierend aufDer Code von Sašo Živanovićum es einmal aufzuteilen prooftrees prooftreeund dazwischen eine Erklärung oder einen Seitenumbruch oder was auch immer einzufügen.

Hinweis: Dies WIRD kaputtgehen. Ich weiß nicht, wo, aber es besteht absolut kein Zweifel daran, dass es kaputtgehen wird. Es wurde bei diesem Beweis kaum getestet, geschweige denn bei anderen.

Tatsächlich habe ich beim prooftreesSpielen damit 2 vorhandene Fehler entdeckt, sogarohneAufteilen des Beweises in Teile. (Diese werden behoben, sobald die nächste Version von Forest auf CTAN hochgeladen wird.)

Vorsicht beim Kauf …

Zum Beispiel:

\documentclass{article}
\usepackage{prooftrees,amssymb}
% Sašo Živanović: https://tex.stackexchange.com/a/296771/
\def\hiddenparcommand{\par}
\forestset{%
  declare count register={split here level},
  declare toks register={split here interject},
  split here level'=-1,
  split here interject={},
  to widest/.style={
    tikz+={\path (\forestregister{tempdima}, \forestoption{y}) -- (\forestregister{tempdimb}, \forestoption{y});},
  },
  split here/.style={%
    split here level'/.option=level,
    split here interject={#1},
    split tree
  },
  split tree/.code={%
    \forestset{%
      draw tree stage/.style={
        for root'={
          tempdima/.min={x()+min_x()}{tree},
          tempdimb/.max={x()+max_x()}{tree},
          for tree={%
            to widest,
          },
        },
        for nodewalk/.wrap pgfmath arg={{draw tree processing order/.style={level<=####1}}{}}{split_here_level},
        for root'={draw tree},
        TeX/.wrap pgfmath arg={\bigskip\hiddenparcommand ####1\hiddenparcommand}{split_here_interject},
        for nodewalk/.wrap pgfmath arg={{draw tree processing order/.style={level>=####1}}{}}{(split_here_level)+1},
        for root'={draw tree},
      },
    }
  }
}
\begin{document}
\begin{prooftree}
  {
    line no shift=5,
    just refs right,
  }
  [Fa, name=fa
    [{\lnot((Fa \land \forall y (Fy \supset y=a))} \land Ga), checked
      [{\lnot(Fa \land \forall y (Fy \supset y=a))}, checked, split here={So far, so automatic. The right hand branch closes, for we have}
        [\lnot Fa, just={from:!u}, close={:!uuu,!c}
        ]
        [{\lnot \forall y (Fy \supset y=a)}, checked
          [{\exists y \lnot (Fy \supset y=a)}, just={from:!u}, checked=b
            [{\lnot (Fb \supset b=a)}, just={from:!u}
            ]
          ]
        ]
      ]
      [\lnot Ga
        [Fa \supset Ga, just=from 3
          [\lnot Fa, close={:fa,!c}]
          [Ga, close={:!uu,!c}]
        ]
      ]
    ]
  ]
\end{prooftree}
\end{document}

geteilte Beweisbäume Beweisbaum

verwandte Informationen