Main Page

Explain xkcd: It's 'cause you're dumb.
Revision as of 20:33, 9 August 2012 by Waldir (Talk | contribs)

Jump to: navigation, search


Welcome to the explain xkcd wiki! We already have 11 comic explanations!

(But there are still 1659 to go. Come and add yours!)

Latest comic

Go to this comic

Full-Width Justification
Gonna start bugging the Unicode consortium to add snake segment characters that can be combined into an arbitrary-length non-breaking snake.
Title text: Gonna start bugging the Unicode consortium to add snake segment characters that can be combined into an arbitrary-length non-breaking snake.

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: hasty & impatient placeholder. Still an early draft; needs citations, fact-checking, and it also needs the Wikipedia links to be fixed.

The comic refers to an irritating problem in laying out text to fit from margin to margin, the problem of justification, where you want multiple-line text to line up on the left side (common), the right side (less common), or both sides, which is commonly called full justification. This strip is dealing with how to make text fit such that it lines up on both sides while still looking good. Sometimes, as before a long word like "deindustrialization," there's no universal good way to make the typography work. It is a difficult problem to make text look good and be easily legible especially in a narrow space, with the biggest issue being how to handle words that are too long to fit nicely.

The comic shows several solutions to this problem, some realistic and others less so, but each partly or wholly unsatisfying.

"Giving up" essentially means not attempting full justification for a particular line, which means it will not fit with the rest of the layout.

"Letter spacing" involves an conspicuously large amount of whitespace between letters, suggesting a reading where each letter is a word until the reader recognizes what is intended.

"Hyphenation" is confusing because it requires suspended recognition of the full word, confusing the eye into seeing, in the given case, the non-words "deindus" and "trialization". This creates difficulty in both pronouncing and parsing the word. Moreover, the decision of when and where to hyphenate is non-trivial, particularly for automated text layout; for example, breaking a word and leaving only two "orphaned" letters on the following line is generally considered an illegal hyphenation. Nevertheless, hyphenation is a very common means of handling extreme cases.

"Stretching" appears visually unnatural and unfamiliar, and may present technical difficulties in rendering.

Adding "filler" words is generally undesirable: in the worst case, the meaning may be unintentionally altered, or the tone might be rendered too informal, as in the given example, and even in the best case, the text becomes less concise and potentially more difficult to read. Automation is also difficult. However, filler words added by a human, especially the original author of the text, are the least visually conspicuous, and may be the most practical solution in some scenarios.

Finally, adding a decorative image like "snakes" (but not necessarily snakes in particular) to fill the extra space is a justification practice of significant historical interest (it was particularly common for illuminated manuscripts in the medieval era and remained prominent until the invention of the printing press) but little modern relevance.

In modern text layout programs, some combination of the above strategies may be used to achieve the most visually consistent effect. For example, in one case, hyphenation might be the best option to split a very long word, while another line might be too long by only one or two letters, in which case the program could apply a very slight degree of extra letter spacing, too small for the average reader to notice.

The title text suggests that in order to facilitate the "snakes" method of "solving" the problem, the Unicode Consortium, the organization in charge of the common text standard Unicode, should add "snake-building characters" (similar in concept to the existing Box Drawing block), to allow variable-length snake images to be used as filling. Currently, there are four snake characters in Unicode: [1]

The use of the phrase "non-breaking" in the title text is a play on non-breaking space and implies that an automatic line break could not be inserted after a snake segment; the whole snake would shift down if it were too wide to fit on a given line. This suggestion would likely be rejected; the Unicode consortium is very specific about which characters are added[citation needed], and always require a good reason[citation needed] before adding a character or set of characters to the standard. Strange decisions by the consortium have previously been referenced in 1253: Exoplanet Names, 1513: Code Quality, and 1525: Emojic 8 Ball.

Transcript

[Caption above the panels:]
Strategies for full-width justification
[Below the caption is a column with six boxes, each showing a different "strategy" for justification which is annotated beside it. Here the annotation is written at the top and the text below. The top and bottom of the text is cut of in the middle, but as it can be "read" this is written anyway. Only for hyphenation does an extra word appear at the end. In the last with snakes, a snake is drawn to cover the entire space from the end of between to the right border.]
Giving up
their famous paper
on the relationship
between
deindustrialization
and the growth of
Letter spacing
their famous paper
on the relationship
b  e   t   w   e  e   n
deindustrialization
and the growth of
Hyphenation
their famous paper
on the relationship
between deindus-
trialization and the
growth of ecological
Stretching
their famous paper
on the relationship
between
deindustrialization
and the growth of
Filler
their famous paper
on the relationship
between crap like
deindustrialization
and the growth of
Snakes
their famous paper
on the relationship
between ๐Ÿ [a snake filling the gap]
deindustrialization
and the growth of

Trivia

  • The full text (with alternate changes) reads:
...their famous paper on the relationship between [crap like]/[ ๐Ÿ ] deindustrialization and the growth of [ecological]...
  • An approach not depicted is to treat justification as part of a global typesetting strategy which allows words to move between lines even where this is not locally optimal. This approach is used by TeX.
  • In Arabic, it is common to stretch the lines connecting letters as a relatively elegant and satisfying resolution to this problem. This trick is called "kashida" (ูƒุดูŠุฏุฉ). There does in fact exist a Unicode character, U+0640: (ู€), to help with this: using it to extend "ูƒุดูŠุฏุฉ" would result in something like "ูƒุดู€ู€ู€ู€ู€ู€ู€ู€ู€ู€ู€ูŠุฏุฉ" (which, incidentally, looks a lot like a snake).
  • Jim Chapman, developer of Windows 10 e-reader app Freda, has announced the next version of Freda will incorporate snake-justification.


New here?

Feel free to sign up for an account and contribute to the explain xkcd wiki! We need explanations for comics, characters, themes, memes and everything in between. If it is referenced in an xkcd web comic, it should be here.

  • List of all comics contains a complete table of all xkcd comics so far and the corresponding explanations. The red links (like this) are missing explanations. Feel free to help out by creating them!

Rules

Don't be a jerk. There are a lot of comics that don't have set in stone explanations, feel free to put multiple interpretations in the wiki page for each comic.

If you want to talk about a specific comic, use its discussion page.

Please only submit material directly related to—and helping everyone better understand—xkcd... and of course only submit material that can legally be posted (and freely edited.) Off-topic or other inappropriate content is subject to removal or modification at admin discretion, and users posting such are at risk of being blocked.

If you need assistance from an admin, feel free to leave a message on their personal discussion page. The list of admins is here.

Explain xkcd logo courtesy of User:Alek2407.

Personal tools
Namespaces

Variants
Actions
Navigation
Tools

It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal?