買い手責任負担...

買い手責任負担...

ツリーは 2 つのページに分割され、テキスト行がツリー行の間に挿入されます。本は両面印刷なので、次のページではツリーが左にずれているように見えますが、私は両面印刷の文書をタイプセットしません。左下のブランチは魔法のように 2 行スキップし、(9) から番号付けを開始します。

著者は一体どうやってこれをやったのでしょうか? プルーフツリーで簡単にできるなら、私もそうします。

ここに画像の説明を入力してください

答え1

プルーフツリーを使用すると、すでにこの一部を行うことができますが、バグのため、公開バージョンではまだ行番号を 6 から開始することはできません。

split here気をつければ、私の他の答えそしてそれに基づいてサショ・ジヴァノヴィッチのコード文章を分割し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}

分割証明ツリー 証明ツリー

関連情報