The `\(lq` and `\(rq` and special character escape sequences are not
universally portable.

Traditionally, AT&T troff did not bother to identify these special
characters at all; it was apparently felt that adjacently setting
directional single quotes sufficed.  You can discern this fact in
materials typeset by AT&T troff by observing what one might call
generous kerning of these glyphs when used as "double" quotes.

However, someone at the Berkeley CSRG had a brainwave, and for 4BSD in
1980, added strings named `lq` and `rq` to the man(7) package so that
man pages could access double quotes by whatever means the underlying
implementation had for realizing them.  This excellent idea made it into
Unix System V (1988/9), so that every surviving troff implementation
known to me, including DWB and Solaris 10, supports them--save one.  The
exception is Plan 9.  Fortunately, the Plan 9 from User Space
("plan9port") project accepted a patch from me on 10 October to add
support there as well.[1]

Like the \*" string, \*(lq and \*(rq should not be used in quoted macro
arguments if one desires portability to AT&T troff-descended formatters
(other than Heirloom Doctools troff); if the implementation defines
these strings such that their interpolations contain `"`, undesired
output is the likely result.

[1] https://github.com/9fans/plan9port/pull/735
---
 find/find.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/find/find.1 b/find/find.1
index 85fe8251..a3fb3ce4 100644
--- a/find/find.1
+++ b/find/find.1
@@ -2792,7 +2792,7 @@ .SS Operator precedence surprises
 and when there is no operator specified between tests,
 .B \-a
 is assumed.
-.SS \(lqpaths must precede expression\(rq error message
+.SS \*(lqpaths must precede expression\*(rq error message
 .nf
 .B $ find .\& \-name *.c \-print
 find: paths must precede expression
-- 
2.30.2

Attachment: signature.asc
Description: PGP signature

Reply via email to