Это продолжение статьи man -t преобразует - в -
На этот раз проблема с ^, который, по мнению troff
, должен быть заменен на ˆ.
Есть ли общий способ сказать man -t
не возиться с вводом?
Если нет: Как мне исправить ˆ?
MCVE:
$ cat foo.pod
#!/usr/bin/perl -w
=head1 A
^
=cut
$ pod2man foo.pod | man -tl - | ps2pdf - foo.pdf
Трофф превращает ^
в циркумфлексный акцент.
Простое решение вашей проблемы с не -столь -простой реализацией состоит в том, чтобы организовать так, чтобы каждый ^
в файле 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
, но \*^
не изменяется.