----------
From: Werner Icking[SMTP:[EMAIL PROTECTED]]
Sent: Wednesday, May 05, 1999 14:05
To: [EMAIL PROTECTED]
Subject: Re: Continuo realizations in MusiXTeX
> From: "Simons, Don" <[EMAIL PROTECTED]>
> Date: Tue, 4 May 1999 18:47:36 -0700
[...]
> 2. If I settle for the straight bracket with \songtop...\songbottom, the
> top of the bracket does not align correctly when the upper staff is reduced
> in size. It appears that the bottom of bracket is OK but the top is too
> low.
I append a small test source which demonstrates that this error depends
on the fact that there is an instrument above the top of \songtop with
different size as the \songtop instrument. The bottom is always ok.
-- Werner
Here's a simple fix to the above error:
The following macros are from MusiXTeX (I have marked the changes with %++MK):
\def\writ@staffs{%
\y@\staffbotmarg \global\altplancher\staffbotmarg
\rlap{\n@loop\w@st\repeat
% beginning vertical rule
\systemheight\y@
\advance\systemheight-\altplancher
\C@Inter \global\advance\systemheight-\stem@skip
\ifx\empty\b@rule
\raise\altplancher\rlap{%
\vrule\@depth\hlthick\@height\systemheight\@width\lthick}%
\fi
% 'Akkoladenklammer' don't know the english word
\g@loop
\ifnum\uppersonginstrum<\lowersonginstrum
\else
%++MK
% \global\advance\g@h-\stem@skip % remove this here line
%++MK
\global\advance\g@h-\g@b
\global\advance\g@h\Interligne \global\advance\g@b-\Internote
\raise\g@b\llap{\uplap{\offinterlineskip
\hbox{\musixfont\fourt@@n}\hbox{\vrule\@height\g@h
\@width\internote}\hbox{\musixfont\fiv@t@@n}}\kern\internote}%
\fi
\repeat
% systembarnumbers
\ifx\lin@bar\@ne
\y@\altplancher \advance\y@\systemheight \advance\y@\raisebarno
\raise\y@\rlap{\kern\shiftbarno\writebarno}%
\fi
% strut
\advance\stafftopmarg\staffbotmarg
\raise\stafftopmarg\hbox{\vrule\@height\systemheight\@width\z@}}}
\def\w@st{%
\global\noport@@\z@ \global\altitude\y@
\global\instrum@in@group=\z@
\edef\p@b{\csname p@b\romannumeral\noinstrum@nt\endcsname}%
{\g@loop
\ifnum\noinstrum@nt=\lowersonginstrum
\global\g@b\altitude
\fi
\ifnum\uppersonginstrum>\lowersonginstrum\relax
\ifnum\noinstrum@nt<\lowersonginstrum\relax
\else
\ifnum\noinstrum@nt>\uppersonginstrum\relax
\else
% \message{\the\noinstrum@nt\space in-group!}%
\global\instrum@in@group=2\internote
\fi
\fi
\fi
\repeat}%
% nullportee
\ifnum\st@ffs=\z@
\advance\y@\f@ur\Interligne
\else
% multportee
\ifnum\st@ffs>\@ne
\Comp@High\n@v\y@v \sp@pt\tw@
\advance\n@v\@cxxviii \divide\y@v\tw@
%==== the parenthesis should be shifted to the left if within akkoladen
\advance\y@v\y@
\raise\y@v\hbox{\kern -\instrum@in@group\mxsps\char\n@v\kern\instrum@in@group}%
\fi
% normal staff
{\loop \staff@lines\ifnum\noport@@<\st@ffs \repeat}%
\fi % fin du \else pour 0 portees=chant
{\g@loop
\ifnum\noinstrum@nt=\uppersonginstrum
\global\g@h\y@
%++MK
\C@Inter % added this here line
\global\advance\g@h-\stem@skip % added this here line
%++MK
\fi
\repeat}%
\ifnum\noinstrum@nt<\nbinstruments
\advance\y@\csname interinstrument\romannumeral\noinstrum@nt\endcsname
\fi}