0
\documentclass[oneside,12pt]{article}
\usepackage{geometry}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{enumitem}
\setlist[enumerate,1]{label=\bfseries\Alph*,align=left,leftmargin=*,
  labelsep=1.5em}
\setlist[enumerate,2]{label=\arabic*.,labelindent=1em,labelsep=1.5em,
  leftmargin=*}

\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem*{sol}{Solution}

\usepackage{forest}
\forestset{
  ass/.append style={
    before computing xy={l=\baselineskip},
    no edge
  },
  prooftree/.style={
    for tree={
      child anchor=north,
      parent anchor=south
    }
  },
  default preamble={
    prooftree,
    for root={baseline},
    for tree={%
      if n children=1{for children={ass}}{},
      math content
    }
  }
}

\begin{document}
\subsection*{Exercises 28}
\begin{enumerate}
\item Let's use `$\vDash$' now to abbreviate `q-entails'. Which of the
  following claims are true? Provide arguments in the style of 28.2 and 28.6
  to defend your answers.
  \begin{enumerate}
  \item $\forall x(Fx\supset Gx)\vDash\forall x(Gx\supset Fx)$
    \begin{sol}
      False. Try the following q-valuation:
      \begin{quote}
        Domain = all people\\
        Extension of `F' = all singers\\
        Extension of `G' = all people who know how to sing
      \end{quote}
      Then, the premiss is true, but the conclusion is false.
    \end{sol}
  \item $\forall x(Fx\supset Gx)\vDash\forall x(\neg Gx\supset\neg Fx)$
    \begin{sol}
      True.

      \begin{forest}
        prooftree
        [$\forall x(Fx\supset Gx)\Rightarrow_q T$,baseline
        [$\neg\forall x(\neg Gx\supset\neg Fx)\Rightarrow_q T\checkmark$,ass
        [$\exists x\neg(\neg Gx\supset\neg Fx)\Rightarrow_q T\checkmark$,ass
        [$\neg(\neg Ga\supset\neg Fa)\Rightarrow_{q^+}T$,ass
        [$\neg Ga\Rightarrow_{q^+}T$,ass
        [$\neg\neg Fa\Rightarrow_{q^+}T$,ass
        [$(Fa\supset Ga)\Rightarrow_{q^+}T\checkmark$,ass
        [$\neg Fa\Rightarrow_{q^+}T$ [*,ass]]
        [$Ga\Rightarrow_{q^+}T$ [*,ass]]]]]]]]]
      \end{forest}
    \end{sol}
  \item $\forall x\exists yLxy\vDash\forall y\exists xLyx$
    \begin{sol}
      True because the conclusion just swaps x and y in the premiss.
    \end{sol}
  \item $\forall x((Fx\wedge Gx)\supset Hx)\vDash\forall
    x(Fx\supset(Gx\supset Hx))$
    \begin{sol}
      True because the following proof tree closes.

      \begin{forest}
        prooftree
        [$\forall x((Fx\wedge Gx)\supset Hx)\Rightarrow_q T$,baseline
        [$\neg\forall x(Fx\supset(Gx\supset Hx))\Rightarrow_q T\checkmark$,ass
        [$\exists x\neg(Fx\supset(Gx\supset Hx))\Rightarrow_q T\checkmark$,ass
        [$\neg(Fa\supset(Ga\supset Ha))\Rightarrow_{q^+}T\checkmark$,ass
        [$Fa\Rightarrow_{q^+}T$,ass
        [$\neg(Ga\supset Ha)\Rightarrow_{q^+}T\checkmark$,ass
        [$Ga\Rightarrow_{q^+}T$,ass
        [$\neg Ha\Rightarrow_{q^+}T$,ass
        [$((Fa\wedge Ga)\supset Ha)\Rightarrow_{q^+}T\checkmark$,ass
        [$\neg(Fa\wedge Ga)\Rightarrow_{q^+}T\checkmark$
        [$\neg Fa\Rightarrow_{q^+}T$ [*,ass]]
        [$\neg Ga\Rightarrow_{q^+}T$ [*,ass]]]
        [$Ha\Rightarrow_{q^+}T$ [*,ass]]]]]]]]]]]
      \end{forest}
    \end{sol}
  \end{enumerate}
\end{enumerate}
\end{document}

results in an ugly page split as below.

enter image description here

How can I make the document look pretty?

  • Why are you using forest instead of amsmath? – John Kormylo Feb 29 '16 at 02:37
  • @JohnKormylo Because amsmath cannot draw a prooftree. –  Feb 29 '16 at 03:23
  • That's true but this proof tree is essentially a series of formulae one-by-one, so you could use one of the AMS maths environments rather than Forest in this case. (Everything is in the one node per line, the distances between lines are uniform, there are no edges etc.) I am 99% certain you can't split a forest. (In the sense that, yes, TeX is Turing complete, but you'd have to essentially rewrite the relevant bit of PGF/TikZ to be able to do this.) In this case, though, you can just fake it with two forest environments, surely? – cfr Feb 29 '16 at 13:35
  • By the way, your MWE will not compile for people with Forest 2. This is especially confusing since your use of default preamble seems to require it. You could just add the stuff from default preamble (except prooftree) into the prooftree style. Then your examples will work if you delete the dollar signs. The only difference will be that, in version 2, the code will unnecessarily use the prooftree style twice. (And you wouldn't need to say , ass though it wouldn't matter if you did.) – cfr Feb 29 '16 at 13:42
  • @cfr I have forks in trees in the document. It's just not visible in the picture. I also figured out that I could split a forest tree into two, but it isn't automatic. –  Mar 01 '16 at 00:19
  • Yes, that's what I meant by faking it using two environments. That wouldn't work for all cases, but it looks as if it works fine here. And I realise that you have trees with branches. But if this particular tree doesn't branch, you could use an environment to typeset it which can be automatically broken, even if that environment would not work for other trees in your document. It is a question of where and when you do the manual intervention, really. – cfr Mar 01 '16 at 00:25
  • 4
    Should this be closed in light of http://tex.stackexchange.com/questions/296692/how-do-i-split-a-forest-tree-into-two-trees-with-proper-vertical-alignment? Or do you want to delete it or what? – cfr Mar 03 '16 at 02:03
  • I'm ok with having this question closed in light of http://tex.stackexchange.com/questions/296692/how-do-i-split-a-forest-tree-into-two-trees-with-proper-vertical-alignment –  Mar 03 '16 at 02:05

0 Answers0