对 xlop 包和新命令的疑问

对 xlop 包和新命令的疑问

希望你很优秀。我是一名基础教育教师,不太擅长使用 LaTex,我想知道如何创建一个新命令来压缩我现在用来执行垂直基本加减运算的命令,我使用 xlop 包,加减运算的命令(不显示答案)如下:

$ \opadd[resultstyle = \gobble]{34}{58} $

$ \opsub[resultstyle = \gobble]{85}{35} $

我是否可以将其压缩为两个类型的命令\sum{}{}\sub{}{}它们以相同的垂直方式出现在我面前,并且答案没有写出来?非常感谢您的帮助和时间。

答案1

当然是可以的,但是没有\sum

\documentclass[twocolumn]{article}
\usepackage{xlop,xcolor}
\newcommand\globbe[1]{\phantom{#1}}
\newcommand\xsum[2]{\opadd[resultstyle=\globbe]{#1}{#2}}
\newcommand\xsumr[2]{\opadd[resultstyle=\bfseries\color{red!50!black}]{#1}{#2}}
\begin{document}
    
\opadd[resultstyle=\globbe]{34}{58}

\xsum{123}{321}

\xsumr{123}{321}

\paragraph{Note:} Change the macro name to what you  want,
                  except to those already in use, like  \verb|\sum| $=\sum$ 

    
\end{document}

姆韦

答案2

您要做的就是创建新命令。如果您有最新的 LaTeX,您应该能够使用以下方式定义新命令,例如

\NewDocumentCommand{\Sum}{mm}{%
   ...
}

(稍后我们将讨论在 ... 中输入的内容)。如果您的 LaTeX 比去年 10 月更早,则您必须使用\usepackage{xparse}来使当前命令可用于定义新命令,或者使用旧样式来定义双参数命令,即:

\newcommand{\Sum}[2]{%
  ...
}

\Sum还要注意,我选择了您的命令的名称,因为\sum它已经用于排版 ∑ 符号。

我说的是双参数命令,因为你想定义一个带有两个参数的命令。使用这种\newcommand样式,你可以通过可选参数来指示你有两个参数,该参数包含一个从 1 到 9 的数字,该数字表示你的命令具有的参数数量。¹

\NewDocumentCommand样式中,我们有一个强制参数,它为我们将要拥有的参数提供了一个模板。这使我们能够执行诸如使用可选参数、带分隔文本的参数甚至逐字参数之类的操作,以便您可以创建自己的\verb环境。还有很多,但我现在不会讨论这些。texdoc xparse如果您发现自己被要求这样做,请使用它来深入了解细节。

现在,对于我们新命令的内部部分,我们在这里输入的内容对于任何一种定义样式都是相同的。我们输入我们希望命令使用的#1内容来插入第一个参数的内容,#2第二个参数一直到#9第九个参数。现在你知道为什么我们被限制为九个参数了。否则,如果我们想要能够让#10第一个参数后面跟着0,我们就会陷入困境。所以,对于你的例子,你可以用 ... 替换

$ \opadd[resultstyle = \gobble]{#1}{#2} $

虽然我倾向于写

\opadd[resultstyle = \gobble]{#1}{#2}

所以我可以灵活地选择\Sum内联数学模式或显示数学模式。


  1. 我们稍后会看到为什么我们被限制为 9 个参数。有办法解决这个问题,但我不会在这里讨论。

相关内容