使用 xlop 时隐藏解决方案

使用 xlop 时隐藏解决方案

我正在使用xlop它来显示小学风格的加法/减法/乘法/除法问题。

例如使用时\opadd{1}{2},它将求解方程。

如何隐藏解决方案以便适合让学生解决问题?

答案1

您可以使用 更改输出(或结果)的颜色resultstyle=\color{white}。当然,这仍会打印实际输出,您可以将其复制并粘贴到文本编辑器中并使其可见,但我不认为小学生会这样做。此外,这可能仅以电子形式提供给您,而孩子们则无法使用。

以下是一个例子:

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{xlop}% http://ctan.org/pkg/xlop
\begin{document}
\opadd{1}{2} \quad
\opadd[resultstyle=\color{white},carrystyle=\color{white}]{1}{2}
\end{document}​

由于某些操作在其演示中表明进位,因此也许还建议更改carrystyle\color{white},正如我在示例中所做的那样。


隐藏细节的更“安全”的方法可能是为您想要删除的信息位提供占位符宏:

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{xlop}% http://ctan.org/pkg/xlop
\newcommand\placeholder[1]{--}% Print -- regardless of input
\newcommand\gobble[1]{}% Print <nothing> regardless of input
\begin{document}
\opadd{1234}{5678} \quad
\opadd[resultstyle=\placeholder,carrystyle=\color{white}]{1234}{5678} \quad
\opadd[resultstyle=\gobble,carryadd=false]{1234}{5678}
\end{document}​

设置carrystyle=false去掉进位元素的显示。


intermediary乘法和除法在运算中添加了所谓的元素。可以使用 设置的适当样式以类似的方式删除这些元素intermediarystyle

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{xlop}% http://ctan.org/pkg/xlop
\newcommand{\placeholder}[1]{--}% Print -- regardless of the input
\newcommand{\gobble}[1]{}% Print <nothing> regardless of the input
\begin{document}
\opmul{123}{456} \quad
\opmul[resultstyle=\color{white}]{123}{456} \quad
\opmul[resultstyle=\placeholder]{123}{456} \quad
\opmul[resultstyle=\gobble,intermediarystyle=\placeholder,intermediarystyle.3=]{123}{456} \quad
\opmul[resultstyle=\gobble,intermediarystyle=\gobble]{123}{456}

\bigskip

\opdiv{196}{8} \quad
\opdiv[resultstyle=\color{white}]{196}{8} \quad
\opdiv[resultstyle=\placeholder]{196}{8} \quad
\opdiv[resultstyle=\gobble,remainderstyle.2=\placeholder]{196}{8} \quad
\opdiv[resultstyle=\gobble,remainderstyle=\gobble]{196}{8}

\end{document}

intermediarystyle选择性移除是通过在或的基础上添加索引来实现的remainderstyle。例如,intermediarystyle.1指的是乘法中第一个中间步骤的样式。

请注意,样式对元素单独起作用。例如,resultstyle=\placeholder\opdiv{196}{8}示例中,将打印、和中--的每一个。24.5


如果您想要对创建的显示进行更多的控制xlop,您可以创建构造和相关的显示宏:

在此处输入图片描述

\documentclass{article}
\usepackage{pgf}% http://ctan.org/pkg/pgf
\usepackage{xparse}% http://ctan.org/pkg/xparse
\makeatletter
\newcommand{\@op@top}[4]{%
  \begin{tabular}[t]{@{\ }c@{\hspace*{#1}}r}
    & \pgfmathprintnumber{#3} \\
    \smash{\raisebox{.5\normalbaselineskip}{#2}} & \pgfmathprintnumber{#4} \\ \hline
}
\NewDocumentCommand{\@op@top@bottom}{m s O{1em} m m}{%
  \@op@top{#3}{#1}{#4}{#5}%
  \IfBooleanTF{#2}{}{%
    & \pgfmathsetmacro{\result}{#4\@@op#5}\pgfmathprintnumber{\result}%
  }%
  \end{tabular}%
}
\newcommand{\OpAdd}{\def\@@op{+}\@op@top@bottom{$+$}}
\newcommand{\OpSub}{\def\@@op{-}\@op@top@bottom{$-$}}
\newcommand{\OpMul}{\def\@@op{*}\@op@top@bottom{$\times$}}
\newcommand{\OpDiv}{\def\@@op{/}\@op@top@bottom{$\div$}}
\makeatother
\setlength{\parindent}{0pt}% Just for this example

\begin{document}

\OpAdd{1234}{5678} \quad \OpAdd*{1234}{5678} \quad \OpAdd[2em]{1234}{5678} \par \bigskip
\OpSub[1cm]{246}{135} \quad \OpSub*[2pt]{246}{135} \quad \OpSub{246}{135} \par \bigskip
\OpMul{12}{13} \quad \OpMul*[3ex]{12}{13} \quad \OpMul*{12}{13} \par \bigskip
\OpDiv*{1024}{16} \quad \OpDiv{1024}{16} \quad \OpDiv*[3ex]{1024}{16}

\end{document}

上述 MWE 提供了\OpAdd\OpSub\OpMul\OpDiv它们都具有以下格式:\<macro>*[<len>]{<op1>}{<op2>}其中星号*是可选的。它使用适当的运算符设置 和 。管理<op1>运算符和操作数之间的距离,而调节结果/非结果的显示(使用<op2>tabular<len>*pgf)。当然,“除”的其他构造也是可能的。

相关内容