在自定义列表环境中应用命令

在自定义列表环境中应用命令

我正在尝试重新定义一个enumerate在使用中看起来像这样的环境:

\begint{customItemize}
\item $-6x^{2}-2x=-2x(3x+1)$
\item $-5x+15=-5(x-3)$
\end{customItemize}

相当于这样的

\begin{enumerate}
\item \fbox{$-6x^{2}-2x=-2x(3x+1)$}
\item \fbox{$-5x+15=-5(x-3)$}
\end{enumerate}

除了 之外\fbox,我可能还想使用其他(自定义)命令。重要的是这发生在环境中,以便

\item Some stuff
\item Some more stuff 

部分代码可以轻松复制/粘贴到其他列表环境。

这能做到吗?

我尝试过类似的事情,但它不起作用,我认为这是因为我不知道如何处理的参数\item

\newenvironment{customItemize}{%
                \let\olditem\item% 
                \renewcommand\item[2]{ \olditem\fbox{##2} }%
                \begin{enumerate}}{\end{enumerate}%
}

数学模式不知怎么地中断了fbox……但我有点不知道该怎么做。同样,我认为这是我不理解“参数”的原因\item

答案1

问题不在于数学模式。而在于 fbox。\item 的传统工作方式是将某种标识 blivet 放在行首,然后打印 \item 后面的文本。但要使用 fbox,您需要将所有文本作为 \fbox 的参数,即括在括号 {} 中。如果没有括号,则只有文本的第一个字符会作为 \fbox 的参数,这不是您想要的。(我还更正了环境定义中的拼写错误)。因此,执行此操作的方法是将项目的文本括在括号 {} 中。这将使您的环境正常工作,并且(虽然是非标准的)不会因复制和粘贴到另一个环境而中断。我在下面展示了它,两个项目(非数学和数学)首先放在您的环境中,然后放在正常的 itemize 环境中。

\documentclass{article}
\newenvironment{customItemize}{%
                \let\olditem\item% 
                \renewcommand\item[1]{ \olditem\fbox{##1} }%
                \begin{enumerate}}{\end{enumerate}%
}

\begin{document}
Here we go
\begin{customItemize}
\item {Testing}
\item {$y = x^2$}
\end{customItemize}

\begin{itemize}
\item {Testing}
\item {$y = x^2$}
\end{itemize}

\end{document}

相关内容