xsim、计数器和 TikZ

xsim、计数器和 TikZ

我之前的帖子,问一下如何为xsim包保存随机数。

现在我想知道当将这些随机数插入到图片中时该如何做到这一点TikZ

我的计数器怎么了?为什么它只打印最后练习的答案?

\documentclass{article}

\usepackage{pgf}

\usepackage{pgffor}
    \pgfmathsetseed{\number\pdfrandomseed}

\usepackage{tikz}

\usepackage{xsim}



\newcounter{ExNum}

\newcommand{\InitVariables}{%
    \stepcounter{ExNum}
    \pgfmathrandominteger{\IntegerPoint}{3}{10}
        \expandafter\edef\csname IntegerPoint\number\value{ExNum}\endcsname{\IntegerPoint}
    }


\newcommand{\NumberLine}{%

    \begin{tikzpicture}[xscale=1]
    
    \draw[thick] (0,0)--(10,0);
    
    \foreach \x in {0,1,2}{
        \node at (\x,-1) {\large \x};
        }

    \foreach \x in {0,1,2,...,10}{
        \draw[thick] (\x,-0.35)--(\x,0.35);
        }

        
    \filldraw [red, opacity=0.4]
          (\csname IntegerPoint\number\value{ExNum}\endcsname,0) circle (0.15cm) ;
    
    \end{tikzpicture}
    }



\newcommand{\Exercise}{%
    \NumberLine
    }

\newcommand{\Solution}{%
    $\csname IntegerPoint\number\value{ExNum}\endcsname$    
    }




\setlength{\parindent}{0cm}

\begin{document}

Where is the dot?

\InitVariables
\begin{exercise}
    \Exercise
    \end{exercise}
    
\begin{solution}
    \Solution
    \end{solution}


\InitVariables
\begin{exercise}
    \Exercise
    \end{exercise}
    
\begin{solution}
    \Solution
    \end{solution}


\printallsolutions

\end{document}

在此处输入图片描述

答案1

与上一个问题一样,这是一个扩展和时间安排的问题。两种情况下的解决方案都是\Solution\Solution指的是计数器的当前值,ExNum不幸的是,在打印解决方案时,所有练习的值都是相同的:即在之前设置的最后一个值\printallsolutions

我们可以尝试扩展解决方案环境的主体。但我建议使用另一种解决方案。不要使用新的计数器,而是使用对练习/解决方案对来说独一无二的东西。xsim已经提供了一些东西:\ExerciseID

下面是使用该代码的修改版本:

\documentclass{article}

\usepackage{tikz}
\pgfmathsetseed{\number\pdfrandomseed}

\usepackage{xsim}

\newcommand{\InitVariables}{%
  \pgfmathrandominteger{\IntegerPoint}{3}{10}%
}

\newcommand{\NumberLine}{%
  \begin{tikzpicture}[xscale=1]
    \draw[thick] (0,0)--(10,0);
    \foreach \x in {0,1,2}{
      \node at (\x,-1) {\large \x};
    }
    \foreach \x in {0,1,2,...,10}{
      \draw[thick] (\x,-0.35)--(\x,0.35);
    }
    \filldraw [red, opacity=0.4] (\IntegerPoint,0) circle (0.15cm) ;
  \end{tikzpicture}
}

\newcommand{\Exercise}{%
  \NumberLine
  \expandafter\xdef\csname IntegerPoint\ExerciseID\endcsname{\IntegerPoint}%
}

\newcommand{\Solution}{%
  $\csname IntegerPoint\ExerciseID\endcsname$%
}

\begin{document}

Where is the dot?

\InitVariables
\begin{exercise}
  \Exercise
\end{exercise}
    
\begin{solution}
  \Solution
\end{solution}

\InitVariables
\begin{exercise}
  \Exercise
\end{exercise}
    
\begin{solution}
  \Solution
\end{solution}

\printallsolutions

\end{document}

在此处输入图片描述

相关内容