bell notificationshomepageloginNewPostedit profile

Topic : How can I prevent, or work around, unfortunate hyphenation in critical words? In technical documentation, sometimes the tool's automatic hyphenation makes a bad break in the middle of a term, - selfpublishingguru.com

10.02% popularity

In technical documentation, sometimes the tool's automatic hyphenation makes a bad break in the middle of a term, like the name of an environment variable or function. In these cases I would rather have a short line than hyphenation, though I want hyphenation in the document in general. I can try to "write around" egregious cases to try to avoid the problem term being near the end of a line, but that's fragile. I'm looking for a solution that fixes all of them, without me having to individually handle each case.

I am using DocBook, which we transform to Formatting Objects (FO) and thence to PDF. Ideally I would like to be able to write a style directive that says "don't hyphenate inside these XML elements" and apply it to <classname>, <methodname>, and several others. This FO documentation describes a way to do this at the page-block level, e.g. to turn off hyphenation in a table of contents or a preface, but that's too coarse. This forum post suggests a way to hard-wire them within the text, meaning I would have to put a special directive around each class name, method name, and so on. (Also, it sounds like it didn't work for him.)

How can I most easily prevent bad hyphenation breaks in my code elements, working within the tool chain I have? (I'm not free to change that.)


Load Full (2)

Login to follow topic

More posts by @Speyer920

2 Comments

Sorted by latest first Latest Oldest Best

10% popularity

With help from a coworker I was able to fix this by adding the following to the FO stylesheet:

<xsl:template match="classname">
<fo:inline hyphenate="false">
<xsl:call-template name="inline.monoseq"/>
</fo:inline>
</xsl:template>

And likewise for other elements that should get this treatment, like methodname and literal.

This creates a wrapper around the native style, changing hyphenation only.

Source


Load Full (0)

10% popularity

The post you referenced has the basics: in FO, you can't change the hyphenation property for just part of a block. You may be able to change the hyphenation dictionary (add the words you don't want to be hyphenated), but this depends on the tools you use. Information for FOP


Load Full (0)

Back to top