Quote:
Originally Posted by JSWolf
Off means do not fix widows and orphans so they are not widows and orphans. Turn the feature off. 2 is on, 0 is off.
|
To quote a TV commercial, "That's not how this works! That's not how any of this works!"
We're not talking about a binary on/off setting; W&O isn't something that can somehow not exist. The default value is 2: "Allow two lines, but no fewer, to exist on a page by themselves. If the affected paragraph contains fewer than two lines, put them at the bottom of the first page." The lowest value that makes any sense is 1: "Allow one line, but no fewer, to exist on a page by itself. If the affected paragraph contains fewer than one line, put it at the bottom of the first page." Since the paragraph cannot contain less than one line, the second sentence (which administers the W&O setting) is effectively ignored; the paragraph falls wherever there's room for it.
How would zero work; what would it do? How would you write that instruction, as I did with 1 and 2 above? Explain this to me, please.
Quote:
Originally Posted by JSWolf
This is ADE we are talking about ADE allows 0. Kobo uses ADE thus 0 is valid.
|
"Works" and "is valid" are two different concepts. Ideally, yes, they should overlap completely...but they don't. "Valid" applies to code, and is very easy to check. Here are the specs, here's the code, see if the code adheres to the specs. If so, it's valid. Nice and simple.
"Works" applies to a specific combination of code, rendering engine, device, and (in some cases) subjective opinion. ADE, as a renderer, is expected to handle all valid code - but it's also expected to tolerate some flawed code, because many ebooks fall short of the "valid" bar...such as, say, by setting W&O to zero. In that case, the proper thing for ADE to do is ignore the invalid value, but it can do that in many ways. One of them, which is what it sounds like is happening, is to treat it as 1 instead. Another equally "correct" way of handling that error would be to completely ignore the bad line, thus leaving the default value of 2 in place.
In a particularly drastic case, equally "correct" and defensible, but which most people would regard as a bad solution, it could treat 0 as "maximum" in the same way that some 8-bit software treats 0 as 256; since 0 is not allowed, the coder "obviously" intended to indicate the maximum, which there's no other way to do. (In the 8-bit example, this changes the value's range from 0-255 to 1-256.) Of course, that opens the question of what "maximum" means - maximum number of lines that can be shown on one page in the current configuration, highest value the rendering engine can handle, or what?