diff --git a/src/preamble/my-macros/lref.tex b/src/preamble/my-macros/lref.tex index 4ec16f143289bedb8b1a0ee6a2a16dc499014bd9..4ab8b7616f5e48f680efced665dcc96f1cdd9d4f 100644 --- a/src/preamble/my-macros/lref.tex +++ b/src/preamble/my-macros/lref.tex @@ -1,5 +1,36 @@ %! Author = lorenzo -%! Date = 11/08/2022 +%! Date = 22/08/22 -\newcommand{\lref}[1]{{\csname cref@line@name\endcsname}~\hyperlink{#1}{\ref*{#1}}} \newcommand{\lrefrange}[2]{{\csname cref@line@name@plural\endcsname}~\hyperlink{#1}{\ref*{#1}}--\hyperlink{#2}{\ref*{#2}}} + +%% Use ONLY \lref NOT \lreflst +\ExplSyntaxOn +\NewDocumentCommand{\lref}{m} + { + \clist_set:Nn \l_jour_command_input_clist { #1 } + \exp_args:Nf \lreflst { \clist_use:Nn \l_jour_command_input_clist {,} } + } +\clist_new:N \l_jour_command_input_clist +\ExplSyntaxOff +\newcommand{\lreflst}[1]{% + \count255=0% + \def\do##1{\advance\count255 1 \chardef\finalitem=\count255 }% + \docsvlist{#1}% + \ifnum\count255=1 + {\csname cref@line@name\endcsname}~% + \else + {\csname cref@line@name@plural\endcsname}~% + \fi% + \count255=0% + \def\do##1{\advance\count255 1 + \ifnum\finalitem=1 + \else + \ifnum\count255=\finalitem + \space e\space% + \else + \ifnum\count255=1 + \else + ,\space% + \fi% + \fi\fi\hyperlink{##1}{\ref*{##1}}}% + \docsvlist{#1}}%