주의사항

주의사항

트리는 두 페이지로 분할되며 일부 트리 줄 사이에 텍스트 줄이 삽입됩니다. 책이 양면이므로 다음 페이지에서 트리가 왼쪽으로 이동한 것처럼 보이지만 양면 문서는 조판하지 않습니다. 왼쪽 하단 분기는 마술처럼 두 줄을 건너뛰고 (9)부터 번호를 매기기 시작합니다.

작가님은 어쩌다 이런 짓을 하신 걸까요? Prooftree가 작업을 쉽게 만들어준다면 저는 그렇게 할 것입니다.

여기에 이미지 설명을 입력하세요

답변1

Prooftree를 사용하여 이 중 일부를 수행하는 것이 이미 가능하지만 버그로 인해 아직 게시된 버전에서는 줄 번호 매기기를 6부터 시작할 수 없습니다.

주의 깊게 살펴보면 다음 split here과 같은 스타일을 사용할 수 있습니다.내 다른 대답그리고 기반으로Sašo Živanović의 코드prooftrees prooftree설명이나 페이지 나누기 또는 그 사이에 무엇이든 삽입하여 한 번 분할합니다 .

참고: 이것은 깨질 것입니다. 어디인지는 모르겠지만 깨질 것이라는 데에는 의심의 여지가 없습니다. 다른 증거는 말할 ​​것도 없고 이 증거에 대해서는 거의 테스트되지 않았습니다.

실제로 저는 prooftrees이것을 가지고 놀면서 2개의 기존 버그를 발견했습니다.없이증거를 여러 조각으로 나누는 것입니다. (이 문제는 Forest의 다음 버전이 CTAN으로 푸시된 직후 수정될 예정입니다.)

주의사항

예를 들어:

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

분할 증거나무 증거 트리

관련 정보