Christian Mondrup wrote
>[snip]
>
>I've obviously expressed myself unclearly. My wish for change does not
>refer to the macro \bnrs but to the fortran routine calculating
>deviations from the initial bar number position. This routine checks for
>potential clashes between a barnumber and a continuation slur. If a
>clash is determined the fortran routine inserts an addition invocation
>of '\def\raisebarno'. This new positioning of the barnumber remains in
>effect either until the end of the piece or until yet another
>'\def\raisebarno' is invocated.
>
>My suggestion is that the existing value of \raisebarno is stored before
>invocating '\def\raisebarno'. In the subsequent bar, if no potential
>clash is calculated, then '\def\raisebarno' should be invoked once more
>with the stored setting as argument, for example:
>
>% Bar count 14
>%
>% temporarily modify \raisebarno in order to
>% avoid clash with continuation slur
>%
>\def\raisebarno{5.5\internote}%
>\alaligne
>\def\raisebarno{3.5\internote}%
>\pnotes{2.00}\qup G&\ql{'b}&\ibl3{''a}0\tslur0a\qb3a\en%
>\pnotes{1.41}&&\nbbl3\qb3{'g}\tbl3\qb3{'a}\en%
>\pnotes{1.41}&\qp&\qlp{''b}\en%
>\pnotes{1.41}\ibbu1{'A}2\bigfl A\qb1A\tbu1\qb1B&&\en%
>\pnotes{1.41}\qu{'C}&\qp&\en%
>\pnotes{2.00}\sk\qu C&\sk\bigna{'e}\ql e&\ibl3{'d}4\isluru0d\bigfl d%
>\qb3d\tslur0c\qb3c\tbl3\qb3{'b}\en%
>% Bar 15
>% Bar count 15
>\xbar
>%
>% restore to initial setting of \raisebarno
>%
>\def\raisebarno{5mm}%
>\pnotes{2.00}\ql{'F}\sk\ds\cl F\ql E\sk\ds\cu D&\ibl2{'d}{-1}\qb2f%
>\isluru0c\qb2c\tslur0b\bigna b\qb2b\tbl2\qb2d\ibu2b{-1}\qb2{`g}%
>\islurd0{'c}\qb2c\tslur0d\qb2d\bigsh{`f}\tbu2\qb2f&\ibl3{'f}1\bigfl{'a}%
>\qb3a\isluru0{`e}\qb3e\tslur0d\qb3d\bigna{'b}\tbl3\qb3b\ibl3a0\qb3c%
>\isluru0{`g}\qb3g\tslur0f\bigsh f\qb3f\tbl3\qb3{'c}\en%
I think I understand the words, but it seems that you're asking for
something that PMX already does. As you rightly state, it is true that PMX
may redefine \raisebarno in order to avoid collision with a linebreak tie,
and that this new positioning of the bar number remains in effect either
until the end of the piece or until yet another '\def\raisebarno' is
invoked. What you don't state, but is also true, is that immediately after
the shifted bar number is posted (via \alaligne), PMX does issue another
redefinition of \raisebarno, back to the PMX default value. That's what
happens in the lines
\def\raisebarno{5.5\internote}%
\alaligne
\def\raisebarno{3.5\internote}%
which were all generated by PMX.
Where did 3.5\internote come from? It's PMX's baseline value of \raisebarno.
It is always defined at that value by pmx.tex. (musixtex.tex defines it at
4\internote, but I guess I liked 3.5 better as a rule.) There is one
situation where PMX defines a different baseline--when there are 3 sharps
and treble clef--but I'm afraid I can't recall exactly what logic led to
this. In any event PMX keeps track of the baseline, and the second
invocation of \def\raisebarno sets it back to the baseline.
Where did 5mm come from? I'm not sure, but it suggests you may want the PMX
user to be able to set the value of the baseline to something other than
3.5\internote. That is certainly something I could consider enabling, and it
probably wouldn't be that difficult. But recall that's only one of several
attributes of bar numbering that Hermann wanted to change. It would be
rather difficult at this point to get PMX to optionally make the other
changes than Hermann wanted (change the font, remove the box), or more
generally to allow all the MusiXTeX options for bar numbering.
--Don
_______________________________________________
[email protected] mailing list
If you want to unsubscribe or look at the archives, go to
http://mailman.nfit.au.dk/mailman/listinfo/icking-music-archive.org-tex-music