View Single Post
Old 11-13-2014, 09:46 PM   #18
Tex2002ans
Wizard
Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.Tex2002ans ought to be getting tired of karma fortunes by now.
 
Posts: 2,306
Karma: 13057279
Join Date: Jul 2012
Device: Kobo Forma, Nook
Quote:
Originally Posted by Psymon View Post
...if only because that's what I'd pretty much accomplished. Before I'd coded my book the way that I did, it looked pretty much like the Word example given on that page, with tons of hyphenation all over the place (way more than was needed)[...]
But again, that comparison was showing off differences in the ALGORITHM level.

Your situation, is similar to trying to make the "Word" document look nicer, by adding manual hyphens everywhere. You want to nitpick every single little thing.... but then you change one variable (font size, page size, margins, font), and all those manual hyphens you added will be clogging things up and making things WORSE, compared to if you just left the algorithm alone.

Your "surface" changes will ONLY work in Word, but switch over to a slightly different algorithm (like LibreOffice), and you have indirectly caused yourself a whole host of problems, because you decided to go "too specific" (in my latest terminology).

Each time you tweak a variable, you would have to go back, remove much of your manual fixes, and tweak things in NEW spots (if you wanted to nitpick the thing to death again).

Adding (or disabling) hyphens in certain spots, "solves" the problem on the SURFACE, but not the underlying problem.

Similar with globally denying all auto-hyphenation, and only enabling it on words past 8 characters. You are getting in the way of the algorithm, what if it thinks it is better to split a 6-letter word at position X, but you, in your INFINITE wisdom told it "no." You are indirectly causing inferior hyphenation/spacing in another location. (And again, maybe this inferior spacing problem doesn't appear to your human eyes with font A at font size B with margins C, but it WILL appear if you use font X at font size Y at margins Z).

Note: I started to notice a lot of this stuff while fiddling around with LaTeX, and generating multiple versions of the same book, while tweaking a few variables here and there. A lot of this stuff, I would have never KNOWN, unless I was messing with different font sizes + fonts + margins.

(Some images may be repeats for organizational purposes).

Font Change (Linux Libertine -> Times New Roman):

Click image for larger version

Name:	Example[6x9][12pt][Libertine].png
Views:	680
Size:	126.3 KB
ID:	131052 Click image for larger version

Name:	Example[6x9][12pt][Times].png
Views:	691
Size:	125.9 KB
ID:	131053

Note: These look nearly identical, but slight differences in kerning (Times New Roman is a little tighter).

As you can see in the Libertine version, "his-tory" is hyphenated between lines. That is 7 characters. This sort of situation would have been DENIED if you go "8 characters or more".

Side Note: No no, don't come back making a post saying "then I will enable hyphenation on all the words with 7 OR MORE CHARACTERS instead!"

Page Size Changes (5.5"x8.5", 6"x9", 7"x10"):

Click image for larger version

Name:	Example[5.5x8.5][12pt][Libertine].png
Views:	888
Size:	154.8 KB
ID:	131051 Click image for larger version

Name:	Example[6x9][12pt][Libertine].png
Views:	680
Size:	126.3 KB
ID:	131052 Click image for larger version

Name:	Example[7x10][13pt][Libertine].png
Views:	697
Size:	152.0 KB
ID:	131055

Note: Minor margin tweaks between them.

Font Size Change (12pt -> 13pt):

Click image for larger version

Name:	Example[7x10][12pt][Libertine].png
Views:	632
Size:	167.4 KB
ID:	131054 Click image for larger version

Name:	Example[7x10][13pt][Libertine].png
Views:	697
Size:	152.0 KB
ID:	131055

Font Size Change (12pt -> 11pt):

Click image for larger version

Name:	Example[5.5x8.5][12pt][Libertine].png
Views:	888
Size:	154.8 KB
ID:	131051 Click image for larger version

Name:	Example[5.5x8.5][11pt][Libertine].png
Views:	794
Size:	167.7 KB
ID:	131050

And this is keeping nearly all variables CONSTANT, and only tweaking ONE thing at a time. This is not taking into account differences in programs (for example, Word/LibreOffice have slightly different hyphenation/justification algorithms, iBooks/Marvin will hyphenate/justify slightly differently, Nook might justify/hyphenate one way, and Kobo might justify/hyphenate a completely different way). Maybe one says "allow hyphens on every line", and another one says "only allow hyphens twice per paragraph".

Maybe in the future, you (or someone else) wants to change your book into a multi-column format, but now your "denying hyphenation besides 8 characters or more" will really mess that up.

Quote:
Originally Posted by Psymon View Post
I have to admit, though, that while you all have convinced me to just scrap it, and just let hyphenation happen wherever the device (or app) sees fit, and only turn it "off" myself for things like headings, at the same time I can't say that I'm entirely convinced that what I was doing was, indeed, totally such a bad thing to do. I was actually pretty proud of what I'd been doing, I thought it had been working out remarkably well, especially since I'd tested it out at all kinds of different font sizes, etc...
Anyway, much of this hyphenation talk is abstract, and it is hard to actually SEE with your eyeballs why it is a bad idea. You have to see the logic behind it.

All you have to know is "global denying = bad" + "I should leave it up to the device/user/algorithm" + "I don't want to drive myself into the ground with tons of extra work for no good reason" + "I might be smarter than the hyphenation algorithm in a few specific cases, but the vast majority, I will pick the subpar location".

Similar to the indirect benefits of clean/consistent code over hideous/spaghetti code. Sure, the spaghetti code WORKS, but the problem comes in the future when you want to figure out + maintain the code. It is hard to actually SEE the headaches you are going to cause yourself in the future (or if you go with the clean/maintainable code, it is hard to SEE the time + work you saved, compared to the other route).

Lots of manual intervention "works" if you have a single font size, a single page size, a specific set of margins. But start changing any of those variables, and much of the manual intervention work goes right out the window.

Last edited by Tex2002ans; 11-13-2014 at 10:07 PM.
Tex2002ans is offline   Reply With Quote