2011年7月17日日曜日

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があったら, 人気になること間違いないだろうな.