anchoring frame to character - problems positioning

I've been banging my head against this one off and on for quite a while, and either I'm totally misunderstanding what's supposed to happen, or there's a problem in LO. I'd appreciate advice please.

The goal is to print music lyrics with chord (text) appropriately aligned above the lyrics. The ultimate goal is to create the .odt document programmatically: I'm most of the way there, but the way positioning works in conjunction with 'anchor to character' has me baffled.

I'm using a frame to hold the chord text, and trying to attach the frame to a given character below in the lyric line, using 'anchor to character'. Horizontal position is no bother at all - with the text centred in the frame, and the frame centred on the lyrics character, things look good.

However, vertical positioning is another matter. It's not at all clear what 'bottom', 'top', 'from bottom' (etc) are supposed to do (the help file is lamentably lacking here). I had supposed that "from bottom" might allow the distance from the bottom of the frame to some reference point on the character to be specified, but as I've experimented I've found little logical relationship. Indeed the character-to-frame distance can vary with paragraph line spacing even when apparently nominally "locked" to the character -- not at all what I expected, nor what I need! What actually happens appears so ill-determined, it's not even easy to describe.

So, to cut to the real question: how do I "lock" a frame to float just above a given character in some text, and keep the same relative position as that character moves and text line spacing changes?

Or have I missed a better (easier!) way of achieving my goal?

I hope that makes some sort of sense!

Thanks!

(Addendum - the GUI only allows up to 200% proportional line spacing in a paragraph style which isn't enough for my purpose. A quick tweak to the styles.xml file shows this is purely a gui limitation, and that the basic LO rendering seems to deal with arbitrarily large ratios - I tried up to 500%. Any particular reason for the GUI's low limit??)

Hello Mike

I might suggest you use something that is a little more direct.

http://sourceforge.net/projects/softchord/
http://www.opensong.org/pages/downloads.html

Depending on your operating system, Google "free chord editor software".

For exact notation.
The grandaddy of programs is http://www.lilypond.org/download.html

LibreOffice add-on
MuseScore Example Manager for LibreOffice
http://www.outsideshore.com/music/music-software/musescore-example-manager-for-libreoffice/
which requires https://musescore.org/

Hope this helps
Paul

Hello Mike

I might suggest you use something that is a little more direct.

Always a good idea... in spite of keeping a careful eye open, I missed the first two you listed.

http://sourceforge.net/projects/softchord/
http://www.opensong.org/pages/downloads.html

Of these though, this first appears to be broken - lost completely the first set of chords I entered, so I'd not trust it with anything important. The output looks decidedly amateurish to my eye.

Looks better. But is only available in 32-bit form for linux -- an issue that goes back to 2009 at least. And recompiling needs proprietary software :-{ And it's not in the standard PPAs. Support looks a bit iffy.

The other programs you mention are much better known; however they're very heavyweight, and if either can do /all/ that I'm after, I can't see how :-{

However, many thanks for your reply. Always good to know what's around.

Mike Scott wrote:

I've been banging my head against this one off and on for quite a while,
and either I'm totally misunderstanding what's supposed to happen, or
there's a problem in LO. I'd appreciate advice please.

The goal is to print music lyrics with chord (text) appropriately
aligned above the lyrics. The ultimate goal is to create the .odt
document programmatically: I'm most of the way there, but the way
positioning works in conjunction with 'anchor to character' has me baffled.

I'm using a frame to hold the chord text, and trying to attach the frame
to a given character below in the lyric line, using 'anchor to
character'. Horizontal position is no bother at all - with the text
centred in the frame, and the frame centred on the lyrics character,
things look good.

However, vertical positioning is another matter. It's not at all clear
what 'bottom', 'top', 'from bottom' (etc) are supposed to do (the help
file is lamentably lacking here). I had supposed that "from bottom"
might allow the distance from the bottom of the frame to some reference
point on the character to be specified, but as I've experimented I've
found little logical relationship. Indeed the character-to-frame
distance can vary with paragraph line spacing even when apparently
nominally "locked" to the character -- not at all what I expected, nor
what I need! What actually happens appears so ill-determined, it's not
even easy to describe.

So, to cut to the real question: how do I "lock" a frame to float just
above a given character in some text, and keep the same relative
position as that character moves and text line spacing changes?

Or have I missed a better (easier!) way of achieving my goal?

I'm not sure, but it may be that you're trying to put the frame so close to the text that the wrapping is having an effect - pushing the text out the way of the frame (while the frame is trying to follow the text!)

Take a look at the Format > Frame > Wrap tab. I think you'll want the main wrap setting to be "Through", and maybe also set the "Spacing" values to zero. You may or may not also want to set "In background", depending whether there is any overlap and how you want that handled.

Hope that helps.
Mark.

Mike Scott wrote:

...

The goal is to print music lyrics with chord (text) appropriately
aligned above the lyrics. The ultimate goal is to create the .odt
document programmatically: I'm most of the way there, but the way
positioning works in conjunction with 'anchor to character' has me
baffled.

I'm using a frame to hold the chord text, and trying to attach the frame
to a given character below in the lyric line, using 'anchor to
character'. Horizontal position is no bother at all - with the text
centred in the frame, and the frame centred on the lyrics character,
things look good.

However, vertical positioning is another matter. It's not at all clear

...

I'm not sure, but it may be that you're trying to put the frame so close
to the text that the wrapping is having an effect - pushing the text out
the way of the frame (while the frame is trying to follow the text!)

Take a look at the Format > Frame > Wrap tab. I think you'll want the
main wrap setting to be "Through", and maybe also set the "Spacing"
values to zero. You may or may not also want to set "In background",
depending whether there is any overlap and how you want that handled.

Hope that helps.
Mark.

Thanks for that. I have progressed a fair bit since my last note. You're right about the wrap - that was set wrongly, and should have been set to 'through': this was getting muddled with other issues.

Currently, it "sort of works" and what I have is just about usable. However, there are a couple of issues:

* I've had to set line spacing to fixed rather than proportional: using eg simple double-space makes lines at top of page go wrong, because the text line is right at the top with no space for the chord frames (which then appear below the text), while my fixed spacing leaves a gap at the top into which the frames fit.

* sometimes on the bottom line of a page, the chord frames seem to become "detached" from their characters: the anchor points show in the frames' top-left corners rather than next to the anchor character, they don't all (!) move with the text, and they are positioned a bit too low above the text (but still usable).

As I said, it's usable now, but all just a bit too sensitive to sizes and spacings for my liking. My intention was that my (perl) code produce a usable .odt file to be tweaked up using LO, changing the perl-generated styles. The tweaking (eg to make things a better fit on the page) can quite upset the overall layout in unexpected ways.

I'm still wondering why the line spacing in LO has a max of 200% in the dialogue box. It can easily go higher in the xml. Does anyone else reckon this is worth logging as a bug?

Thanks again for the comments.