Labels and Cross-references
Slightly modified \xlabel{...} is used in place of \label{...} with the same
functionality. In the same vein, \xref{...} takes the role of \ref{...}. The
cross-ref command, \xref{...} accepts more than one label as its argument and the
output will be sorted and compressed if needed.
As you’re aware, two TeX runs are needed to fix cross-references to newly inserted objects correctly.
Cross-ref commands:
\xref{clm1}⟹ Claim 3.2 [Default string + counter]\xref{clm1,clm2}⟹ Claims 3.2 and 3.3 [Default string + counters]\xref{clm3,clm2,clm4}⟹ Claims 3.2—3.4 [Default string + counters, sorted and compressed]\nxref{clm1}⟹ 3.2 [Only counter]\xref[env=Postulate]{clm1}⟹ Postulate 3.2 [Custom string + counter]
A command to avoid sorting citations in a particular \xref command:
\xref[nosort]{label1,label2}
Global commands:
\norefsort⟹ Do not sort the ref values in the document.\refsort⟹ Sort the ref values in the document (default).
Cross-ref Options
id=<id>⟹ Add custom id (applicable only during XML generation).num=<number>⟹ Add custom number instead of default counter.env=<env string>⟹ Add custom environment string.nolink⟹ Remove link.noenv⟹ Remove string.noctr⟹ Remove counter.sort⟹ Sort the values in current xref command alone (in a non-sorted surrounding).nosort⟹ Do not sort the values in current xref command alone (in a sorted surrounding).sfx⟹ Add suffix to the counter.pfx⟹ Add prefix to the counter.linkstr={<link string>}⟹ Change default string in a multi-label\xref{...}command. Default isand, at times, users might need to change it tothroughand the like.range⟹ Provides range of references if labels for begin and end refs are provided, separated by comma.
Examples for ranged xref
\xref[range]{fig1,fig4}⟹ Figs. 1—4\xref[range]{eqn1,eqn5}⟹ Eqs. (1)—(5)\nxref[range]{eqn1,eqn5}⟹ (1)—(5) [without the string Eqs. ]\xref[range,linkstr={ through }]{fig1,fig8}⟹ Figs. 1 through 8\nxref[linkstr={ through }]{eqn1,eqn2,eqn3,eqn4}⟹ (1) through (4) [norangeoption used, hence need to provide all labels.]\nxref[range,linkstr={ through }]{eqn1,eqn4}⟹ (1) through (4) [rangeoption used, hence need to provide only begin and end labels alone,linkstrchanged.]