doc/: Add `*' option to `\descref' to suppress the page number.
[sod] / doc / sod.sty
index 457dcad..ffe2b9a 100644 (file)
 \def\desc@#1#2#3#4#5{\desc@begin{\dhead@{#1}{#2}{#3}{#4}{#5}}}
 \let\enddescribe\desc@end
 
-\def\descref#1{\@ifnextchar[{\descref@i{#1}}{\descref@ii{#1}{}}}
-\def\descref@i#1[#2]{\descref@ii{#1}{ #2}}
-\def\descref@ii#1#2#3{%
+\def\descref{\@ifstar%
+  {\descref@i{}\@gobble{}}%
+  {\descref@i{ (}{\noexpand\autopageref}{)}}}
+\def\descref@i#1#2#3#4{\@ifnextchar[%
+  {\descref@ii{#1}{#2}{#3}{#4}}%
+  {\descref@iii{#1}{#2}{#3}{#4}{}}}
+\def\descref@ii#1#2#3#4[#5]{\descref@iii{#1}{#2}{#3}{#4}{ #5}}
+\def\descref@iii#1#2#3#4#5#6{%
   \begingroup%
     \let\protect\@empty%
     \def\@uscore{-\@gobble}%
     \edef\@tempa##1{%
       \endgroup%
-      \noexpand\hyperref[#3:#1]%
+      \noexpand\hyperref[#6:#4]%
       ##1%
-      \noexpand\autopageref{#3:#1}%
+      #2{#6:#4}%
     }%
-  \@tempa{{\code{#1}}#2 (})%
+  \@tempa{{\code{#4}}#5#1}#3%
 }
 
 %%%----- That's all, folks --------------------------------------------------