View Issue Details

IDProjectCategoryView StatusLast Update
0001108ScribusStory Editor / Text Framespublic2016-03-30 20:12
Reporterlouisdesjardins Assigned Toavox  
PriorityhighSeverityfeatureReproducibilityalways
Status assignedResolutionopen 
PlatformanyOSanyOS Versionany
Product Version1.3 
Summary0001108: Let user specify hyphenation exceptions
DescriptionThe hyphenation dictionary/algorithm proves to be efficient up to a certain degree (like in any program). Some words are properly hyphenated (or else, all suggested hyphenations are OK). Some others are partially OK. Some are wrong. This is not new and is not a Scribus exclusivity.

I think the dictionary/algorithm could be improved as a first step (see list below, for French). But there is no way in my opinion a program will ever be able to handle all situations/exceptions. This is why I also suggest the following:

An addition to Scribus could save the situation for a broad range of situations and languages: a hyphenation exceptions dialog where users could import a list of exceptions of their own from any text editor. Lists could be shared among users by a simple import/export function.

Could enriching these lists be done the same way translation works for Scribus? Maybe we can give it some thoughts.
Additional InformationHere are some basic errors in hyphenation for French.

Words with an apostrophe such as *aujourd’hui* are not recognized.

Words with prefix *con-* are not hyphenated after the *con-* such as in *con-ver-sa-tion* (it might affect some French speaking readers because the word *con* is somewhat vulgar or very familiar in French but it is not a mistake to put a hyphen there and it might prove to be helpful in some situation. What I say is, leave it up to the user!)

Words beginning with *comm...* are not hyphenated after the *m*. So commencement, commencer, commentaire are hyphenated *commen-ce-ment*, *commen-cer*, *commen-taire* which is a strange limitation.

The rule on *mute* suffix or ending is strictly applied and the user has no control over that. This can lead to some difficulties in narrow lines of type. So *pratique* ends up *pra-tique* as well as *pratiquent* ends up as *pra-tiquent*... A word like *couvent* (noun and verb) doesn’t hyphenate at all... The -vent ending is either pronounced or not, depending upon what kind of a word it is. Why then choose to prevent it from being hyphenated? Don’t know.

The word *information* is improperly hyphenated only at *informa-tion*... (with a generous setting at word length 5...) like *concentration* = *concentra-tion*: partially right.

But Scribus returns *per-son-nel-le-ment* which is perfect. So it’s not a problem related to lenghty words.

Going after each and every word could be fastidious. I would gladly welcome more information on how the dictionary/algorithm was established at first so we can concentrate on where it fails to provide proper hyphenation. As for the rest, an efficient way to handle exceptions would be welcomed as well! ;-)
TagsNo tags attached.
Patch

Relationships

parent of 0004676 acknowledged feature to mark words as "do not hyphenate" 
related to 0002576 acknowledged Add a GUI to create user dictionaries for hyphenation and short words (and spellchecking) 
related to 0003911 closedavox Enable "forced" hyphenation 
related to 0004572 new Hyphenation styles (mockup included) 
related to 0001130 closed Problems with hyphenation 
related to 0003159 acknowledged Discretionary hyphenation support 
child of 0003828 acknowledged Metabug: Hyphenation 
Not all the children of this issue are yet resolved or closed.

Activities

christoph_s

2005-07-22 23:45

developer   ~0005664

Louis,

some ideas, taken from LaTeX. As they are connected to the new file format and need to be stored in the files, I don't know if implementation is still possible.

In LaTeX, you can easily generate a hyphenation list manually, by adding a \hyphenation{con-ver-sa-tion, Han-dels-kam-mer} in the preamble of the file. The list will always override LaTeX's default rules. In scribus, a dialog for this would be needed, of course.

As for your problem with con, you have the commands \linebreak[0-4] and \nolinebreak[0-4], where 0-4 is the priority (0 = not important, 4 = forced). Although this is not directly related to hyphenation, I hope you guess the idea. So we would need a mechanism to allow for hyphenation priorities in the file format and in scribus. Could be tricky ...

louisdesjardins

2005-07-23 03:23

developer   ~0005667

Hi Christoph,

I don't know much about LaTeX so it is difficult for me to further comment on your suggestion. I guess developpers will be more sensitive at this. It's OK! My point is clearly : asking for a better hyphenation tool. Something lots of people are not familiar with and an area *largely* missed by Quark and lots of other DTP/WP tools.

Proper hyphenation is "one" if not "the" key to achieved typography. And btw, no hard feelings, but to tell the truth, some "made with Scribus" documents would look lots better, had the hyphenation be turned on. :)

christoph_s

2005-07-23 17:59

developer   ~0005674

Hi Louis,

>>>My point is clearly : asking for a better hyphenation tool.

I fully agree with you. Better dictionaries aside, more hyphenation *control* is needed, and that's why I referred to LaTeX, which gives you lots of control on hyphenation and hyphenation exceptions. For instance, I'd like to tell scribus *not* to hyphenate one single word (and not every instance of the word in a text) as I can do with \mbox{word} in LaTeX. In another case I might need special hyphenation rules for a single word (think about words in another language). That's no problem in LaTeX.

Moreover, I think hyphenation should be done style based. So you can use a style for headlines with hyphenation turned off, and for paragraphs etc. with hyphenation turned on. This doesn't mean to turn it off for frames. For instance, if you have a "first_paragraph" and a "paragraph" style in a frame, applying hyphenation to the frame which overrules paragraph styles makes a lot of sense in terms of speed.

louisdesjardins

2005-07-23 22:23

developer   ~0005680

Now, can part (if not all) of how hyphenation is implemented in LaTeX be done the same in Scribus? And is this a "viable" way anyways? I mean, can this all be done with a GUI ?

I'd like to be able to edit (and share) a list of exceptions for any language.

Agree : hyphenation as part of a style definition is definitely a must. That way, when a text frame contains 2 or more languages, each of the text occurrences could be hyphenated in the proper language. I was under the impression there already was a bug report on that but I couldn't find it.

christoph_s

2005-07-23 23:04

developer   ~0005682

>>>Now, can part (if not all) of how hyphenation is implemented in LaTeX be done the same in Scribus? And is this a "viable" way anyways? I mean, can this all be done with a GUI ?


Since I'm no coder, I really don't know, but this week I read in a German forum that InDesign's hyphenation (probably more of its typographic features?) is built on LaTeX's algorithms. IMHO, it would be wonderful to have at least some of LaTeX's algorithms used in scribus, not only for hyphenations, but also for widows/orphans control (I can't imagine anything better than LaTeX for that).

>>>I'd like to be able to edit (and share) a list of exceptions for any language.

This is something that could probably be done without too much work. I can think of some kind of "user dictionary" as it exists in OO.o.

>>>Agree : hyphenation as part of a style definition is definitely a must. That way, when a text frame contains 2 or more languages, each of the text occurrences could be hyphenated in the proper language. I was under the impression there already was a bug report on that but I couldn't find it.

Hmmm, I don't know how this could be done (LaTeX certainly can't do it). What I meant was the ability to define styles in which hyphenation is switched on or off (the styles will contain the language). Exceptions would be taken from the user dictionary or applied to single words.

One example for the latter: the new German spelling isn't really widely adopted. Most people use a mix of old and new. Many of my customers want me to hyphenate "st" the traditional way, i.e. "Sy-stem", not "Sys-tem". The current German hyphenator knows only new German rules. If I have to hyphenate "System", I'd like to select the word, right-click/use a short cut and have a menu item "hyphenate" in which I could insert/remove hyphens manually. This would be the same as writing "Sy\-stem" in LaTeX.

As mentioned before, this is to no small extent a problem of the file format.

louisdesjardins

2005-09-19 17:00

developer   ~0006645

>>>Agree : hyphenation as part of a style definition is definitely a must. [...]

>>Hmmm, I don't know how this could be done (LaTeX certainly can't do it). What I meant was the ability to define styles in which hyphenation is switched on or off (the styles will contain the language). Exceptions would be taken from the user dictionary or applied to single words.

QuarkXPress Passport can do that since at least version 3.x (to my knowledge). I didn't check with ID. In multilingual documents, this is a must.

mhanski

2006-04-14 14:01

developer   ~0009953

Reminder sent to: plinnell

louisdesjardins

2010-06-25 02:39

developer   ~0024219

Any chance we have a look at this one shortly?

christoph_s

2010-06-25 03:10

developer   ~0024220

While hyphenation exceptions aren't part of a style setting yet, we do have per-document exceptions in 1.3.7 now. See: File > Document Setup/Preferences > Hyphenation.

Issue History

Date Modified Username Field Change
2004-09-18 18:51 louisdesjardins New Issue
2005-07-22 23:45 christoph_s Note Added: 0005664
2005-07-23 03:23 louisdesjardins Note Added: 0005667
2005-07-23 17:59 christoph_s Note Added: 0005674
2005-07-23 22:23 louisdesjardins Note Added: 0005680
2005-07-23 23:04 christoph_s Note Added: 0005682
2005-09-19 15:51 mhanski Relationship added related to 0002576
2005-09-19 17:00 louisdesjardins Note Added: 0006645
2006-04-08 17:17 mhanski Priority normal => high
2006-04-14 14:01 mhanski OS Mandrake => any
2006-04-14 14:01 mhanski OS Version 10 => any
2006-04-14 14:01 mhanski Platform Linux => any
2006-04-14 14:01 mhanski Product Version => 1.3
2006-04-14 14:01 mhanski Build Sept. 5, 2004 =>
2006-04-14 14:01 mhanski Note Added: 0009953
2006-04-17 01:01 plinnell Status new => assigned
2006-04-17 01:01 plinnell Assigned To => avox
2006-05-16 21:46 christoph_s Relationship added child of 0003828
2006-06-13 01:56 christoph_s Relationship added related to 0003911
2006-11-21 14:50 christoph_s Relationship added related to 0004572
2007-02-17 00:52 christoph_s Relationship added parent of 0004676
2010-06-25 02:39 louisdesjardins Note Added: 0024219
2010-06-25 03:10 christoph_s Note Added: 0024220
2015-09-17 20:08 Kunda Category Story Editor / Text Frames => Story Ed/Txt Frames
2015-09-17 20:12 Kunda Category Story Ed/Txt Frames => Story Editor / Text Frames
2016-02-15 14:33 Kunda Relationship added related to 0001130
2016-03-30 20:12 Kunda Relationship added related to 0003159