Advertencia emptor...

Advertencia emptor...

El árbol se divide en dos páginas y se insertan líneas de texto entre algunas líneas del árbol. El árbol parece desplazado hacia la izquierda en la página siguiente porque el libro tiene dos caras, pero yo no escribo documentos de dos caras. La rama inferior izquierda salta dos líneas mágicamente y comienza a numerarse en (9).

¿Cómo pudo el autor hacer esto? Si los árboles de prueba hicieran que fuera fácil hacerlo, lo haría.

ingrese la descripción de la imagen aquí

Respuesta1

Ya es posible hacer algo de esto con los árboles de prueba, aunque debido a un error aún no es posible comenzar la numeración de líneas en 6 con la versión publicada.

Si tienes cuidado, puedes utilizar el split hereestilo incluido enmi otra respuestay basado enEl código de Sašo Živanovićdividir una prooftrees prooftreevez, intercalando alguna explicación o un salto de página o lo que sea en el medio.

Nota: Esto SE romperá. No sé dónde, pero no hay ninguna duda de que se romperá. Apenas se ha probado con esta prueba, y mucho menos con otras.

De hecho, descubrí 2 errores existentes al prooftreesjugar con esto, inclusosindividiendo la prueba en pedazos. (Estos se solucionarán poco después de que la próxima versión de Forest se envíe a CTAN).

Advertencia emptor...

Por ejemplo:

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

árbol de pruebas dividido

información relacionada