我需要在 plainTeX 中将和弦字母放在歌词上方。我唯一能做的就是将所需的和弦字母放在 \hbox 中,然后我使用“\raise 10 pt \hbox{C}”将其向上移动。但它看起来很糟糕,我需要下面的文本是实心的,没有间隙。如果我可以将和弦字母稍微向左移动,以便将其放在我需要的字母的正上方,那就太好了。例如,“... lyrics ly\chord{C}rics lyrics ...”应该保持第二个单词“lyrics”实心,并将和弦字母“C”放在下面单词中字母“y”的正上方。这可能吗?
答案1
使用\halign
。
\def\chord#1#2{%
\leavevmode % in case this starts a paragraph
\vbox{% accommodate the alignment
\offinterlineskip % disable the standard interline spacing
\ialign{%
##\cr % standard template
\hidewidth\fiverm #1\hidewidth\cr % the chord should occupy no horizontal space
\strut#2\cr
}%
}%
}
lyrics l\chord{C}{y}rics
l\chord{C}{y}rics lyr\chord{D7}{i}cs
\bye
答案2
使用\rlap
:
\def\chord#1{\leavevmode\raise2ex\rlap{\strut\fiverm#1}}
lyrics l\chord{C}{y}rics
l\chord{C}{y}rics lyr\chord{D7}{i}cs
\bye