Вам необходимо загрузить либо пакет ntheorem, либо пакет amsthm, если вы хотите, чтобы cleveref различал различные среды, подобные теореме, в которых используется один и тот же счетчик. Эти пакеты хранят дополнительную информацию о теоремоподобных средах, которые использует cleveref. Обратите внимание, что они должны быть загружены до cleveref.
Использование ntheorem (которое долгое время было гиперреф-совместимым с помощью опции hyperref) или amsthm (также гиперреф-совместимым) вместе с cleveref - гораздо лучшее решение, чем использование необязательного аргумента для \ label. И нет необходимости возвращаться к \ трех. Если вы все равно используете ntheorem, то \ cref будет делать все, что делает \ thread, и многое другое (множественные ссылки, настраиваемое форматирование и т. Д.). Фактически, cleveref переопределяет \ tref как псевдоним для \ cref, когда ntheorem загружается с параметром tref.
(Существует хитрость - также описанная в умном руководстве), которая использует пакет aliascnt для различения теоремоподобных сред без ntheorem или amsthm. Но это требует больше работы и, честно говоря, зачем беспокоиться, когда простой \ usepackage {ntheorem} или \ usepackage {amsthm} отлично выполнит эту работу?)