esink@turia.dit.upm.es (03/20/91)
I need a way, I don't care if it's TeX or LaTeX, to align combinations
of letters directly above or below each other. I'm envisioning a
macro, but then I don't know a lot about TeX/LaTeX.
Something like this :
T\above{D#}wist and S\above{G#}hout, s\above{C#}hout shout shout
should produce :
D# G# C#
Twist and Shout, shout shout shout
The purpose is to put music chord names above words of a song. I need
the ability to put chord names of arbitrary length (G#min7 for example),
and the ability to put them at arbitrary places (ie in the middle of a
word).
My understanding of TeX is that it can do anything, so the question
should always be 'How can I do it ?' instead of 'Can I do it ?'...
So, How can I do this ?
Thanks in advance,
Eric
Eric W. Sink | Putting the phrase |All opinions
Departamento de Telematica | "Frequently Asked" |are mine and
Universidad Politecnica de Madrid| in your kill file is |not necessarily
esink@turia.dit.upm.es | not recommended. |yours.haccme@milton.u.washington.edu (Thomas Ridgeway) (03/21/91)
Regarding putting musical chord notation above the lyrics for a song:
% TeX code begins here
% quick hacks for above-line display of short bits of text
\newdimen\bangback
\def\bangup#1{\setbox0\hbox{#1}\bangback=\wd0\raise\baselineskip\box0\hskip -\bangback}
Suppose that we are just running along in the midst of a paragraph, and we
want to do what you propose with setting some chord notation above the text:
this is the text with o\bangup{G\#}verset bits of stuf\bangup{A}f. We would
just go ahead and bang it up there.
Probably most likely you would want to put it into a display line, rather
than into a paragraph, or along with typeset music.
\centerline{I don't think th\bangup{B$\flat$}at the display line is a problem}
\noindent but there is just no telling what kind of interaction you might get
with the macros that would be setting the music (if that is what one were doing).
I am not too sure about the merits of the negative hskip versus another way
of hiding the width; mostly what we want to do is prevent the raised portion
from becoming separated from its mainline text at the beginning or end of
a line. Also, raising the chords an entire baselineskip above the mainline
may be just a tad too far, but this ought to give you something to get started
with.
\bye
Tomform@pyuxe.UUCP (thomas a rowe) (03/21/91)
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-3026rcj@caen.engin.umich.edu (R o d Johnson) (03/22/91)
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
jg@prg.ox.ac.uk (Jeremy Gibbons) (03/22/91)
> I need a way, I don't care if it's TeX or LaTeX, to align combinations > of letters directly above or below each other. Try \def\above#1{\leavevmode\raise2ex\rlap{#1}} (untested!) Jeremy *-----------------------------------------------------------------------* | Jeremy Gibbons (jg@uk.ac.oxford.prg) Funky Monkey Multimedia Corp | *-----------------------------------------------------------------------*