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

示した例では、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

関連情報