|
From: | Phil Holmes |
Subject: | Re: Instrument names |
Date: | Wed, 25 Jul 2012 17:14:03 +0100 |
Phil Holmes wrote Tuesday, July 24, 2012 4:28 PM
I'd like to look at fixing 766. Could someone suggest the best way to go about this, please? One option would seem to be to calculate the length of the text of the instrument names, and set the indent on the score equal to that plus a bit. Is this the best way? It seems to me that a system based more on the way the other system grobs avoid each other would be better, but i don't know whether that's practical or even really better.
OK - some background to this. 766 is the issue concerning instrument names and how lilypond fails to account for them when setting line widths, with 2 results: 1) users get long names disappearing off the left of the page, and need to mess about with indents to correct this. 2) Whenever there is a piece of code containing an instrument name in the docs, we need to be aware of the need to mess about with line-width to stop my hated black bars from appearing. So as a bug, it's one of those that, by default, produces awful, really ugly output. It also makes document writing more of a pain.
I've done the looking into the code that I can manage. I know that indents are worked in output-def.cc:line_dimensions_int. This returns a linewidth and an indent, with a normal indent when called with second parameter 0, otherwise it's a short-indent. So it would be easy to add something to the indent here to take account of intrument names.
The instrument name is created in instrument-name-engraver.cc. This makes a Spanner *text_spanner_; with text_spanner_ = make_spanner ("InstrumentName", SCM_EOL);
So it appears that there is a Spanner called InstrumentName with the details of the instrument name. Is there any way of accessing this within output-def.cc?
-- Phil Holmes
[Prev in Thread] | Current Thread | [Next in Thread] |