[ubuntu-jp:6073] Re: 日本語のマンページを ps に直すには

Mitsuya Shibata mty.shibata @ gmail.com
2018年 11月 3日 (土) 16:03:12 UTC


久保さん、

> >     どなたか日本語のマンページを ps に直す方法を教えて頂けないでしょうか。

ものすごく無理矢理感がありますが、以下のような感じでいかがでしょう?

$ sudo apt install mandoc paps
$ zcat `man -w apt` | mandoc | sed 's/\x5f\x08//g; s/\x08.//g' | paps
| ps2pdf - apt.pdf

ただし、もっとスマートなやり方がありそうな気はしています。

1. zcatは任意のsectionのpathをmandocに渡す方法が
  わからなかったためにこうしてます。

2. mandocはgroffではうまくutf8なplain textにできなかったために
  代替として使っています。

3. sedはmandocが出す書式指定子(太字と下線)を消しています。
  他にもケアしなければいけないものがあるかもしれません。

4. papsはUTF-8なtextをpsに変換するツールです。
  glibとかpangoに依存しているので、デスクトップ環境以外だと
  依存関係でいろいろ入ってしまうかもしれません。

5. ps2pdfは単純にEvinceで確認したかったから使っています。
  PostScriptで良ければこの手前で止めて問題ありません。

ただしフォーマットがすごく残念な感じになるので、
mandoc -T htmlで一度HTMLにしてからPDFにするほうが
まだまともかもしれません。

以上、よろしくお願いいたします。

2018年11月3日(土) 21:38 KUBO Koichi <k @ obuk.org>:
>
> 皆さん、ありがとうございます。ここまでをまとめてみました。
>
> 1. 真っ新の ubuntu 18.04 を起動します。
>
> https://app.vagrantup.com/boxes/search
>
> 2. ローケル ja_JP.utf8 を追加します。
>
> $ locale -a | grep ^ja
> $ sudo locale-gen ja_JP.utf8
>
> いまのロケールは
>
> $ localectl
>    System Locale: LANG=en_US.UTF-8
>        VC Keymap: n/a
>       X11 Layout: us
>        X11 Model: pc105
>
> 3. 日本語のマンページをターミナルに表示します。
>
> $ sudo apt-get -y install manpages-ja
> $ man -L ja man
>
> ターミナルでは問題なく表示できます。
>
> 4. しかし、man -t (ps 出力) では警告が出力されます。
>
> $ man -L ja -t man >/dev/null
> <standard input>:21: warning: can't find special character `u30DE'
> <standard input>:21: warning: can't find special character `u30CB'
> <standard input>:21: warning: can't find special character `u30E5'
> ...
>
> uXXXX は UCS-2BE で、u30DE u30CB u30E5 ... はマニュ ... になります。
>
> # これが [ubuntu-jp:6062] の質問になりました。
>
>
> (この先は、昨夜、試行錯誤した際のメモから拾いました)
>
> 5. 日本語フォントを追加します。
>
> sudo apt-get install fonts-ipaexfont
>
> 5-2. groff にフォントを追加します。
>
> 上の 5. でインストールされた ipaexg.ttf と ipaexm.ttf を groff では
> G と M という名前にします。手順とスクリプトは次を使いました。
>
> 手順 - http://www.schaffter.ca/mom/momdoc/appendices.html
> スクリプト - http://www.schaffter.ca/mom/bin/install-font.sh
>
> G と M は、jgroff に敬意を表しました。jgroff は、EUC-JP なら日本語の
> マンページから ps を出力できますが、いまは UTF-8 のようで残念です。
>
> 5-3. devps (grops) の DESC ファイルを直します。
>
> /usr/share/groff/1.22.3/font/devps/DESC を site-fonts/devps/ にコピー
> し、jgroff の DESC から必要と思われる行を加えました。
>
> fonts 11 0 0 0 0 0 SS S ZD ZDR G M
> unicode
>
> DESC の説明は groff_font(5) にあります。DESC を作り unicode を追加する
> と、上の 4. の警告 warning: can't find ... が止まります。
>
> 6. groff を実行します。
>
> groff の入力ファイルを用意します。途中で日本語のフォントを指定します。
>
> $ vi hello
> .ft TB
> hello
> .ft M
> こんにちは
>
> groff でフォントの指定は https://www.gnu.org/software/groff/manual/
> html_node/Changing-Fonts.html にあります。
>
> 6-2. フォントのディレクトリを指定して groff を実行します。
>
> $ groff -F フォントディレクトリ hello  # hello は 6 で作成したファイル
>
> 出力された ps の一部を示します。
>
> /F0 10/Times-Bold @ 0 SF(hello)72 12 Q/F1 10/Ryumin-Light-UniJIS-UTF8-H SF
> <e3e3e3abe3a1e3af>2.5 E 0 Cg EP
>
> 「こんにちは」は utf8 で <e38193e38293e381abe381a1e381af> ですが、ここ
> では <e3e3e3abe3a1e3af> になったようです。 gs に入力すると文字化けしま
> す。とりあえず、手で直せば文字化けは直りますが、、、
>
> もっと簡単なものかと思いましたが、なかなか難しいものです。
>
> あと少しで ps 出力できそうに見えなくもありませんが、まったくの見当違い
> かもしれません。どうなんでしょう。
>
>
> On 11/3/18 7:22 AM, Ito Jazz wrote:
> > 久保様
> > はじめまして、伊藤と申します。
> > 小生、UBUNTU歴4年目のアマチュアです。
> >
> > 下記リンク先がご質問の参考になるかも?
> > https://sekisuiseien.com/computer/10753/
> >
> > 全くトンチンカンであれば、ご容赦ください。
> > ご参考になればと思い、ご連絡させていただきます。
> >
> >
> >
> > 2018年11月2日(金) 10:07 KUBO Koichi <k @ obuk.org <mailto:k @ obuk.org>>:
> >
> >     はじめまして久保と申します。
> >
> >     マンページを印刷して読みたくなり、man -t で ps を出力しましたが、漢字
> >     やかなが欠けてしまいます。
> >
> >      $ LANG=ja_JP.UTF-8 man -t man > man.ps <http://man.ps>  # 漢字やか
> >     なが欠ける?
> >
> >     テキストで出力してターミナルで参照する分には問題はありません。手元の
> >     ubuntu 16.04 と 18.04 のどちらも同じ結果になります。
> >
> >     問題を特定するために、下記の小さな日本語の ps を gs に入力しましたが、
> >     漢字やかなが欠けることはありません。
> >
> >      /Ryumin-Light-UniJIS-UTF8-H findfont 24 scalefont setfont
> >      10 10 moveto (お早うございます) show
> >
> >     どなたか日本語のマンページを ps に直す方法を教えて頂けないでしょうか。
> >
> >     よろしくお願い致します。
> >
-- 
Mitsuya Shibata
mty.shibata @ gmail.com


ubuntu-jp メーリングリストの案内