编辑

编辑

我正在为小孩子制作工作表,让他们垂直进行个位数运算。我如何垂直设置它们以便:

  1. 一张没有答案的练习册。
  2. 带有答案的解决方案工作表。

该软件包xlop似乎只能创建解决方案工作表。[见下文。] 我认为没有办法让它排除总和。

或者有吗?

或者我应该采取其他方法吗?

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{pgf}
\usepackage{pgffor}
\usepackage{xlop}

\setlength\parindent{0pt}

\newcommand{\InitVariables}
{%
\pgfmathsetmacro{\A}{int(random(0,9)))}
\pgfmathsetmacro{\B}{int(random(0,9)))}
}

\newcommand{\VAdd}
{%
\InitVariables
\opadd[carryadd=false]{\A}{\B}}

\newcommand{\ManyVAdd}[1]
{%
\foreach \x in {1,...,#1}{\VAdd \hspace{2cm}
}}


\begin{document}

\ManyVAdd{5}

\end{document}

enter image description here

答案1

显然,我收到的手册副本比您的手册更有信息量。我建议将其退还给您的供应商并要求提供另一份。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgffor}
\usepackage{xlop}
\usepackage{parskip}
\newcommand{\InitVariables}{%
  \pgfmathsetmacro{\A}{int(random(0,9)))}
  \pgfmathsetmacro{\B}{int(random(0,9)))}
}
\newcommand{\VAdd}{%
  \InitVariables
  \opadd[carryadd=false, resultstyle=\leavegap, intermediarystyle=\leavegap]{\A}{\B}%
}
\newcommand*\leavegap[1]{\space}
\newcommand{\ManyVAdd}[1]{%
  \foreach \x in {1,...,#1}{\VAdd \hspace{2cm}
  }%
}

\begin{document}

\ManyVAdd{5}

\end{document}

problems without solutions

编辑

原始问题没有提到解决方案。但是,根据评论,您可以尝试以下方法。此代码将在文档末尾的新页面上排版解决方案。它还消除了我在其他情况下得到的坏框。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgffor}
\usepackage{xlop}
\usepackage{parskip}
\newcommand{\InitVariables}{%
  \pgfmathsetmacro{\A}{int(random(0,9)))}%
  \pgfmathsetmacro{\B}{int(random(0,9)))}%
}
\newcommand{\VAdd}{%
  \InitVariables
  \opadd[carryadd=false, resultstyle=\leavegap, intermediarystyle=\leavegap]{\A}{\B}%
  \immediate\write\writeall{%
    \string\opadd [carryadd=false]{\A}{\B}\string\hfill%
  }
}
\newcommand*\leavegap[1]{\space}
\newcommand{\ManyVAdd}[1]{%
  \foreach \x in {1,...,#1}{\VAdd \hfill
  }\par
  \immediate\write\writeall{\string\par}%
}
\AtBeginDocument{%
  \newwrite\writeall
  \immediate\openout\writeall=\jobname.all
}
\AtEndDocument{%
  \closeout\writeall
  \clearpage
  \section*{Solutions}
  \input{\jobname.all}%
}
\begin{document}
\section*{Questions}
\ManyVAdd{5}

\end{document}

questions solutions

答案2

\showsums这是一个自主开发的替代方案,由(T或)州管辖F。它可以处理多个多位加数。

\documentclass{article}
\usepackage{stringstrings,stackengine}
%%% \showsum based on http://tex.stackexchange.com/questions/219090/
%%%            writing-manual-summation-of-two-numbers/219113#219113
\newcounter{mysum}
\newcommand\showsum[1]{%
  \convertchar[q]{#1}{ }{+}%
  \setcounter{mysum}{\numexpr\thestring\relax}%
  \def\stackalignment{r}%
  \if T\showsums\edef\tmp{\themysum}\else\edef\tmp{~}\fi%
  \raisebox{-\dp\strutbox}{+\,}{\stackunder{\underline{\ \Longstack{#1}}}{%
   \tmp}}%
}
\begin{document}
\def\showsums{T}
\showsum{1 2 3 4}  $\qquad$
\showsum{23 567 34 32}  $\qquad$
\showsum{1 3567 2334 3352 567}\bigskip

\def\showsums{F}
\showsum{1 2 3 4}  $\qquad$
\showsum{23 567 34 32}  $\qquad$
\showsum{1 3567 2334 3352 567}

\end{document}

enter image description here

相关内容