逻辑树谜题

逻辑树谜题

我想构建一个 8 拼图树。通过使用logicpuzzleforest我得到了这一点:

\documentclass{article}
\usepackage{logicpuzzle}
\usepackage{forest}

\newenvironment{eight}[1][]{%
\begin{logicpuzzle}[rows=3,columns=3,#1]
\begin{puzzleforeground}
\framepuzzle
\end{puzzleforeground}
}{\end{logicpuzzle}}

\begin{document}
\begin{forest}
[\begin{eight}
\setrow{3}{1,4,2}
\setrow{2}{6,,5}
\setrow{1}{7,3,8}
\end{eight}
[\begin{eight}
\setrow{3}{1,4,2}
\setrow{2}{,6,5}
\setrow{1}{7,3,8}
\end{eight} 
\begin{eight}
\setrow{3}{1,,2}
\setrow{2}{6,4,5}
\setrow{1}{7,3,8}
\end{eight} 
\begin{eight}
\setrow{3}{1,4,2}
\setrow{2}{6,5,}
\setrow{1}{7,3,8}
\end{eight} 
\begin{eight}
\setrow{3}{1,4,2}
\setrow{2}{6,3,5}
\setrow{1}{7,,8}
\end{eight}]]
\end{forest}
\end{document}

但我得到的结果存在这些问题:

  • 数字没有出现在网格内
  • 连接起始配置和接下来四行的行显示不正确
  • 整个绘图向右移动并超出页面

逻辑谜题树的结果

答案1

此代码有助于解决这些问题。

b

geometry包有助于为树设置更好的边距并使其适合页面。还添加了 scale=0.9, width= 3cm,控制拼图的大小及其分离的功能。

下一行有 12 个谜题。尝试一下\documentclass[landscape]{article}

\begin{forest}for tree={l sep=4em}从父节点添加额外的垂直空间。

将环境保存eight在盒子中并使用它们来构建树解决了数字消失的问题(并简化了树的代码)。

\documentclass{article}

\usepackage[left=3.00cm, right=3.00cm, top=4.00cm, bottom=3.00cm]{geometry}

\usepackage{logicpuzzle}
\usepackage{forest}

\newenvironment{eight}[1][]{%
    \begin{logicpuzzle}[rows=3,columns=3, scale=0.9, width= 3cm, #1]
        \begin{puzzleforeground}
            \framepuzzle    
    }{\end{puzzleforeground}\end{logicpuzzle}}

\newsavebox{\tempi}
\newsavebox{\tempii}
\newsavebox{\tempiii}
\newsavebox{\tempvi}
\newsavebox{\tempv}
\sbox{\tempi}{%
\begin{eight}
    \setrow{3}{1,4,2}
    \setrow{2}{6,,5}
    \setrow{1}{7,3,8}
\end{eight}
}

\sbox{\tempii}{%
\begin{eight}
    \setrow{3}{1,4,2}
    \setrow{2}{,6,5}
    \setrow{1}{7,3,8}
\end{eight}
}

\sbox{\tempiii}{%
\begin{eight}
    \setrow{3}{1,,2}
    \setrow{2}{6,4,5}
    \setrow{1}{7,3,8}
\end{eight}
}
\sbox{\tempvi}{%
\begin{eight}
    \setrow{3}{1,4,2}
    \setrow{2}{6,5,}
    \setrow{1}{7,3,8}
\end{eight}
}
\sbox{\tempv}{%
\begin{eight}
    \setrow{3}{1,4,2}
    \setrow{2}{6,3,5}
    \setrow{1}{7,,8}
\end{eight}
}

\begin{document}
    \centering
    \begin{forest}for tree={l sep=4em}
        [\usebox{\tempi}
        [\usebox{\tempii}][\usebox{\tempiii}][\usebox{\tempvi}][\usebox{\tempv}]
        ]
    \end{forest}
\end{document}

相关内容