Escape leading single quote to prevent groff misinterpretation as a control character.
Issue
In man 5 task-color, the sentence cuts off unexpectedly:
There is also 'color.project.none', 'color.tag.none' and
This occurs just before the THEMES section.
Explanation
According to man 7 groffdocumentation, a leading single quote ' is interpreted as a control character and should be escaped as \[aq] to render correctly.
' The neutral apostrophe is the no-break control character,
recognized where the control character is. It suppresses the
(first) break implied by the .bp, .cf, .fi, .fl, .in, .nf,
.rj, .sp, .ti, and .trf requests. The requested operation
takes effect at the next break. It makes .br nilpotent. The
no-break control character can be changed with the .c2
request. When formatted, “'” may be typeset as a
typographical quotation mark; use the \[aq] special character
escape sequence to format a neutral apostrophe glyph.
The man 7 groff_charpage provides further details on character usage, and there has been long-standing discussion about this issue.
As suggested in the Getting Started section of man 1 groffdocumentation, here’s a quick way of testing the escaped sequences output:
echo "\[aq]test" | groff -Tascii | sed '/^$/d'
For UTF-8:
echo "\[aq]test" | groff -Tutf8 | sed '/^$/d'
Other options
Other approaches considered:
Move the word "and" from the previous line to avoid starting with a single quote. However, a linter might reformat this in the future, returning it to the original state
Use the \' escape sequence which renders as ’ rather than '
Use \(aq instead of \[aq] — while shorter, \[aq] clearly separates the escape sequence from the text, and documentation specifically recommends it
Escape leading single quote to prevent groff misinterpretation as a control character.
Issue
In
man 5 task-color
, the sentence cuts off unexpectedly:There is also 'color.project.none', 'color.tag.none' and
This occurs just before theTHEMES
section.Explanation
According to
man 7 groff
documentation, a leading single quote'
is interpreted as a control character and should be escaped as\[aq]
to render correctly.The
man 7 groff_char
page provides further details on character usage, and there has been long-standing discussion about this issue.As suggested in the
Getting Started
section ofman 1 groff
documentation, here’s a quick way of testing the escaped sequences output:For UTF-8:
Other options
Other approaches considered:
\'
escape sequence which renders as’
rather than'
\(aq
instead of\[aq]
— while shorter,\[aq]
clearly separates the escape sequence from the text, and documentation specifically recommends it