Arcana: For once in a very blue moon: the conditional skip
Once in a while, a list, a float, and a paragraph conspire to make LATEX apply incorrect paragraph spacing.
An unusual ornament: 3 bells and a rose
The conditional skip markup is perhaps the most obscure feature in all of Wikipublisher. A case can be made that it is gratuitous and we should not need it. But sometimes there is no alternative…
The great tragedy of Science — the slaying of a beautiful hypothesis by an ugly fact. — Thomas Huxley
Consider what happens when we have a list, followed by a floating object, i.e. a figure or table, followed by a regular paragraph. The floating object will … float, so it is as if we had written a list followed by a regular paragraph. Under normal circumstances, the Wikibook PDF server detects a paragraph after a list, suppresses the normal first line indent and adds extra vertical space.
But the floating object gets in the way, so the paragraph comes out indented and with no vertical spacing. Even if the author sets parasep=space, to use vertical space between paragraphs instead of indents, the vertical space will be smaller than the normal post-list space. To fix this, we need a way to tell Wikibook server that it must treat the paragraph as if it follows a list.
Enter the conditional skip line markup: start the line with =? (in the same family as => and =< markup described in Tip 00026). In HTML, this markup does nothing; but in the PDF, it causes the Wikibook server to look for a “conditional skip”. If the paragraph follows a floating object, Wikibook inserts LATEX commands to insert additional vertical space and suppress the first line indent, just as if the paragraph had followed a list. If it doesn’t follow a float, or if the float is allowed to float “here”, Wikibook does nothing.
Notice how this paragraph prints as a PDF. It has no conditional skip markup and Wikibook treats it like a normal paragraph.
This paragraph starts with conditional skip markup. Spot the difference in the PDF version. To date, we have found no need for unconditional skip (=!) markup.