该-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
。
在您展示的示例案例中,我将放入letter
宏letter.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