Щоб вирішити щось, треба виспатись, почитати документацію (той самий man), а потім
все стає на свої місця. Groff чудово відображає сторінки в Юнікоді, треба лише
підказати йому, що ввід надходитиме в UTF-8, а не iso_8859-* (прапорець -D; виявляється,
поки я був у танку, з'явився новий препроцесор - preconv). Ось команда:
groff -Dutf8 -Tutf8 -mandoc man-uk-utf8/uk/man1/bash.1 | less
Принаймні на Slackware треба виправити /usr/lib/man.conf:
NROFF /usr/bin/groff -Dutf8 -Tutf8 -mandoc
і /usr/bin/lesspipe.sh:
*.1|*.2|*.3|*.3x|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) # *roff src?
if file -L "$1" | grep roff 1> /dev/null ; then
groff -Dutf8 -Tutf8 -mandoc "$1"
fi ;;
*.1.gz|*.2.gz|*.3.gz|*.3x.gz|*.4.gz|*.5.gz|*.6.gz|*.7.gz|\
*.8.gz|*.9.gz|*.n.gz|*.man.gz) # compressed *roff src?
if gzip -dc "$1" | file - | grep roff 1> /dev/null ; then
gzip -dc "$1" | groff -Dutf8 -Tutf8 -mandoc -
fi ;;
*.1.bz2|*.2.bz2|*.3.bz2|*.3x.bz2|*.4.bz2|*.5.bz2|*.6.bz2|\
*.7.bz2|*.8.bz2|*.9.bz2|*.n.bz2|*.man.bz2) # compressed *roff src?
if bzip2 -dc "$1" | file - | grep roff 1> /dev/null ; then
bzip2 -dc "$1" | groff -Dutf8 -Tutf8 -mandoc -
все, потреба в KOI8-U відпала. Може пізніше попрошу допомоги переробити деякі невеликі
програми (C/ncurses, Perl) для роботи з UTF-8, якщо сам не подужаю.