Hi Carsten, Carsten Kunze wrote on Fri, Jan 23, 2015 at 03:59:41PM +0100:
> is there a way (except \N'45') to output an ASCII dash (0x2d) > with nroff in an UTF-8 locale (i.e. without -T or with -Tutf8)? >From font/devascii/R, you see that in -Tascii mode, all of the following glyph names map to ASCII 0x2d: - \- \(en \(hy \(mi >From src/libs/libgroff/glyphuni.cpp, you see that in -Tutf8 mode, no glyph name maps to code point U+002D. There is a comment, though: // `-' and `hy' denote a HYPHEN, usually a glyph with a smaller width than // the MINUS sign. Users who are viewing broken man pages that assume // that `-' denotes a U+002D character can either fix the broken man pages // or apply the workaround described in the PROBLEMS file. The PROBLEMS file says: * The UTF-8 output of grotty has strange characters for the minus, the hyphen, and the right quote. Why? The used Unicode characters (U+2212 for the minus sign and U+2010 for the hyphen) are the correct ones, but many programs can't search them properly. The same is true for the right quote (U+201D). To map those characters back to the ASCII characters, insert the following code snippet into the `troffrc' configuration file: .if '\*[.T]'utf8' \{\ . char \- \N'45' . char - \N'45' . char ' \N'39' .\} > I want to copy command lines from nroff output into a xterm, > but the shell complains about the '-' which is not 0x2d. That shouldn't happen in manual pages. Both tmac/an-old.tmac and tmac/doc.tmac contain: .\" For UTF-8, map some characters conservatively for the sake .\" of easy cut and paste. . .if '\*[.T]'utf8' \{\ . rchar \- - ' ` . . char \- \N'45' . char - \N'45' . char ' \N'39' . char ` \N'96' .\} > E.g. mandoc(1) does output 0x2d for '\-' and even '-' which IMHO > is better for manpages (to allow copiing text into the shell). That was originally designed for groff compatibility, and i don't rue it, the way groff does it indeed seems to make sense. Yours, Ingo