Hatena::ブログ(Diary)

Luoyang Press RSSフィード

2012-01-30

[]Tips of wxWidgets.

wxの紹介をしてくれという要望をいただいたのですが、なかなかそこまでする時間も気力もないのが現状です。とりあえず手元のソースから役立ちそうな箇所を引っ張ってきましたが、音速で書いたのでいろいろ適当になっています。どうにかこれでご満足いただければ幸いです…(^^;

正直なところ、細かいところは既存のソフトウェアのソースを見ていただくのが一番分かりやすいと思います。どうあがいても上手くいかない場合には、もちろんやり方がまずい場合もありますが、wx自体にバグがあるという場合も往々にしてあります*1。wx自体のソース構造はある程度まとまっているので、grepか何かでソースを斜め読みすれば、それなりに内部構造も分かるのではないかと思います。

Reference

STLなどと比べれば天と地ほどの明瞭さがあるライブラリなので、正直マニュアルとサンプルとGoogle(笑)さえあれば解説記事なんていらないと思うのですが…(^^; 公式マニュアルも英語ですが、C++のソースが読めるくらいなら、英語の読解はまったく問題ない気がするのは私だけでしょうか。

サンプルは書庫のsamplesディレクトリやdemosディレクトリに大量にあるので、クラスの使い方に困ったらそれらしい名前のサンプルを調べましょう。

続きを読む

*1:本当にあります(--;

2012-01-14

[]Editing default setting of LibreOffice

LibreOffice(OpenOffice.org)は便利なソフトですが、幾つか癖のあるところもあって、完全に使いこなしているという人はそう多くないのではないでしょうか。

例えば、LibreOffice Drawを起動したときにデフォルトで表示されるキャンバスはA4用紙のようなサイズで、図形を描こうとすると灰色の外枠が表示されて、薄い青で内部が塗りつぶされたようなオブジェクトが出来上がると思います。でもこの配色って、少なくとも私にとってはあまり綺麗ではないんですよね(^^; そこで、自分好みのキャンバスと配色が設定された状態でいつも起動したい、となるわけですが、こうしたことを実現するための機能が「ドキュメントテンプレート」です*1

Drawのドキュメントテンプレートを作成するには、Drawを起動して、標準のキャンバスを自分好みにアレンジします。例えば、キャンバスのサイズは「書式」メニューの「ページ」から変えられます。配色は若干ややこしいのですが、右側に「タイトル」とか「標準」とか「本文」とかの項目が並んだ列があるかと思います*2。オブジェクトの配色はこのうちの「標準」を右クリックして、配色を変更してあげれば設定が変わります。

Impressでも同様に、デザインを変更したり1ページ目のレイアウトを作ったりしてください。「標準」が表示されていない場合には、右下のセレクトボックスで「すべてのスタイル」を選び、その列のツールバーの下あたりにある○△□が重なって表示されたアイコンをクリックすればいいはずです。

いい感じに出来上がれば、「ファイル」メニューの「ドキュメントテンプレート」から「保存」を選び、分かり易い名前をつけて保存します。次に、再び「ファイル」メニューの「ドキュメントテンプレート」から「管理」を選びます。左側の列の「自分のテンプレート」というところをダブルクリックすれば、先ほど保存したテンプレートが出てくるはずですので、これを右クリックして「標準テンプレートとして設定」を選びます。

確認のために一度LibreOfficeを終了して、再び起動してみてください。終了の際にファイルを保存するか訊かれるかと思いますが、テンプレートとして保存してあれば保存しなくても大丈夫です。起動したときに自分好みの設定が反映されていれば、それでOKです。

たったこれだけのことなのですが、これを知っているのと知らないのとでは編集効率が全然違います…って、皆さん既に知っていますかね(^^; ちなみに、作成したテンプレートはLinuxであれば~/.libreoffice/3/user/template/に保存されています。

*1:私はこの機能を見つけるまで何年もかかったのですけど、普通の方はもっと早く発見できるのでしょうかorz

*2:この部分は何と呼べばいいのでしょうかね(^^;

2011-12-13

[]Convert quartered PDF to a slide.

1ページが上下左右に4分割されたPDFを、1ページずつに再構成するシェルスクリプトを作成してみました。検索しても複数ページのPDFをページ毎に分割する方法ばかりで、なかなか1ページを分割する方法が見つかりませんでしたが、「Linux-based tool to chop PDFs into multiple pages - SuperUser」に情報がありました。

実行にはGhostscriptとpdftkが必要です。第二引数は入力ファイルのページ数です。なお、実行中に中間ファイルを勝手にたくさん作りますのでご注意ください。

#!/bin/sh
# usage: splitpdf input page-of-input
IN=${1%.pdf}

# Split a page by Ghostscript.
gs -o $IN-left.pdf  -sDEVICE=pdfwrite -g4210x5950 -c "<</PageOffset [0 0]>> setpagedevice" -f $IN.pdf
gs -o $IN-right.pdf -sDEVICE=pdfwrite -g4210x5950 -c "<</PageOffset [-421 0]>> setpagedevice" -f $IN.pdf
# Rotate to split.
pdftk $IN-left.pdf  cat 1-$2W output $IN-left1.pdf
pdftk $IN-right.pdf cat 1-$2W output $IN-right1.pdf
# Split a page by Ghostscript.
gs -o $IN-1,5.pdf -sDEVICE=pdfwrite -g2970x4210 -c "<</PageOffset [0 0]>> setpagedevice" -f $IN-left1.pdf
gs -o $IN-3,7.pdf -sDEVICE=pdfwrite -g2970x4210 -c "<</PageOffset [-297 0]>> setpagedevice" -f $IN-left1.pdf
gs -o $IN-2,6.pdf -sDEVICE=pdfwrite -g2970x4210 -c "<</PageOffset [0 0]>> setpagedevice" -f $IN-right1.pdf
gs -o $IN-4,8.pdf -sDEVICE=pdfwrite -g2970x4210 -c "<</PageOffset [-297 0]>> setpagedevice" -f $IN-right1.pdf

# Combine pages into one pdf.
a=0
while [ $a -ne $2 ]
do
	a=`expr $a + 1`
	TEXT_PAGES+="A$a B$a C$a D$a "
done
pdftk A=$IN-1,5.pdf B=$IN-2,6.pdf C=$IN-3,7.pdf D=$IN-4,8.pdf cat $TEXT_PAGES output $IN-out0.pdf

# Convert page size to A4.
gs -o $IN-out.pdf -sDEVICE=pdfwrite -dPDFFitPage -sPAPERSIZE=a4 $IN-out0.pdf

rm $IN-1,5.pdf $IN-2,6.pdf $IN-3,7.pdf $IN-4,8.pdf $IN-left1.pdf $IN-right1.pdf $IN-left.pdf $IN-right.pdf $IN-out0.pdf

2012/01/18 21:37追記

スクリプトの最後に、分割後のPDFをA4サイズに戻し、中間ファイルを削除するコマンドを追加しました。

2011-12-11

[]Good bye EPS.

TeXの図といえばEPS、というくらいにEPSを長らく使っている方は多いと思いますが、最近ではEPSを使うといろいろ不都合なことも出てきました。例えば、EPSでは半透明の設定が仕様上扱えないので、そうした図を無理にEPSにしようとすると色が台無しになってしまいます。

そこで、ここらでEPSとはお別れして図もPDFで統一してしまおうということで、思い切って手元にあるEPSをPDFにすべて変換しました。なお、以下では、TeXのソースが手元にあるものとして作業を行っています。

続きを読む

2011-10-18

[]Lychee 0.01β13 released!

半年ぶりのリリースとなりますが、今回の修正も細々とした各種のチューンアップが中心です。

Lycheeでは進捗ダイアログを初期状態で表示しないように変更し、タスクバー(Windows)とステータスバーの進捗バーによる簡易表示を行うようにしました。これにより、比較的小さな書庫を開いたり展開したりする際にダイアログが一瞬現れて消えて、という鬱陶しさから解放されるのではないかと思います。なお、旧来の進捗ダイアログも設定により表示できるようにしてあります。

また、Lycheeの終了時の動作を改善し、各種の終了処理を行う前にメインダイアログを非表示にするように変更しました。終了処理が見えなくなったので、高速に終了するようになったと感じられるかと思います。

あと、暗号化書庫を開いたり処理したりする際にパスワードを要求する回数を減らしました。これで操作が多少は快適になったのではないかと思います。

続きを読む