4.3 Lists
\ConfigureList{trivlist}%
{\EndP\HCode{<glosslist>}\let\end:itm=\empty}
{\EndP\HCode{</glossdef></glossentry></glosslist>}\ShowPar}
{\end:itm\def\end:itm{\EndP\HCode{</glossdef></glossentry>}}%
\HCode{<glossentry><glossterm><remark>}\bgroup \bf}
{\egroup\HCode{</remark></glossterm><glossdef\Hnewline>}\par\ShowPar}
\ConfigureList{list}%
{\EndP\HCode{<glosslist>}\let\end:itm=\empty}
{\EndP\HCode{</glossdef></glossentry></glosslist>}\ShowPar}
{\end:itm\def\end:itm{\EndP\HCode{</glossdef></glossentry>}}%
\HCode{<glossentry><glossterm><remark>}\bgroup \bf}
{\egroup\HCode{</remark></glossterm><glossdef\Hnewline>}\par\ShowPar}
\ConfigureList{itemize}%
{\EndP\HCode{<itemizedlist>}\let\end:itm=\empty}
{\EndP\HCode{</listitem></itemizedlist>}\ShowPar}
{\end:itm\def\end:itm{\EndP\Tg</listitem>}\DeleteMark}
{\HCode{<listitem>}\par\ShowPar}
\ConfigureList{enumerate}%
{\EndP\HCode{<orderedlist\Hnewline>}\let\end:itm=\empty}
{\EndP\HCode{</listitem></orderedlist>}\ShowPar}
{\end:itm\def\end:itm{\EndP\Tg</listitem>}\DeleteMark}
{\HCode{<listitem>}\AnchorLabel\par\ShowPar}
\ConfigureList{description}%
{\EndP\HCode{<variablelist\Hnewline>}%
<.save end:itm.>\global\let\end:itm=\empty}
{<.recall end:itm.>\EndP
\HCode{</listitem></varlistentry></variablelist>}\ShowPar}
{\end:itm \global\def\end:itm{\EndP
\HCode{</listitem></varlistentry>}}%
\HCode{<varlistentry><term\Hnewline>}\bgroup \bf}
{\egroup\EndP\HCode{</term><listitem>}\par\ShowPar} -_-_-
\PopMacro\end:itm \global\let\end:itm \end:itm
-_-_-
%\LinkCommand\DBLink{ulink, url}
\LinkCommand\DBLink{link, xlink:href}
\LinkCommand\Anchor{anchor,, xml:id,,,\empty}
\Odef\Link[#1]#2#3{%
\global\let\EndLink=\empty
\if ]#3]\else \Anchor{}{#3}\EndAnchor
\gdef\M:EndLink{\HCode{<!--end anchor-->}}\fi
\if ]#1#2]\else
\EndLink\DBLink[#1]{#2}{}\global\let\EndLink=\EndDBLink\fi
}
<.fix Link for -.>
\Configure{Link}{anchor}{linkend=}{xml:id=}{} -_-_-
\Odef\M:Link[#1]#2#3{%
\global\let\M:EndLink=\empty
\if ]#3]\else \Anchor{}{#3}\EndAnchor
\gdef\M:EndLink{\HCode{<!--end anchor-->}}\fi
\if ]#1#2]\else
\EndLink\DBLink[#1]{#2}{}\global\let\M:EndLink=\EndDBLink\fi
}
<.fix M:Link for -.> -_-_-
\let\do:Link=\Link
\def\Link{\Protect\p:Link}
\def\p:Link{\futurelet\:next\choose:Link}
\def\choose:Link{\ifx -\:next \expandafter\minus:Link
\else\expandafter\do:Link\fi}
\def\minus:Link#1{\do:Link}
-_-_-
The protection is required for cases like the following one.
\documentclass{article}
\begin{document}
\section{Introduction}
\begin{figure*} \caption{fig \ref{fig}} \end{figure*}
\label{fig}
\end{document}
\let\do:M:Link=\M:Link
\def\M:Link{\Protect\p:M:Link}
\def\p:M:Link{\futurelet\:next\choose:M:Link}
\def\choose:M:Link{\ifx -\:next \expandafter\minus:M:Link
\else\expandafter\do:M:Link\fi}
\def\minus:M:Link#1{\do:M:Link}
-_-_-