あえてEmacsでカレンダーを印刷してみる
ちょっとした予定をたてるのに使い捨ての紙のカレンダーがあると意外と便利です。今日は あえて Emacsでカレンダーを印刷してみた話です。
Emacsで印刷できると書きましたが、正確にはEmacsから直接印刷できるわけではありません。EmacsにはカレンダーのLatexファイルを生成する機能があり、それをLatex系のコマンドで処理することでPDFファイルを作成してから印刷します。
なんて面倒なんだ!と思われることでしょう。僕もそう思います! 僕はMacを使っているので、標準のカレンダーアプリから印刷すれば一瞬で完了です。
それでもなぜEmacsでやるのでしょうか?
・・・楽しいからです。それだけです。
日本語化もされていません。完全に英語版のカレンダーです。
おまけに僕はLatexなんてよくわかりません。本当にカレンダーを印刷するためだけにLatexを使っていますので詳しい人から見ればつっこみどころ満載かもしれません。
それでもEmacsにはこんな素敵な機能もあるんだよ!という宣伝をしたいのでこの記事を書いています。
ではどうぞご覧ください。サブタイトルはEmacsの関数名です。
年間カレンダー
cal-tex-cursor-year
cal-tex-cursor-filofax-year
※用紙設定がA4のままでPDF化しているので、カレンダーによっては余白が広くなっています。
月間カレンダー
cal-tex-cursor-month
週間カレンダー
cal-tex-cursor-week
cal-tex-cursor-week-iso
cal-tex-cursor-week2
cal-tex-cursor-week2-summary
cal-tex-cursor-filofax-week
cal-tex-cursor-filofax-2week
ダイアリー
cal-tex-cursor-day
cal-tex-cursor-filofax-daily
横型
cal-tex-cursor-month-landscape
cal-tex-cursor-year-landscape
印刷する方法
それでは実際に印刷する方法を説明しましょう。
まずは準備としてlatexコマンドが必要になります。僕の動作環境ではMacPortsの texlive-latex
パッケージを使っています。インストールには次のコマンドを実行してください。
$ sudo port install texlive-latex
恐らくLinux系でもapt-get等を使ってインストールしていただければ、たぶん大差ないと思います。
次にEmacsで M-x calendar
を実行してカレンダーを表示させます。
自分が印刷したい日付にカーソルを移動させて、上記の関数名を M-x
します。
すると、 calendar.tex
というバッファを生成されますので、適当なファイル名をつけて保存します。
このバッファ上で、 C-c C-b
をするとLatexで処理される流れなのですが、僕の環境ではうまく動作しなかったので、別途、直接コマンドラインを打つことにしました。
ターミナルアプリか、Emacs内のShellモードから、次のコマンドを実行します。 (ファイル名は calendar.tex
で保存)
$ pdflatex calendar.tex
コマンドが正常に動けば、 calendar.pdf
というPDFファイルが同一ディレクトリに作られているはずです。あとは印刷するだけ。
印刷する方法(横型の場合)
ただし最後の横型だと、レイアウトが崩れてしまいます。(用紙設定が縦型のまま)
対応としては、pdflatexではなくlatexコマンドを使います。
$ latex calendar.tex
出力される calendar.dvi
というファイルに対してさらに次のコマンドを打ちます。
$ dvipdf calendar.div
この結果、 calendar.pdf
が作られていると思います。
まとめ
自分自身がlatexに疎いため、中途半端な内容ですみません。少なくとも日本人には実用的とは言えないかもしれませんし、需要があるのかはわかりません。しかしEmacsでこんな機能まであることが驚きなので、紹介してみました。