买者自负。

买者自负。

是否可以将包含证明树的第一个前提的节点的中心(如 MWE 中的证明树)与页面的垂直中心重叠?

以下是 MWE:

\documentclass[openany,oneside,a4paper,11pt]{memoir}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[linguistics]{forest}
\usepackage[tableaux]{prooftrees}

    \begin{document}

    \begin{center}
        \begin{tableau}
            {}
            [\forall x(Fx \rightarrow Bx),just={premiss}
            [Fa,just={premiss}
            [\lnot Ba, just={negated the conclusion}
            [Fa \rightarrow Ba, just={1 $ \forall $}
            [\lnot Fa, just={4 $ \rightarrow $}, close]
            [Ba, close]
            ]
            ]
            ]
            ]
        \end{tableau}
    \end{center}

    \begin{center}
        \begin{tableau}% Adepted from Peter Smith's "LATEX for logicians: Setting tableaux using prooftrees.sty"
            {
                line no sep= 1.5cm,
                just sep= 1.5cm,
                for tree={s sep'=10mm},
                just refs right, % Set where crossreferences go
            }
            [((P \land Q) \rightarrow R), just={Premiss}, name=Prem
            [\neg(P \rightarrow (Q \rightarrow R)), just={Negated conclusion}, name=NegConc
            [P, just={From: NegConc}
            [\neg(Q \rightarrow R), just={From: NegConc},name=Alice
            [Q, just={From: Alice}
            [\neg R, s sep=30mm, just={From: Alice}
            [\neg(P \land Q), just={Alternatives from: Prem},name=Bertie
            [\neg P, close, just={Alternatives from: Bertie}
            ]
            [\neg Q, close
            ]
            ]
            [R, close]
            ]
            ]
            ]
            ]
            ]
            ]
        \end{tableau}
    \end{center}

    \end{document}

答案1

为了记录在案,我建议不是这样做既出于技术原因,也出于美学原因。

买者自负。

画面只是一个框。无论你在框中做什么,基本上都与框的整体处理方式无关。所以,我能想到的唯一方法(不使用绝对定位)是使用蛮力和无知。

centre first premise使框足够大,从而移动树,使得第一个前提的中心与左右边距之间的中点对齐,前提是框放在左边距。

这样做的结果是,如果画面开始新的段落,您必须消除center环境并添加。\noindent

您的第二个画面对于文本块来说已经太宽了。如前所述,将第一个前提置于中心会使问题变得更加严重。

showframe用于说明布局和问题。

我再次不是建议在家尝试。不得内服。请将本品放在儿童、猫和长尾小鹦鹉接触不到的地方。按原样提供。如果破损,您可以保留所有小碎片。

\documentclass[openany,oneside,a4paper,11pt]{memoir}
\usepackage{amssymb}
\usepackage{amsmath,showframe}
\usepackage[linguistics]{forest}
\usepackage[tableaux]{prooftrees}

\begin{document}
\forestset{
  declare dimen register={centring dim},
  centring dim'=0pt,
  centre first premise/.style={
    before drawing tree={
      for nodewalk={
        fake=r,
        1,
        while nodewalk valid={n}{n}
      }{
        tempdima/.process={OOw2+d{max x}{min x}{(##1-##2)/2}  },
      },
      tempdimb/.min={>OOw2+d{x}{min x}{##1+##2}}{tree},
      tikz+={
        \path (current bounding box.west) -- ++({-.5\textwidth-\forestregister{tempdimb}},0);
      }
    },
  },
}

\noindent
\begin{tableau}
  {centre first premise}
  [\forall x(Fx \rightarrow Bx),just={premiss}
  [Fa,just={premiss}
  [\lnot Ba, just={negated conclusion}
  [Fa \rightarrow Ba, just={1 $ \forall $}
  [\lnot Fa, just={4 $ \rightarrow $}, close]
  [Ba, close]
  ]
  ]
  ]
  ]
\end{tableau}

\noindent
\begin{tableau}% Adepted from Peter Smith's "LATEX for logicians: Setting tableaux using prooftrees.sty"
  {
    line no sep= 1.5cm,
    just sep= 1.5cm,
    for tree={s sep'=10mm},
    just refs right, % Set where crossreferences go
    centre first premise,
  }
  [((P \land Q) \rightarrow R), just={Premiss}, name=Prem
  [\neg(P \rightarrow (Q \rightarrow R)), just={Negated conclusion}, name=NegConc
  [P, just={From: NegConc}
  [\neg(Q \rightarrow R), just={From: NegConc},name=Alice
  [Q, just={From: Alice}
  [\neg R, s sep=30mm, just={From: Alice}
  [\neg(P \land Q), just={Alternatives from: Prem},name=Bertie
  [\neg P, close, just={Alternatives from: Bertie}
  ]
  [\neg Q, close
  ]
  ]
  [R, close]
  ]
  ]
  ]
  ]
  ]
  ]
\end{tableau}

\end{document}

笨拙的画面

相关内容