我使用newtheorem
命令以下列方式在书中创建练习。
\newtheorem{xca}[theorem]{Problems}
因此,我在正文中使用以下命令来创建一组练习,
\begin{xca}\label{ex1.3}{Problems}
此环境中的默认编号是罗马字母。我想将其更改为阿拉伯字母,而不必逐一查看书中的每个练习并修改枚举命令。
这是 MWE。通过创建 MWE,我注意到为什么我得到的是罗马字母而不是阿拉伯字母。我现在的问题是,我是否仍然可以在 的定义中添加一些内容,xca
以便枚举使用阿拉伯语而不是罗马字母。
\documentclass{cambridge7A}
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{xca}[theorem]{Problems}
% remove the dot and change default for enumerated lists
\def\makeRRlabeldot#1{\hss\llap{#1}}
\renewcommand\theenumi{{\rm (\roman{enumi})}}
\renewcommand\theenumii{{\rm (\alph{enumii})}}
\renewcommand\theenumiii{{\rm (\arabic{enumiii})}}
\renewcommand\theenumiv{{\rm (\Alph{enumiv})}}
\begin{document}
\begin{xca}\label{ex1.3}{Problems}
\begin{enumerate}
\item Show that it follows from the definition of a field that zero, unit, additive, and multiplicative inverse scalars are all unique.
\end{enumerate}
\end{xca}
\end{document}
答案1
要更改环境第一级的表示enumerate
,您可以重新定义\theenumi
;示例中的默认定义是
\renewcommand\theenumi{{\rm (\roman{enumi})}
因此标签编号将使用小写罗马数字;要获得阿拉伯数字,您需要将其更改为
\renewcommand\theenumi{{\rmfamily(\arabic{enumi})}}
由于您希望更改仅在环境内部生效xca
,因此一种选择是使用\AtBeginEnvironment
(从etoolbox
包中)仅在环境内部进行更改:
\usepackage{etoolbox}
\AtBeginEnvironment{xca}{\renewcommand\theenumi{{\rmfamily(\arabic{enumi})}}}
完整示例:
\documentclass{cambridge7A}
\usepackage{etoolbox}
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{xca}[theorem]{Problems}
% remove the dot and change default for enumerated lists
\def\makeRRlabeldot#1{\hss\llap{#1}}
\renewcommand\theenumi{{\rmfamily(\roman{enumi})}}
\renewcommand\theenumii{{\rmfamily(\alph{enumii})}}
\renewcommand\theenumiii{{\rmfamily(\arabic{enumiii})}}
\renewcommand\theenumiv{{\rmfamily(\Alph{enumiv})}}
\AtBeginEnvironment{xca}{\renewcommand\theenumi{{\rmfamily(\arabic{enumi})}}}
\begin{document}
\begin{xca}
\label{ex1.3}
Problems
\begin{enumerate}
\item Show that it follows from the definition of a field that zero, unit, additive, and multiplicative inverse scalars are all unique.
\end{enumerate}
\end{xca}
\begin{enumerate}
\item An item of an enumerated list outside the \texttt{xca} environment.
\end{enumerate}
\end{document}