groff 宏文件中的输入编码

groff 宏文件中的输入编码

-K选项允许我指定 troff 文件的编码,但这似乎不适用于宏文件。如果自定义宏文件的字符串中包含非 ASCII 字符,则输出如下所示:

Mit freundlichen GrüÃen,

我的设置如下所示:

# letter_to_doe.tr
.recipient John Doe
.text Sehr geehrter Herr Doe ...
# letter.tmac
.de recipient
.\" ...
..
.de text
.\" ...
..

Mit freundlichen Grüßen

如何正确转换 tmac 文件中的非 ASCII 字符?

答案1

转换宏文件以preconv -e utf8用标记替换所有 UTF-8 字符troff

在您展示的示例案例中,我将放入letterletter.tmac.in,然后letter.tmac使用以下命令创建宏

preconv -e utf8 letter.tmac.in >letter.tmac

这将替换有问题的行

Mit freundlichen Grüßen

Mit freundlichen Gr\[u00FC]\[u00DF]en

...在生成的文件中。

这将是您每次更新宏文件时都需要执行的一次性转换。它非常适合成为 Makefile 中的规则:

letter.tmac: letter.tmac.in
        preconv -e utf8 letter.tmac.in >letter.tmac

相关内容