From: form@pyuxe.UUCP Subject: Re: Put something above a word ? Newsgroups: comp.text.tex Date: 1991-03-22 01:26:29 PST
I've just been writing a set of macros to produce a songbook (lyrics and
chords).  The macro to place chords above lyrics is (in LaTeX notation):

\newcommand{\Ch}[2]{\vbox{\hbox{ }\hbox{bf{#1}}\hbox{#2}}}

Paramater:  1 - chord to be set;
2 - sylable over which chord is to be right justified.

The rationale behind the macro is:  A chord is normally attached to a syllable
or syllables.  A chords placement has musical/timing significance.  Hence the
design.  I force the chords bold so that they're more easily read.

As it stands the macro has one bug:  When the macro is the first character in
a paragraph, it forces a newline after the syllable.

Christopher Rath
613-594-3026
 From: R o d Johnson (rcj@caen.engin.umich.edu) Subject: Re: Put something above a word ? Newsgroups: comp.text.tex Date: 1991-03-22 13:17:07 PST
In article <1139@pyuxe.UUCP> form@pyuxe.UUCP (71133-Christopher Rath) writes:
>I've just been writing a set of macros to produce a songbook (lyrics and
>chords).  The macro to place chords above lyrics is (in LaTeX notation):
>
>	\newcommand{\Ch}[2]{\vbox{\hbox{ }\hbox{bf{#1}}\hbox{#2}}}
>
>	Paramater:  1 - chord to be set;
>		    2 - sylable over which chord is to be right justified. . . .
>As it stands the macro has one bug:  When the macro is the first character in
>a paragraph, it forces a newline after the syllable.

I think you need to put a \leavevmode in there somewhere to avoid this.

As it stands, the macro has another, if not bug, undesirable feature.
If your #2 has no ascenders (e.g., the word "one") the chord is going
to be lower than it is over words with ascenders.  You need to put a
\strut in both \hboxes to forestall this.  A properly defined strut
will make the first \hbox{ } unnecessary as well.

--
Rod Johnson  *  rjohnson@vela.acs.oakland.edu  *  (313) 650 2315

"House, bridge, well, gate, jug, olive tree, window"  --Rilke