Groff since 1.23 maps '^' and '~' by default to U+02C6 and U+02DC
respectively.
The suggestion in groff_man_style(7) is to use \(ti and \(ha when the
latin variants are desired.
Links: https://lists.gnu.org/archive/html/info-gnu/2023-07/msg00001.html
---
src/main.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/main.c b/src/main.c
index a49cb40..56d4238 100644
--- a/src/main.c+++ b/src/main.c
@@ -261,6 +261,14 @@ static void parse_text(struct parser *p) {
// Suppress sentence spacing
fprintf(p->output, "\\&");
break;
+ case '~':+ // Escape tilda ta not make it render with U+02DC+ fprintf(p->output, "\\(ti");+ break;+ case '^':+ // Escape caret ta not make it render with U+02C6
I'd add a note that having those characters inside the header won't work
(unicode characters will still be emitted), but I guess a lot of stuff
doesn't work in headers, since parse_text path is not used for the
header text parsing.
--
Kind Regards,
Kirill Chibisov
default:
last = ch;
utf8_fputch(p->output, ch);
--
2.44.2
scdoc/patches/.build.yml: SUCCESS in 13s
[Emit \(ti and \(ha instead of ~ and ^][0] from [Kirill Chibisov][1]
[0]: https://lists.sr.ht/~sircmpwn/public-inbox/patches/54315
[1]: mailto:contact@kchibisov.com
✓ #1295092 SUCCESS scdoc/patches/.build.yml https://builds.sr.ht/~sircmpwn/job/1295092