
A árvore é dividida em duas páginas e linhas de texto são inseridas entre algumas linhas da árvore. A árvore parece deslocada para a esquerda na próxima página porque o livro tem frente e verso, mas eu não digito documentos frente e verso. O ramo inferior esquerdo pula duas linhas magicamente e começa a numerar em (9).
Como o autor fez isso? Se as árvores de prova tornassem isso mais fácil, eu faria isso.
Responder1
Já é possível fazer isso com as árvores de prova, embora devido a um bug ainda não seja possível iniciar a numeração das linhas em 6 com a versão publicada.
Se você for cuidadoso, poderá usar o split here
estilo incluído emminha outra respostae com base emCódigo de Sašo Živanovićpara dividir uma prooftrees
prooftree
vez, interpondo alguma explicação ou uma quebra de página ou qualquer outra coisa.
Nota: Isso IRÁ quebrar. Não sei onde, mas não há absolutamente nenhuma dúvida de que irá quebrar. Quase não é testado nesta prova, muito menos em outras.
Na verdade, descobri 2 bugs existentes ao prooftrees
brincar com isso, mesmosemdividindo a prova em pedaços. (Isso será corrigido logo após a próxima versão do Forest ser enviada ao CTAN.)
Advertência emptor...
Por exemplo:
\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}