man/troff: ^を^に変換

man/troff: ^を^に変換

フォローアップです。man -t は - を - に変換します。

今回問題は^がtroff^に変わらなければならないと思うということです。

man -t入力を台無しにする一般的な方法はありますか?

それ以外の場合は修正方法^?

MCVE:

$ cat foo.pod
#!/usr/bin/perl -w

=head1 A

  ^

=cut

$ pod2man foo.pod | man -tl - | ps2pdf - foo.pdf

答え1

Troffは^弱くなります。

問題に対する簡単な解決策(実装はそれほど簡単ではありません)は、 ^ポッドファイルのすべての内容がtroffシーケンスに変換されるように準備することです\(ha。内部がわからないPod.pmため、パッチを適用せずにpod2man出力を送信する前に使用できるフィルタを提供しますman -t

仕事を複雑にするのは、pod2manその中にいくつかの行があるということです。^我々はそれらを変更することはできません。

pod2man foo.pod | \
perl -pe '/\.[ ]*ds[ ]*\^/ || s/(?<!\\\*)\^/\\(ha/g' | \
man -tl - | ps2pdf - foo.pdf

Perl コマンドは次のタスクを実行します。

  • 行に.ds ^ディレクティブが含まれている場合は変更しないでください。
  • それ以外の場合、各項目は交換され^ますが、触れません。\(ha\*^

関連情報