If you define this new command
\newcommand{\creflastconjunction}{, and\nobreakspace}
you will get Oxford comma everywhere you use multiple references like those.
MWE:
\documentclass{article}
\usepackage[standard]{ntheorem}
\usepackage{cleveref}
\newcommand{\creflastconjunction}{, and\nobreakspace}
\begin{document}
\begin{proposition}\label{thm:roses}
Roses are red.
\end{proposition}
\begin{proposition}\label{thm:violets}
Violets are blue.
\end{proposition}
\begin{proposition}
42.
\end{proposition}
\begin{proposition} \label{thm:orchids}
Orchids are orchid.
\end{proposition}
\begin{theorem}
There exist flowers in at least three different colors.
\end{theorem}
\begin{proof}
Immediate from \cref{thm:roses,thm:violets,thm:orchids}.
\end{proof}
\end{document}
Output:

ADDENDUM
If you were wondering why you have to use \newcommand
instead of renewcommand
, this is why.
cleveref
defines, at the beginning of the document, a lot of commands depending on the language. If you don't specify any language, english
is loaded. This is the relevant part of cleveref.sty
:
\DeclareOption{english}{%
\AtBeginDocument{%
....
\def\creflastconjunction@preamble{ and\nobreakspace}%
....
Also, you can find the following lines
\AtBeginDocument{%
....
\@ifundefined{creflastconjunction}{%
\let\creflastconjunction\creflastconjunction@preamble%
}{%
....
}%
which, at the beginning of the document, assign to \creflastconjunction
the meaning of \creflastconjunction@preamble
when it has not been defined yet.
In other words, \creflastconjunction
gets defined only after \begin{document}
.
In fact, if you try to put the line
\newcommand{\creflastconjunction}{, and\nobreakspace}
inside the document, you will get an error. In this case, you would have written
\renewcommand{\creflastconjunction}{, and\nobreakspace}