2019年7月16日火曜日

dia で図に日本語を入力出来ない?(ubuntu 18.04LTS)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Ubuntu 18.04 LTSに入れた dia で日本語が入力出来ないときは、 dia --classic というオプションをつけて起動すると、入力出来るようになるかも、という話。

Ubuntu 18.04 LTS を使っていて、dia で日本語を入力しようとしても出来ない、という相談を受けました。検索してみると、dia-normal を使うといい、とか、オプションに -integrated をつけるといい、とかいろいろ出てくるのですが、/usr/bin の下には dia しかないしなあ…… と思ったら、どうも最近(2017年以降)は無いようですね。理由はこれ。

https://metadata.ftp-master.debian.org/changelogs//main/d/dia/dia_0.97.3+git20160930-8.1_changelog
というわけで、 当面はこれでしのぎつつ、なんで classic じゃないのは日本語通らないんだろう、というのを追求したいところですが誰か代わりにやってほしい……

2019年6月17日月曜日

UTF-8で書かれた日本語テキストをPostScriptに変換する方法(2019)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
gnome-u2ps があったのですが開発が停滞しており、debianからはパッケージがREMOVEDになってしまい、その後……

・gedit からファイルに印刷する

geditでテキストを表示してファイルに印刷する、という方法があります。 CLI操作が苦手って方がよくやるようです。 psもpdfも作れるようですので、重宝している方も結構いらっしゃるのかも?

・paps (+nkf)

UTF-8で書かれたテキストファイルを pango ライブラリ を用いてレンダリングし、 PostScriptファイルにするフィルタです。 debian のパッケージにはUTF-8で書かれた多言語テキストファイルの例(/usr/share/doc/paps/examples/small-hello.utf8)があり、これを変換してみると便利さがよく分かります。

sample-hello.utf8 には日本語の半角カナが含まれるのですが、これがきちんと半角カナのまま変換されるのは、なかなか強力ですね。
レンダリングをpapsがやり、元となる文字列が何であったかという情報を含みません。そのため、ps2txtでテキスト部分だけ引っ張り出す、みたいなことも出来ません。pdfもにおいても、本文をpdfリーダーで取り出せないものが出来ます。

印字フォントを変更するには、fontconfig で認識しているものを使いますが、文字サイズの変更だけでも受け付けるようです。デフォルトは "Monospace 12"となっていますが、実体はシステムによって微妙に違うでしょう。

日本語のテキストファイルを印字する場合は nkf を併用します。nkf --guessを使って UTF-8(LF)などと返ってくるなら、そのまま変換すればよいですが、それ以外の場合はパイプを使ってしまえばよいでしょう。

DebianにもUbuntuにもパッケージがあり、これが一番安定しているようです。RHELのナレッジベースでも紹介されていますね。


・nkf + e2ps

 e2psにはバグが多いのですが、それでもdebianパッケージなどに入っていることから利用者が若干いらっしゃるようです。e2ps は EUC-JP を受け付けて PostScript を作るものなのでnkf -edなどとした変換が必要になります。

・nkf + a2ps-j (Perl版a2ps)

 日本語テキストファイルをPostScriptにするプログラムには他にも a2ps-j (a2ps perl版) がありますが、perl 4時代のスクリプトなので、MacPortsや各種BSDパッケージなどではパッチを当てたり、色々対応しながらやってらっしゃる方もおられるようです。

https://svnweb.freebsd.org/ports/head/japanese/a2ps/
https://www.uconst.org/blog/archives/437

 個人的に注目しているのが、a2ps-j をUTF-8対応させる、以下のブログのパッチです。開発者さんにおかれましては、このパッチのライセンスを再利用しやすいものに設定していただけますと、各OSでのパッケージとして採用が進むと思いますので、何卒よろしくお願いしたいです。

a2ps Japanese UTF-8 patch (日本語 UTF-8 パッチ)
http://zyushimatsu.cocolog-nifty.com/blog/2014/12/a2ps-japanese-u.html

 なお、GNU a2ps や GNU enscript は日本語がダメそうなままです。つらい。

2019年6月15日土曜日

nkfのマニュアルを読み違えていた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
nkfのマニュアルには、改行コードを変換するオプションの指定方法として、こんなふうに書かれています。
で、これを見て、 こうやって使うのかなあ、なんで -d が必要なんだろうなあ、と思っていたのですが…… という意味だったのですね。 nkf --helpで表示されるメッセージには、-d-cの記載がなく、 実際-Luに併記しなくても問題なく動作したので、あれ? と思ってソースコードを確認したら……
https://osdn.net/projects/nkf/scm/git/nkf/blobs/master/nkf.c 同じだこれ!? という話。 もしかしたら、こう書いてあれば誤解はなかったかもしれない… 他にも何箇所かありそうでつらい。

なお、この1文字オプションは他のものと併用できるので、 つまり、なんかわからんテキストファイルを、 Linux風(UTF-8, LF)にしたいならオプションは -wd とする、 Windows風(Shift_JIS, CRLF)にしたいならオプションは -sc とする、 みたいな形で覚えてしまってもいいのかもしれません。