投稿

Xubuntu 12.04 に FreeMind

イメージ
マインドマップ描画ソフト FreeMind を Xubuntu でも使用したいと思います。 $ sudo apt-get install freemind でインストール完了です。 メニューには登録されないようなので (オフィスのグループに登録されていました。)ターミナルから $ freemind と入力して起動します。0.9.0 がインストールされました。 Windows 版であった PDF と SVG のエクスポートがありません。 Ubuntu 系は例によって別のパッケージになっているようです。 $ sudo apt-get install freemind-plugins-svg で追加します。 これでエクスポートできるようになりました。 以上です。 fop がインストールされました。XSLT-FO を使って PDF 化しているんですね。 SVG は batik のようです。

続 Xubuntu 12.04 で DocBook V5.0 から日本語 PDF を作成する。

Xubuntu 12.04 で DocBook V5.0 から日本語 PDF を作成する。 で作成したコードをbitbucketで公開しました。先の投稿で書き忘れた fop.conf ファイルもあります。ファイル名が変わっているのは気のせいです。 https://bitbucket.org/cobito/docbook-ja-sample で公開しています。 以上です。

続Python を使って文字コード変換

Python を使って文字コード変換 で作成したコードを bitbucket で公開しました。また少しだけ手を入れています。 https://bitbucket.org/cobito/hgfilter  から取得できます。 以上です。

Xubuntu 12.04 で DocBook V5.0 から日本語 PDF を作成する。

Xubuntu 12.04 で DocBook V5.0 から日本語 PDF を作成してみました。 環境作成 1. Ubuntu ソフトウェアセンターから Eclipse をインストールします。 $ sudo apt-get install eclipse 主な理由は apache ant をインストールすることですが、統合環境としても利用できます。 2. DocBook-XSL を取得します。 http://docbook.sourceforge.net/ より docbook-xsl-ns-1.77.0.zip をダウンロードします。 ダウンロードした docbook-xsl-ns-1.77.0.zip を /opt/docbook-xsl-ns-1.77.0 へ展開します。 3. Apache FOP を取得します。 http://xmlgraphics.apache.org/fop/  より fop-1.0-bin.zip をダウンロードします。 ダウンロードした fop-1.0-bin.zip を /opt/fop-1.0-bin.zip へ展開します。 環境作成に関して Ubuntu では Ubuntu ソフトウェアセンターからパッケージをダウンロードするのが通常はおすすめなんですが、今回は eclipse 以外はマニュアルでインストールしています。 理由1: jar ファイルが /usr/share/java にまとめてインストールされてしまうため、かえってクラスパスの指定が面倒になるから。 fop を build.xml 経由で実行すると [fop] SLF4J: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError. [fop] SLF4J: See also http://www.slf4j.org/codes.html#log4jDelegationLoop for more details とエラーが出ます。 理由2: インストールするモジュールがわかりずらい。 理由3: チームで同じ環境を作りにく...

Python を使って文字コード変換

先の投稿 で iconv を使いましたが、 Windows 環境では導入されていませんし、導入するには面倒です。 一方、Mercurial は Python で記述されているのでフィルターだって Python で記述すれば良いのではないかと思い、初めて Python でコードを書きました。cp932 から utf-8 へ変換するコードです。 #!/usr/bin/python import sys ifn = sys.argv[1] ofn = sys.argv[2] open(ofn, 'wb').write(open(ifn, 'rb').read().decode('cp932').encode('utf-8')) 実質一行。 cp932 のテキストファイルを読み込んで、 utf-8 へ変換して出力します。エラー処理なしですが、これだけで済んでしまうのですね。 標準入出力にしなかったのは  http://mercurial.selenic.com/wiki/EncodeDecodeFilter  に Windows の場合は Tempfile を使った方が良いと書いてあったからです。 この Python スクリプトを使って hgrc を記述しました。 [encode] **.cpp = tempfile: encode.py INFILE OUTFILE **.c = tempfile: encode.py INFILE OUTFILE **.h = tempfile: encode.py INFILE OUTFILE [decode] **.cpp = tempfile: decode.py INFILE OUTFILE **.c = tempfile: decode.py INFILE OUTFILE **.h = tempfile: decode.py INFILE OUTFILE decode.py は上のコード、encode.py は decode.py の逆の変換 (utf-8 から cp932 へ)を行うコードです。 Windows 環境下では逆向きの変換を行えば良いでしょう。 以上です。おつかれさまでした。

シフトJISで記述されたファイルを含むリポジトリの扱い方

これまで Windows 環境下で作業していたので Mercurial のリポジトリの中に日本語のコメントを含むファイルが多くあります。 開発環境が Linux へ移行したのですが以前のリポジトリを Linux 環境で取得するといわゆる文字化けが発生します。 hgrc に設定を記述することでワーキングファイルの取得時に文字コードを自動的に変換してくれます。 方法 1. -U オプションを指定して、リポジトリをクローンします。 $ hg clone -U http://foo.local/hg/foo foo すでにリポジトリを取得している場合、一旦作業ファイルを削除します。 $ hg update -r null 2. テキストエディタで作業ディレクトリ以下の .hg/hgrc を編集し、変換するフィルタを指定します。 以下の例は iconv を使用して拡張子が .cpp .c .h のファイルを変換するように指定します。 [encode] **.cpp = pipe: iconv -f utf-8 -t cp932 **.c = pipe: iconv -f utf-8 -t cp932 **.h = pipe: iconv -f utf-8 -t cp932 [decode] **.cpp = pipe: iconv -f cp932 -t utf-8 **.c = pipe: iconv -f cp932 -t utf-8 **.h = pipe: iconv -f cp932 -t utf-8 3. 作業ファイルを取得します。 $ hg update 以上です。おつかれさまでした。 追記: シェルスクリプトではなく Python を使った場合の処理を  http://cobitech.blogspot.jp/2012/05/python.html に記述しました。

TortoiseHg から起動するターミナルエミューレータの設定

イメージ
Linux バージョンの TortoiseHg でターミナルを開くと xterm が起動されるんですが、これを Xubuntu のお気に入りのアプリケージョンで登録したターミナルエミュレータへ変更します。 環境 Xubuntu 12.04 TortoiseHg 2.3 1. TortoiseHg を起動します。 2. 「ファイル(F)」から「設定(S)...」を選択します。 3. 「ユーザ設定」のタブを開きます。 4. 「TortoiseHg」をクリックします。 5. シェルに 「exo-open --Launch TerminalEmulator」を入力します。 6. 「OK」ボタンをクリックします。 7. TortoiseHg を再起動します。 以上です。おつかれさまでした。