这是后续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
特罗夫变成^
抑扬音。
解决您的问题的简单方法(实现方式并不那么简单)是安排 ^
pod 文件中的每个内容都转换为 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
,但\*^
不会被触及。