lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Instrument names


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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]