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

0
17.07.2017, 19:21
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, но \*^не изменяется.
1
28.01.2020, 04:43

Теги

Похожие вопросы