是否可以将包含证明树的第一个前提的节点的中心(如 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}