我正在使用 Shidoku 表,它是一张 4x4 数独表。我试图将两个 Shidoku 表并排放置,中间有一个箭头,以显示我正在将一个表转换为另一个表。我该怎么做?
我已将代码包含在下方,您可能会注意到我已将一些信息硬编码到其中。有没有办法制作动态 Shidoku 表格,其中表格的大小会自动调整?我正在尝试在 Beamer(使用 ShareLaTeX)和 LaTeX 中执行此操作。我是 LaTeX 新手,因此非常感谢任何帮助!
\documentclass{beamer}
\usepackage{tikz}
\usepackage{array}
\usepackage{sudoku}
\newcolumntype{P}{%
\rule[-6pt]{0pt}{30pt}\centering\Huge\sffamily}p{19pt}
\newcommand\TPLine{\noalign{\hrule height 1pt}}
\newcounter{shrow}
\newenvironment{shidoku}
{\setcounter{shrow}{0}\begin{center}\begin{tabular}{!{\vrule width 2pt}P|P!{\vrule width 2pt}P|P!{\vrule width 2pt}}}
{\end{tabular}\end{center}}
\newcommand\Srow[4]{%
\ifnum\value{shrow}=0 \TPLine\fi\stepcounter{shrow}%
#1 & #2 & #3 & #4\tabularnewline
\ifnum\value{shrow}=2 \TPLine\else\ifnum\value{shrow}=4 \TPLine\else\hline\fi\fi}
\begin{document}
\frame{\titlepage}
\begin{frame}
\\The Shidoku table: (This should be a comment)
\begin{shidoku}
\Srow{1}{2}{3}{4}
\Srow{3}{4}{1}{2}
\Srow{4}{3}{2}{1}
\Srow{2}{1}{4}{3}
\end{shidoku}
\end{frame}
\end{document}
答案1
这是一种可能性,使用minipages
。
\documentclass{beamer}
\usepackage{tikz}
\usepackage{array}
\usepackage{sudoku}
\newcolumntype{P}{>{\rule[-6pt]{0pt}{30pt}\centering\Huge\sffamily}p{19pt}}
\newcommand\TPLine{\noalign{\hrule height 1pt}}
\newcounter{shrow}
\newenvironment{shidoku}
{\setcounter{shrow}{0}\begin{center}\begin{tabular}{!{\vrule width 2pt}P|P!{\vrule width 2pt}P|P!{\vrule width 2pt}}}
{\end{tabular}\end{center}}
\newcommand\Srow[4]{%
\ifnum\value{shrow}=0 \TPLine\fi\stepcounter{shrow}%
#1 & #2 & #3 & #4\tabularnewline
\ifnum\value{shrow}=2 \TPLine\else\ifnum\value{shrow}=4 \TPLine\else\hline\fi\fi}
\begin{document}
\frame{\titlepage}
\begin{frame}
The Shidoku table: (This should be a comment)
\begin{minipage}{.42\textwidth}
\begin{shidoku}
\Srow{1}{2}{3}{4}
\Srow{3}{4}{1}{2}
\Srow{4}{3}{2}{1}
\Srow{2}{1}{4}{3}
\end{shidoku}
\end{minipage}
{\Huge$\rightarrow$}
\begin{minipage}{.42\textwidth}
\begin{shidoku}
\Srow{1}{2}{3}{4}
\Srow{3}{4}{1}{2}
\Srow{4}{3}{2}{1}
\Srow{2}{1}{4}{3}
\end{shidoku}
\end{minipage}
\end{frame}
\end{document}