2011年12月4日日曜日

Kindle自炊に関するメモ

pdfをスキャンする. scansnapがお勧めだが, なんでもよい.

適当にトリミングする. これは, Adobe Acrobatがあるといいかも.

OCRにかける. 例えばAcrobatで頑張らせる. 時間がかかる...

pdftkでTitleとAuthorを入れる. 次のような感じで, metadataテキストファイル(ex. meta.dump)を作る

InfoKey: Title
InfoValue: hugahuga
InfoKey: Author
InfoValue: hogehoge san


そのあと,

$ pdftk input.pdf update_info meta.dump output output.pdf


とすれば, input.pdfにTitleとAuthorの入ったoutput.pdfが出力される. ちなみに

$ pdftk input.pdf dump_data


とすれば, 標準出力で, メタデータが取り出せる. Kindle 2(dx international ver)では日本語のタイトルや著者は認識してくれないらしく、ハックしても豆腐になってしまうので、諦めた。研究のための資料とかは英語が基本なので、あまり困ることもない。

連番ファイル

bashにおいて、たくさんのファイルをとりあえず連番ファイルに一括リネームするには、ファイルを一つのフォルダに保存しておいて、

declare -i i=1
for file in *.jpg
do
mv $file `printf %02d $i`.jpg
i=i+1
done


とする。この時、連番ファイルは01,02,...10,11,...と作られる。三桁ファイルにするときは%02dを%03dとすればよい。

2011年7月17日日曜日

Debianで動くもののリスト

ほんとは、PCの情報も書いといた方がいいでしょうけど、書いたところで、やっぱり動作するかどうかは自己責任のもとで…こういう情報は、なかなかみつからないので、あると有用だろうと思います。


Logicool Professional Presenter R800

やや電池の消耗が早いように感じたので、予備電池は用意しといた方が無難

Logicool TrackMan® Wheel

マウスだしね。普通に使えます。

Realforce 91UDK-G

キーボードだしね。普通に使えます。

NEC Aterm WM3500R

USB microB (オス)- USB A (オス) を用意すれば、USBをLAN端子として認識する。インストール時に使えるかどうかはわからないが、無線で使うより安定して使える。

Brother HL4050CDN (amd64 PCの場合)

BrotherのLinux ドライバサイトから, ドライバをとってくる.

$ sudo aptitude install lib32stdc++6


として, lib32stdc++6をインストールしておいてから

$ sudo dpkg -i --force-architecture hogehoge.i386.deb

でインストールできる.

LPRのドライバを使った方が無難. 印刷のカラーとかの設定はプリンタを直接い
じった方がよさそう. CUPSドライバはなんか難がありそうな感じ.

IS05

USB microB (オス)- USB A (オス)を用意すれば、マウントできる。

emacs でフォントを変える

まずは普通にemacsを立ち上げてoptionsメニューの「Set Font/Fontset...」を
クリックし, 変えたいフォントに変更する.

scratchバッファで

(frame-parameter nil 'font)


と入力して閉じ括弧の後ろで C-j してフォントを調べる。

.emacsで設定する場合は

(add-to-list 'default-frame-alist
'(font . "ここに表示された文字列をコピペ"))


とすればいい.

minipageなどの環境下での脚注

例をあげて説明する.

\begin{minipage}{0.8\textwidth}
hogehoge\footnotemark
\end{minipage}
\footnotetext{fugafuga}

とすると, minipageなどの環境下でも脚注がつけられる. tabular環境などでも
同じ. \footnotemarkでfootnoteカウンタをインクリメントする. minipage下
に二つ以上の脚注を入れるときは, カウンタのコントロール(addtocounterと
か)が必要.

Equation カウンタのインクリメントのトリック

$(1)_k$ のように, 式番号にパラメータとか添字をつけたいが, 式番号はEquationカウ
ンタを使いたいときは,

$\refstepcounter{equation} \label{eq:1}$
\begin{equation}
J_\lambda[u]
:=\int_\Omega f_\lambda(x,u,\nabla u)\,dx
\tag*{$\text{(\theequation)}_\lambda$}
\end{equation}

とすればよい. $\text{(\ref{eq:1})}_\mu$ みたいなことをしても, 式番号の対
応がつく.

カレントバッファの文字コード変更

カレントバッファの文字コードを変更するには

C-x RET f

で変更したあとに保存する. 文字コードを変更して読み直すときには

C-x RET r

とする.

行末の無駄な空白を削除する

gitでcommitさせるときのエラー

trailing whitespace

は「行末に無駄な空白があるよ」というエラー. これを一気に削除してくれるのが下記のコマンド

M-x delete-trailing-whitespace

これは結構便利.

外部ディスプレイの設定

$ cvt 1024 768

で出力されたデータを元にして (例としては下記の通り)

Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync


$ xrandr --newmode "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
$ xrandr --addmode VGA "1024x768_60.00"

とする. そしたら

$ xrandr --output VGA --mode 1024x768_60.00

で解像度1024x768で出力できる.

2011年6月17日金曜日

wineとcups-pdfとMS Office ファイルたち

MS OfficeのファイルをLinuxの上だけで、pdfにかえてしまう方法がわかったのでまとめておく。

まず、wineをインストールし、winecfgを起動させる。そしたら、

wine notepad

として, notepadを起動し, 編集→フォントとして, フォントを適当に変更させておく.

効果があるかはわからないけど, .wine/drive_c/windows/Fonts/の中に適当にフォントのシンボリックリンクをいれておいた(ipaフォントとか).

次に, MS Office viewer (Word viewer, Excel viewer, Powerpoint viewer)とかをダウンロードして, たとえば

wine PowerPointViewer.exe

などとして, インストールする. 文字化けしてたりするが, 気にしないことにする.

そしたら, 例えば .wine/drive_c/Program Files/Microsoft Office/OFFICE11 の中にWORDVIEW.EXEがあるから

wine WORDVIEW.EXE

とすれば, word ファイルが読める.

debianではxournalがあるから, pdfファイルに何かを書き込むのは, 簡単にできる. だから, 読みこんだファイルをpdfで書き出してしまえばよい. これはmatsumoto さんのアイデアをちょっと考えていたら, pdfに出力する仮想プリンタを用意すればいいじゃないかということに気がついて, やってみたら, うまくいったというお話.

実際, Linuxは比較的pdfと相性がよい. というよりは, よくなったというのが正しい言い方. 最近のguiのプログラムは印刷するときに, pdfファイルとして書き出すことができる. しかし, windowsはそうもいかない. なら, 仮想プリンタを用意すればよいので, cups-pdfをインストールすればよい.

追記: cups-pdfでppdファイルをこちらで指定すると, 文字の認識も日本語こみでうまくいくみたい. 例えば, Brotherのポストスクリプトプリンタのppdファイルを使ったらうまくいった. おそらく, デフォルトのppdファイルは日本語の面倒を見てくれない様子. そして, cups-pdfの実装については, この記事が詳しい.

# つまり, psファイルの時点で, 文字情報が残っていれば, pdfでも文字情報が残ってくれるだろうという気がする.

ちょっと疑問に感じたことをひとつ. Linux上でcups-pdfは何のために使うのだろう.

debian Linuxでadobe readerの印刷

ちょっと落とし穴にはまったので, ログを書いておく.

adobe readerは debian-multimediaからインストールするのが簡単

/etc/apt/source.listに

deb http://www.debian-multimedia.org squeeze main non-free

を追加して

sudo aptitude update

とする. 文句を言われるが, 気にせずに

sudo aptitude install debian-multimedia-keyring

として, debian-multimedia-keyringをインストールする. そしたら,

sudo aptitude update
sudo aptitude install acroread acroread-l10n-ja

とすれば, acroread一式がインストールできる.

印刷をするためには, cups-bsdが必要. これではまった. acroreadはlprを使って印刷するのだが, 最小構成からインストールすると, cups-bsdをインストールしていないことがある. 実際にcupsだけをインストールしたときは, cups-bsdはインストールされない(suggestはされる). また, lprをインストールしても, acroreadはcupsでの印刷を前提にしてコマンドを用意するため, オプションがあわずに失敗する. これに気がつかずになかなか苦労した.

ちなみに, acroreadが必要になったのは, 紙のサイズに合わせた拡大, 縮小をしてから印刷したかったため. acroreadを使わずに印刷する方法はあるのだろうか?pdfを見るだけなら, okularがお勧め. 余白を消去してくれるビューアはありそうでなかった機能. androidとかでこの機能のついたpdf viewerがあったら, 人気になること間違いないだろうな.

2011年5月25日水曜日

mewのバックアップ、リストアの仕方

emacsのmewのバックアップは, .mew.elと.signature, Mailディレクトリを保存しておけばよい. 逆にリストアするときは, これらのファイルをホームディレクトリに保存すればよい.

2011年5月9日月曜日

Windowsでlpdポートを使う方法

  1. LPRプロトコルの利用を可能にさせる.

    [コントロール パネル]の[プログラムの追加と削除]を起動し, [Windows コンポーネントの追加と削除]を実行する. するとWindowsコンポーネント・ウィザードが起動するので, [そのほかのネットワークファイルと印刷サービス]を選択して[詳細]ボタンをクリックし, その中にある[UNIX 用印刷サービス]のチェック・ボックスをオンにして, これをインストールする.

  2. プリンタのインストール

    ドライバのインストールとポートの設定を同時に行うのは, エラーがでたときに原因がわかりにくくなるので, まず, ドライバを「ローカルプリンタとして」インストールする.

    具体例として, プリンタがRicoh IPSiO CX8800だったら、 対応するドライバは Ricoh IPSiO CX8800のRPCSドライバでよい. ネットワークプリンタの設定はあとでする.

  3. ポートの設定

    [コントロール パネル]の[プリンタとFAX]を選び, 先にインストールしたプリンタのプロパティを見る. そしたら, [ポート]タブをクリックすると, (例えば)LPT1:にチェックがついているはず. そしたら, [ポートの追加]を選んで, LPR Portを選択する. そのあと, [LPDを提供しているサーバの名前またはアドレス]にはプリンタのIPアドレス, [サーバのプリンタ名または印刷キュー]は例えばqueueを指定する. (もしかしたら, queueのかわりにプリンタ名を書いてもよいかも?)


    ちなみにプリンタのIPアドレスは, 名前(hostname)がhogehogeの場合

    $ host hogehoge

    とか

    $ nslookup hogehoge


    とかしてみればわかる.

参考 web page http://www.atmarkit.co.jp/fwin2k/win2ktips/807lpr/lpr.html

手動での時計合わせ

ntpアクセスが遮断されているところで時計を合わせたいときは,
たとえばhttp://www2.nict.go.jp/w/w114/tsp/JST/JST5.html
で正確な時刻が得られるので,

# date -s "2011/04/30 18:59:40"
# hwclock -w


などとする. システムの時計のずれはインストールやアップデートの障害になることもあるので, うまくいかないときはknoppixとかでシステム時計を修正してからインストールとかするのもありかもしれない.

2011年5月2日月曜日

dvipdfmxでのfont埋め込み

まず, どっかから, フォントをインストールしてくる. 例として, IPAフォントを, debパッケージでインストールした場合で話を進める

そのあとは,

$ sudo mkdir /usr/share/texmf/fonts/truetype
$ sudo ln -s /usr/share/fonts/truetype/ipafont-jisx0208/ipam0208_for_legacy_compatibility.ttf /usr/share/texmf/fonts/truetype/ipam.ttf
$ sudo ln -s /usr/share/fonts/truetype/ipafont-jisx0208/ipag0208_for_legacy_compatibility.ttf /usr/share/texmf/fonts/truetype/ipag.ttf
$ sudo ln -s /usr/share/fonts/truetype/ipafont-jisx0208/ipamp0208_for_legacy_compatibility.ttf /usr/share/texmf/fonts/truetype/ipamp.ttf
$ sudo ln -s /usr/share/fonts/truetype/ipafont-jisx0208/ipagp0208_for_legacy_compatibility.ttf /usr/share/texmf/fonts/truetype/ipagp.ttf


として, フォントのシンボリックリンクをはる(Windowsだと、シンボリックリンクを作るより、フォントをまるごとコピーした方が簡単かもしれない). これは, texでフォントのある場所を特定させるためにやっている. Linuxの場合はシンボリックリンクを作っておけば, 元のファイルのコピー(みたいなもの)として機能する. さて, シンボリックリンクをはったら

$ sudo mktexlsr
$ sudo update-texmf


として, texのデータを更新しておく(Windowsでは、多分不要).

次に,

############## ここから
%%
%% embedding ipa fonts
%%
%
rml H ipam.ttf
gbm H ipag.ttf
rmlv V ipam.ttf
gbmv V ipag.ttf
% 
##########ここまで


なファイルを作り, /etc/texmf/dvipdfm/ipa.map として保存する. これで準備は完了.

実際に埋め込みpdfを作るには

$ dvipdfmx -f ipa.map hogehoge.dvi


とすればよい(何かエラーらしきものがでているが, どうやら, フォントの名前の一部を省略しているようす. pdfの出力に問題はなさそうなので, 気にしないことにする).

ついでにdebian lennyの頃は

$ sudo ln -s /etc/texmf/dvipdfm /etc/texmf/dvipdfmx


としておくと, Could not open config file “fontmapsx”というエラーがでなくなるが, squeezeでは不要だと思う. というよりは, やっちゃいけなさそう(dvipdfmxフォルダがあるため).


追記: squeezeになって, やり方はこのままでいいのだが, ファイルのおいてある場所が微妙に変更されている.

tmpfs と web browserのキャッシュ

tmpfsを/tmpで使うには

sudo rm -rf /tmp/*


をしたあとに, 以下を/etc/fstabに追記

tmpfs /tmp tmpfs defaults,size=128m 0 0


web browserのキャッシュをtmpfsで使うには, firefoxの場合はabout:configか
らbrowser.cache.disk.parent_directory を作って(新規→文字列) /tmpを入れ
ておく.

google chromeの場合は単に起動オプションとして

--disk-cache-dir="/tmp/Chrome_Cache" --disk-cache-size=26214400

とすればよい(改行されてしまっているが一続き. cache-とsizeの間にスペースは入らない).

operaの場合はurlにopera:config#UserPrefs|CacheDirectory4と入力して, 値を/tmp/opera_cache とかにすればよい.

2011年4月13日水曜日

pdftkのの使い方

Linuxでpdfを編集できるソフトとして, pdftkがある. コマンドラインでしか使えない(かもしれない)が, フリーなわりにかなりいろいろなことができる.

pdfの結合

$ pdftk hoge1.pdf hoge2.pdf cat output hoge.pdf

でhoge1.pdfとhoge2.pdfをくっつけて, hoge.pdfにする.

pdfの抽出

$ pdftk hoge.pdf cat 2-5 output hoge2-5.pdf

でhoge.pdfのpp.2からpp.5までを抽出して, hoge2-5.pdfに出力する.

pdfに背景の追加

$ pdftk foo.pdf background bg.pdf output hoge.pdf

で, foo.pdfにbg.pdfを背景としてくっつけて, hoge.pdfに出力する. pdfファイルの書類をTeXで作ろうとするときに結構便利

pdfのパスワードを解除する

$ pdftk foo.pdf input_pw hogehoge output hoge.pdf

で hogehoge をパスワードに持つpdfファイルfoo.pdfから, パスワードの ないファイルhoge.pdfを作成する. 覚えられないパスワードを設定された ら, これで解除可能.

偶数ページの上下を入れかえる

$ pdftk A=hoge.pdf B=hoge.pdf shuffle Aodd Bevendown output fugafuga.pdf

で hoge.pdf の偶数ページの上下をひっくりかえしたfugafuga.pdf を作成する

他にも, ページを削除したり, パスワードをつけたりできる.


ファイルをpdfに変えるには, psファイルを出力させて, ps2pdfでpdfにできるわ
けなので, Linux環境下でのpdf作成は比較的簡単(なおかつメモリを喰わない)気
がする.

Windowsでの, ネットワークカードのmacアドレスの調べ方

何らかの理由で, macアドレスを知りたいときは, Windowsの場合, コマンドプ
ロンプト(スタート→すべてのプログラム→アクセサリ→コマンドプロンプト
or スタート→ファイルを指定して実行→command) から


ipconfig /all


とすればよい. vistaの場合, ipconfigのパスが通っていないことがある.
ipconfig.exe は c:/WINDOWS/system32/ipconfig.exe にある.