
Я хотел бы настроить способ обработки множественных ссылок в cleveref
пакете. Я хотел бы иметь форму (eq0, eq1, eq3, eq4)
, т.е. разделенную запятыми,пока ненабор ссылок образует полный диапазон, в этом случае я бы хотел использовать короткое тире, например, (eq0--eq3)
вместо (eq0, eq1, eq2, eq3)
.
Однако я не использую окружение \begin{equation} ... \end{equation}
. Я использую следующий макрос: \newcommand{\nt}{\addtocounter{equation}{1}\tag{\theequation}}
и \begin{equation*} ... \nt \end{equation*}
. Если бы это были только уравнения, я мог бы просто перейти на использование *
версии без -d. Однако есть и другие причины, по которым я хочу продолжать использовать этот \nt
макрос.
Ниже приведен минимальный рабочий пример. (Извините, что он довольно длинный, но я сделал его настолько коротким, насколько смог!)
\documentclass[]{article}
\usepackage{amsmath,cleveref}
\newcommand{\nt}{\refstepcounter{equation}\tag{\theequation}}
\crefformat{equation}{(#2#1#3)}
\crefmultiformat{equation}{(#2#1#3}{, #2#1#3)}{, #2#1#3}{, #2#1#3)}
\crefrangeformat{equation}{(#3#1#4--#5#2#6)}
\begin{document}
\setcounter{equation}{-1}
\begin{equation}\label{0} 0\end{equation}
\begin{equation}\label{1} 1\end{equation}
\begin{equation}\label{2} 2\end{equation}
\begin{equation}\label{3} 3\end{equation}
\begin{equation}\label{4} 4\end{equation}
\begin{equation*}\nt\label{5} 5\end{equation*}
\begin{equation*}\nt\label{6} 6\end{equation*}
\begin{equation*}\nt\label{7} 7\end{equation*}
\begin{equation*}\nt\label{8} 8\end{equation*}
\begin{equation*}\nt\label{9} 9\end{equation*}
\texttt{\textbackslash cref\{0,1,3,4\}}: \cref{0,1,3,4}
%this prints the desired `(0, 1, 3, 4)`
\texttt{\textbackslash cref\{5,6,8,9\}}: \cref{5,6,8,9}
%this prints the undesired `(5--9)`
\end{document}
Кажется, что он cleveref
как-то не знает, что это не полный диапазон, когда я использую макрос \nt
. Может быть, это как-то связано с тем, чтобы cleveref
смотреть насреда, а неприлавок?
Редактировать.
Мико, похоже, предложил использовать \refstepcounter
и разместить \nt
перед \label
. Они не дали дополнительных подробностей, но я все равно внес указанные выше изменения.