+@c -*-texinfo-*-
+
+@c Only reference in HTML.
+@macro htmlref {NAME}
+@ifhtml
+@ref{\NAME\}@c
+@end ifhtml
+@ifnothtml
+\NAME\@c
+@end ifnothtml
+@end macro
+
+
+@c Reference ENGraver description
@ifnottex
@macro reng {word}
@ref{ (lilypond-internals)\word\, \word\ }
@end iftex
+@c Reference GROB description
@ifnottex
@macro rgrob {word}
@ref{ (lilypond-internals)\word\, \word\ }
@end iftex
+@c Reference INTernals document
@ifnottex
@macro rint {word}
@ref{ (lilypond-internals)\word\, \word\ }
@end macro
@end iftex
+
+@c Reference GLOSsary
+@macro rglos {NAME}
+@ifhtml
+@c ugh: @ref assumes that external refs are split documents too
+@uref{../music-glossary.html#\NAME\,\NAME\}@c
+@end ifhtml
+@ifnothtml
+\NAME\@c
+@end ifnothtml
+@end macro
+
+
@ifnottex
@macro texisharp {word}
#
@iftex
@macro texisharp {word}
@tex
-$\\sharp$
+$\\sharp$%
@end tex
@end macro
@end iftex
@iftex
@macro texiflat {word}
@tex
-$\\flat$
+$\\flat$%
@end tex
@end macro
@end iftex
@iftex
-@macro separate
-
+@macro separate
+@c I want some space over here, not silly characters.
@tex
-\\hbox to\\hsize{\\hfill\\smallrm*\\textrm*\\smallrm*\\hfill}
@end tex
-
@end macro
@end iftex
@macro separate
@quotation
-@quotation
-@quotation
-@quotation
-@quotation
-@quotation
-***
-@end quotation
-@end quotation
-@end quotation
-@end quotation
-@end quotation
@end quotation
@end macro
@end ifinfo
@ifhtml
@macro separate
@html
-<p></p><center>*<font size=+1>*</font>*</center><br>
+<p></p><br><br>
@end html
@end macro
@end ifhtml
-@c netscape 4.x doesn't handle html chars 4.0 :-(
-@c <p></p><center>♥</center><br>
-@c <p></p><center><font size=-1>*</font><font size=0>*</font><font size=-1>*</font></center><br>
-@ignore
-
-@c Huh, do outline mode and texinfo really fight eachother?
-@c Outline can only use spaces to indent topic headers
-@c (or bullets, but then topics can't start with `@c').
-@c Texinfo can't have spaces in macro names.
-
-@macro c_ {word}
-\word\
-@node \word\
-@section \word\
+@c dup?
+@ifhtml
+@macro internalsref{NAME}
+@uref{../lilypond-internals/\NAME\.html,\NAME\}
+@cindex \NAME\
@end macro
+@end ifhtml
-@macro c__ {word}
-\word\
-@menu
-* \word\::
-@end menu
-
-@node \word\
-@subsection \word\
+@ifinfo
+@macro internalsref{NAME}
+@inforef{\NAME\,,lilypond-internals}
+@cindex \NAME\
@end macro
+@end ifinfo
-@macro c___ {word}
-\word\
-@node \word\
-@unnumberedsubsubsection \word\
+@iftex
+@macro internalsref{NAME}
+@cindex \NAME\
+@code{\NAME\}
@end macro
+@end iftex
-@macro c_ {word}
-@end macro
-@end ignore
+@iftex
+@macro seeinternals{NAME}
+internals document, @internalsref{\NAME\}
+@end macro
+@end iftex
+@ifnottex
+@macro seeinternals{NAME}
+@internalsref{\NAME\}
+@end macro
+@end ifnottex