lilypond-devel
[Top][All Lists]
Advanced

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

Re: Text hyphenation


From: Bertrand Bordage
Subject: Re: Text hyphenation
Date: Sun, 25 Sep 2011 15:09:54 +0200

2011/9/25 Werner LEMBERG <address@hidden>
Actually, we don't *need* `\-' at all since Unicode already provides
characters to control hyphenation:

 00AD    SOFT HYPHEN
 2010    HYPHEN
 2011    NON-BREAKING HYPHEN

Bertrand, does your code work support them?

Here is how it works for the moment:

The Scheme command wordwrap-markups puts a maximum amount of words in a line so that the space between the words is at least word-space. Before continuing to the next line, wordwrap-markups tries to put one letter of the next word plus the hyphen if '--' is following this letter (and if the space between words is at least word-space). The same process is repeated for the rest of the word and stops before the space between the words reaches word-space.
We therefore have the correct break. The first "half" of the word plus the hyphen is added to the line while the other "half" is put on the next line.

I added the soft hyphen to default-string-replacement-alist ; text-interface.cc replaces '--' by a soft hyphen. The string '--' is therefore totally invisible when using interpret-markup, so the calculation of the width of a word in wordwrap-markups isn't modified by the presence of '--' in the markups.

I made a command 'apply-string-proc-to-markup' to achieve the parsing. It's similar to markup->string, except that it rebuilds the markup after applying a procedure to the internal string of a markup (if there's one, of course). This allows to work on the string of a markup without modifying anything else... That's why I can break a markup in two parts and check if '--' is in the string of a markup.


So this is the short version:
I'm using the soft hyphen, but we can't use it to specify how to break words.
It's not a flexible use, that's one of the reasons why I still need to work on it.
I totally agree with Werner that soft hyphens, hyphens and non-breaking hyphens must be supported.
And I also agree with Janek that there must be an ASCII solution.


Now, what is better between '--' and '\-':
'--' stands for an en dash in many languages. I proposed to use it in the list of special characters I just pushed, but we decided to use &ndash; instead, because '--' already stands for hyphenation in the lyrics. As Janek said, if we want to make hyphenation in the markups, the syntax must be the closest possible. And I really don't want to change the lyric hyphen for '\-'. Typesetting lyrics with '--' is much faster, especially on a french keyboard.
'\-' can't easily work in lyrics, because of the '\'. It is an escaped character that defines a musical or markup command and must be followed by a letters, not '-' or anything else.

Bertrand

reply via email to

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