<..elements for latex divs..>
\def\Get:SecAnchor#1#2#3{%
<./edef /@currentlabel.>%
\xdef\cur:th{<.haddr prefix.>\last:haddr}%
<.get :currentlabel.>%
\edef\:SecAnchor{\cur:th\:currentlabel}%
}
-_-_-
We redefine \@Roman for \thepart to have the same number of entries as \Alph.
<../edef /@currentlabel..>
\bgroup \def\@Roman##1{%
\ifcase##1\or I\or II\or III\or IV\or V\or VI\or
VII\or VIII\or IX\or X\or XI\or XII\or XIII\or
XIV\or XV\or XVI\or XVII\or XVIII\or XIX\or XX\or
XXI\or XXII\or XXIII\or XXIV\or XV\or XVI\else
\expandafter\uppercase\expandafter{\romannumeral ##1}\fi}%
\a:currentlabel
\edef\:temp{#2}\ifx \:temp\empty
\else \global\let\@currentlabel=\:temp\fi
\egroup
-_-_-
<..cross ref..>+
\NewConfigure{currentlabel}{1}
-_-_-
The \@currentlabel may hold a \uppercase due to \thepart that has a \@Roman in it. Tried to go for ‘\cur:lbl{#1}%’, but that was a problem for cross references with labels of sections, because \label uses ‘\cur:lbl{}’.
<..get :currentlabel..>
\let\:tempa=\uppercase \def\uppercase##1{##1}\cur:lbl{}%
\let\uppercase=\:tempa
-_-_-
How the above ‘\global\let\cur:th|=\last:haddr’ work with the change in \refstepcounter?