Есть ли простой способ втиснуть большое лесное дерево на страницу или разделить его на две страницы?

Есть ли простой способ втиснуть большое лесное дерево на страницу или разделить его на две страницы?

Если я попытаюсь втиснуть большое лесное дерево на страницу, увеличив страницу на 3 строки, то получу следующий результат. Дерево перекрывает нижний колонтитул.

введите описание изображения здесь

Ниже приведен код. Есть ли простой способ втиснуть его на страницу, не допуская его перекрытия с нижним колонтитулом? Или есть ли способ разделить его на две страницы без сложных трюков, с которыми меня познакомили ранее?

\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={
    baseline,
    for tree={
      child anchor=north,
      parent anchor=south
    }
  }
}

\begin{document}
\subsection*{Exercises 35}
\begin{enumerate}
\item Use \textbf{QL\textsuperscript{=}} trees to show the following inferences are valid:
  \begin{enumerate}
  \item Jack is Fingers. Fingers is never caught. Whoever is never caught
    escapes justice. So Jack escapes justice.
    \begin{sol}
      \begin{forest}
        prooftree
        [{$j=f$}
        [$\neg Cf$,ass
        [$\forall x(\neg Cx\supset Ex)$,ass
        [$\neg Ej$,ass
        [$(\neg Cf\supset Ef)$,ass
        [$\neg\neg Cf$ [*,ass]] [$Ef$
        [$Ej$,ass [*,ass]]]]]]]]
      \end{forest}
    \end{sol}
  \item There is a wise philosopher. There is a philosopher who isn’t wise.
    So there are at least two philosophers.
    \begin{sol}
      \begin{forest}
        prooftree
        [$\exists x(Fx\wedge Gx)\checkmark$
        [$\exists x(Fx\wedge\neg Gx)\checkmark$,ass
        [{$\neg\exists x\exists y((Fx\wedge Fy)\wedge\neg x=y)\checkmark$},ass
        [{$\forall x\neg\exists y((Fx\wedge Fy)\wedge\neg x=y)$},ass
        [$(Fa\wedge Ga)\checkmark$,ass
        [$(Fb\wedge\neg Gb)\checkmark$,ass
        [$Fa$,ass
        [$Ga$,ass
        [$Fb$,ass
        [$\neg Gb$,ass
        [{$\neg\exists y((Fa\wedge Fy)\wedge\neg a=y)\checkmark$},ass
        [{$\forall y\neg((Fa\wedge Fy)\wedge\neg a=y)$},ass
        [{$\neg((Fa\wedge Fb)\wedge\neg a=b)\checkmark$},ass
        [$\neg(Fa\wedge Fb)$
        [$\neg Fa$ [*,ass]] [$\neg Fb$ [*,ass]]]
        [{$\neg\neg a=b$}
        [{$a=b$},ass
        [$\neg Ga$,ass [*,ass]]]]]]]]]]]]]]]]]
      \end{forest}
    \end{sol}
    \pagebreak
  \item Whoever stole the goods, knew the safe combination. Someone
    stole the goods, and only Jack knew the safe combination. Hence
    Jack stole the goods.
    \begin{sol}
      \begin{forest}
        prooftree
        [$\forall x(Sx\supset Cx)$
        [$\exists xSx\checkmark$,ass
        [$\forall x(Cx\equiv x{=}j)$,ass
        [$\neg Sj$,ass
        [$Sa$,ass
        [$(Sa\supset Ca)\checkmark$,ass
        [$\neg Sa$ [*,ass]] [$Ca$
        [$(Ca\equiv a{=}j)\checkmark$,ass
        [$(Ca\supset a{=}j)\checkmark$,ass
        [$(a{=}j\supset Ca)$,ass
        [$\neg Ca$ [*,ass]] [$a{=}j$
        [$\neg Sa$,ass [*,ass]]]]]]]]]]]]]
      \end{forest}
    \end{sol}
  \item For every number, there’s a larger one. No number is larger than
    itself. So for every number, there’s a distinct number which is
    larger than it.
    \begin{sol}
      \begin{forest}
        prooftree
        [$\forall x\exists y(Lyx)$
        [$\forall x\neg Lxx$,ass
        [$\neg\forall x\exists y(Lyx\wedge\neg y{=}x)\checkmark$,ass
        [$\exists x\neg\exists y(Lyx\wedge\neg y{=}x)\checkmark$,ass
        [$\neg\exists y(Lya\wedge\neg y{=}a)\checkmark$,ass
        [$\forall y\neg(Lya\wedge\neg y{=}a)$,ass
        [$\exists yLya\checkmark$,ass
        [$Lba$,ass
        [$\neg(Lba\wedge\neg b{=}a)\checkmark$,ass
        [$\neg Lba$ [*,ass]] [$\neg\neg b{=}a\checkmark$
        [$b{=}a$,ass
        [$Laa$,ass
        [$\neg Laa$,ass [*,ass]]]]]]]]]]]]]]
      \end{forest}
    \end{sol}
  \end{enumerate}
  \pagebreak
\item Show that the following wffs are q-logical truths
  \begin{enumerate}
  \item $\forall x\forall y(x{=}y\supset(Fx\supset Fy))$
  \item $\forall y\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
    \forall x(Lxz\wedge Fz)))$
  \end{enumerate}
  Thinking about the structure of these proofs, conclude that each way of filling out
  the following schema from §33.1 does indeed yield a q-logical truth:
  \begin{enumerate}
  \item[(LS)] $\forall v\forall w(v=w\supset(C(\ldots v\ldots v\ldots)\supset
    C(\ldots w\ldots w\ldots)))$
  \end{enumerate}

  \begin{sol}
    \leavevmode

    \begin{enumerate}
    \item $\forall x\forall y(x{=}y\supset(Fx\supset Fy))$

      \begin{forest}
        prooftree
        [$\neg\forall x\forall y(x{=}y\supset(Fx\supset Fy))\checkmark$
        [$\exists x\neg\forall y(x{=}y\supset(Fx\supset Fy))\checkmark$,ass
        [$\neg\forall y(a{=}y\supset(Fa\supset Fy))\checkmark$,ass
        [$\exists y\neg(a{=}y\supset(Fa\supset Fy))\checkmark$,ass
        [$\neg(a{=}b\supset(Fa\supset Fb))$,ass
        [$a{=}b$,ass
        [$\neg(Fa\supset Fb)\checkmark$,ass
        [$Fa$,ass
        [$\neg Fb$,ass
        [$Fb$,ass [*,ass]]]]]]]]]]]
      \end{forest}
      \enlargethispage{4\baselineskip}
    \item $\forall y\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
      \forall x(Lxz\wedge Fz)))$

      \begin{forest}
        prooftree
        [$\neg\forall y\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$
        [$\exists y\neg\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$,ass
        [$\neg\forall z(a{=}z\supset(\forall x(Lxa\wedge Fa)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$,ass
        [$\exists z\neg(a{=}z\supset(\forall x(Lxa\wedge Fa)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$,ass
        [$\neg(a{=}b\supset(\forall x(Lxa\wedge Fa)\supset
        \forall x(Lxb\wedge Fb)))\checkmark$,ass
        [$a{=}b$,ass
        [$\neg(\forall x(Lxa\wedge Fa)\supset\forall x(Lxb\wedge Fb))\checkmark$,ass
        [$\forall x(Lxa\wedge Fa)$,ass
        [$\neg\forall x(Lxb\wedge Fb)\checkmark$,ass
        [$\exists x\neg(Lxb\wedge Fb)\checkmark$,ass
        [$\neg(Lcb\wedge Fb)$,ass
        [$(Lca\wedge Fa)\checkmark$,ass
        [$Lca$,ass
        [$Fa$,ass
        [$\neg Lcb$
        [$Lcb$,ass [*,ass]]]
        [$\neg Fb$
        [$Fb$,ass [*,ass]]]]]]]]]]]]]]]]]
      \end{forest}
    \end{enumerate}
  \end{sol}
\end{enumerate}
\end{document}

решение1

Вы можете использовать \small, чтобы сделать текст меньше (но его будет сложнее читать :-) или использовать , \thspagestyle{empty}чтобы убрать номер страницы, но если вы не хотите этого делать, вы можете поиграть с пустым пространством, чтобы текст поместился (почти).

здесь я использую \enlargethispage*вместо этого, чтобы \enlaregethispageмаксимально сократить пустое пространство, а затем скорректировал пустое пространство вокруг перечислений с помощью enumitemпараметров.

введите описание изображения здесь

\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={
    baseline,
    for tree={
      child anchor=north,
      parent anchor=south
    }
  }
}

\begin{document}
\subsection*{Exercises 35}
\begin{enumerate}
\item Use \textbf{QL\textsuperscript{=}} trees to show the following inferences are valid:
  \begin{enumerate}
  \item Jack is Fingers. Fingers is never caught. Whoever is never caught
    escapes justice. So Jack escapes justice.
    \begin{sol}
      \begin{forest}
        prooftree
        [{$j=f$}
        [$\neg Cf$,ass
        [$\forall x(\neg Cx\supset Ex)$,ass
        [$\neg Ej$,ass
        [$(\neg Cf\supset Ef)$,ass
        [$\neg\neg Cf$ [*,ass]] [$Ef$
        [$Ej$,ass [*,ass]]]]]]]]
      \end{forest}
    \end{sol}
  \item There is a wise philosopher. There is a philosopher who isn’t wise.
    So there are at least two philosophers.
    \begin{sol}
      \begin{forest}
        prooftree
        [$\exists x(Fx\wedge Gx)\checkmark$
        [$\exists x(Fx\wedge\neg Gx)\checkmark$,ass
        [{$\neg\exists x\exists y((Fx\wedge Fy)\wedge\neg x=y)\checkmark$},ass
        [{$\forall x\neg\exists y((Fx\wedge Fy)\wedge\neg x=y)$},ass
        [$(Fa\wedge Ga)\checkmark$,ass
        [$(Fb\wedge\neg Gb)\checkmark$,ass
        [$Fa$,ass
        [$Ga$,ass
        [$Fb$,ass
        [$\neg Gb$,ass
        [{$\neg\exists y((Fa\wedge Fy)\wedge\neg a=y)\checkmark$},ass
        [{$\forall y\neg((Fa\wedge Fy)\wedge\neg a=y)$},ass
        [{$\neg((Fa\wedge Fb)\wedge\neg a=b)\checkmark$},ass
        [$\neg(Fa\wedge Fb)$
        [$\neg Fa$ [*,ass]] [$\neg Fb$ [*,ass]]]
        [{$\neg\neg a=b$}
        [{$a=b$},ass
        [$\neg Ga$,ass [*,ass]]]]]]]]]]]]]]]]]
      \end{forest}
    \end{sol}
    \pagebreak
  \item Whoever stole the goods, knew the safe combination. Someone
    stole the goods, and only Jack knew the safe combination. Hence
    Jack stole the goods.
    \begin{sol}
      \begin{forest}
        prooftree
        [$\forall x(Sx\supset Cx)$
        [$\exists xSx\checkmark$,ass
        [$\forall x(Cx\equiv x{=}j)$,ass
        [$\neg Sj$,ass
        [$Sa$,ass
        [$(Sa\supset Ca)\checkmark$,ass
        [$\neg Sa$ [*,ass]] [$Ca$
        [$(Ca\equiv a{=}j)\checkmark$,ass
        [$(Ca\supset a{=}j)\checkmark$,ass
        [$(a{=}j\supset Ca)$,ass
        [$\neg Ca$ [*,ass]] [$a{=}j$
        [$\neg Sa$,ass [*,ass]]]]]]]]]]]]]
      \end{forest}
    \end{sol}
  \item For every number, there’s a larger one. No number is larger than
    itself. So for every number, there’s a distinct number which is
    larger than it.
    \begin{sol}
      \begin{forest}
        prooftree
        [$\forall x\exists y(Lyx)$
        [$\forall x\neg Lxx$,ass
        [$\neg\forall x\exists y(Lyx\wedge\neg y{=}x)\checkmark$,ass
        [$\exists x\neg\exists y(Lyx\wedge\neg y{=}x)\checkmark$,ass
        [$\neg\exists y(Lya\wedge\neg y{=}a)\checkmark$,ass
        [$\forall y\neg(Lya\wedge\neg y{=}a)$,ass
        [$\exists yLya\checkmark$,ass
        [$Lba$,ass
        [$\neg(Lba\wedge\neg b{=}a)\checkmark$,ass
        [$\neg Lba$ [*,ass]] [$\neg\neg b{=}a\checkmark$
        [$b{=}a$,ass
        [$Laa$,ass
        [$\neg Laa$,ass [*,ass]]]]]]]]]]]]]]
      \end{forest}
    \end{sol}
  \end{enumerate}
  \pagebreak
\item Show that the following wffs are q-logical truths
  \begin{enumerate}[topsep=0pt]
  \item $\forall x\forall y(x{=}y\supset(Fx\supset Fy))$
  \item $\forall y\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
    \forall x(Lxz\wedge Fz)))$
  \end{enumerate}
  Thinking about the structure of these proofs, conclude that each way of filling out
  the following schema from §33.1 does indeed yield a q-logical truth:
  \begin{enumerate}[topsep=0pt]
  \item[(LS)] $\forall v\forall w(v=w\supset(C(\ldots v\ldots v\ldots)\supset
    C(\ldots w\ldots w\ldots)))$
  \end{enumerate}

  \begin{sol}
    \leavevmode
    \begin{enumerate}[topsep=0pt,itemindent=-75pt]
    \item $\forall x\forall y(x{=}y\supset(Fx\supset Fy))$

      \begin{forest}
        prooftree
        [$\neg\forall x\forall y(x{=}y\supset(Fx\supset Fy))\checkmark$
        [$\exists x\neg\forall y(x{=}y\supset(Fx\supset Fy))\checkmark$,ass
        [$\neg\forall y(a{=}y\supset(Fa\supset Fy))\checkmark$,ass
        [$\exists y\neg(a{=}y\supset(Fa\supset Fy))\checkmark$,ass
        [$\neg(a{=}b\supset(Fa\supset Fb))$,ass
        [$a{=}b$,ass
        [$\neg(Fa\supset Fb)\checkmark$,ass
        [$Fa$,ass
        [$\neg Fb$,ass
        [$Fb$,ass [*,ass]]]]]]]]]]]
      \end{forest}
      \enlargethispage*{4\baselineskip}
    \item $\forall y\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
      \forall x(Lxz\wedge Fz)))$

      \begin{forest}
        prooftree
        [$\neg\forall y\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$
        [$\exists y\neg\forall z(y{=}z\supset(\forall x(Lxy\wedge Fy)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$,ass
        [$\neg\forall z(a{=}z\supset(\forall x(Lxa\wedge Fa)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$,ass
        [$\exists z\neg(a{=}z\supset(\forall x(Lxa\wedge Fa)\supset
        \forall x(Lxz\wedge Fz)))\checkmark$,ass
        [$\neg(a{=}b\supset(\forall x(Lxa\wedge Fa)\supset
        \forall x(Lxb\wedge Fb)))\checkmark$,ass
        [$a{=}b$,ass
        [$\neg(\forall x(Lxa\wedge Fa)\supset\forall x(Lxb\wedge Fb))\checkmark$,ass
        [$\forall x(Lxa\wedge Fa)$,ass
        [$\neg\forall x(Lxb\wedge Fb)\checkmark$,ass
        [$\exists x\neg(Lxb\wedge Fb)\checkmark$,ass
        [$\neg(Lcb\wedge Fb)$,ass
        [$(Lca\wedge Fa)\checkmark$,ass
        [$Lca$,ass
        [$Fa$,ass
        [$\neg Lcb$
        [$Lcb$,ass [*,ass]]]
        [$\neg Fb$
        [$Fb$,ass [*,ass]]]]]]]]]]]]]]]]]
      \end{forest}
    \end{enumerate}
  \end{sol}
\end{enumerate}
\end{document}

Связанный контент