LaTeXによるQSLカードの作成

事の発端

事の発端は、2005年All JAコンテストに参加したことだ。久しぶり(比較的)まじめに参加した。21MHzシングルオペQRP部門で、50局余りと交信した。コンテスト終了後やることといえば、後片付けと書類書き。あとはQSLカードの発行。コンテストでQSLカードを出さないというポリシーの人もいるようだが、私のようにコンテストでもないとQRVできない者にとって、QSLカードはコンテストでしか得られないものである。たとえ邪道だとしても。

最近コンテストの書類はMailで出せるようだ。サマリシートはXMLみたいな書式だ。LogはzLog等が吐くフォーマットを使わなければならないらしい。 コンテスト中はノートに書いていたので、zLogをダウンし入力し無事書類を出すことができた。

次はQSLカード書きである。私は書類が嫌いだ。特に紙に書く書類が。旅費の申請書を年に数回書く必要があるのだが、B5の紙でだいたい3回は間違って書き直している。これで一時間近い時間を浪費する。QSLカードも然り。あれは紙なのだ。3枚に1枚は間違う。で書き直す。QSLカードは手作りであまり金がかかっていないとはいえ、紙代だけで1枚8円する。50局余りと交信したので、70枚近く必要だ。うーむ。どうしたものか。

そこでせっかくLogデータをデジタル化したのだから、自動的にQSLカードを生成できないだろうかと考えた。私はUNIX人間なので、LaTeXでカードをデザインして、交信データのところはマクロにしておけば、さっき作ったログファイルをスクリプトでちょちょいとやればできそうだ。きっとQSLカードのデザインの部分は、誰かがQSLとかいうスタイルファイルを用意していてくれて、それを使えばあーら楽チン。と目論んだ。

甘かった。QSL、TeXでググったところ、目論んだ物は出てこなかった。そこでしぶしぶ自分でデザインすることにした。

デザイン

デザインはシンプルなものだ。必要最小限のものだと思う。これは私のTeXの能力がこの程度ということだ。このソースを以下に示す。

ほとんどの情報をハードコートしている。スタイルファイルにはなっていない。私のコールサインは画像になっており、GIMPのScript-FuにLogoという絶好のマクロがあったのでそれを使って生成した。callsign.psという名前で保存し、埋め込まれている。

マクロでRSTやバンド、交信日時や相手のコールサインを指定する。これはzLogが生成したログファイルをAWKで編集し、data.texというファイルに保存してinputコマンドでソースに埋め込んでいる。

生成

ここまでできればあとは簡単だ。data.texをログファイルから生成し、コンパイルして印刷するだけだ。今回使用したスクリプトを以下に示す。

印刷

今回Linuxから印刷したかったのだが、ハガキサイズに印刷する方法を知らないので、PDFにしてWindowsから印刷することにした。LaTeXやdvipdfmはA4サイズで出力するが、ソースに紙サイズを指定しているので印刷は可能である。ただAcrobat Readerで印刷するときに、プリンタの設定で紙サイズをハガキにする必要がある。 1QSLカード1PDFなので印刷は面倒臭い。が、書き直すよりはマシか。Linuxから印刷できればここも自動化できるのだが。もしも情報を持っているなら、教えていただきたい。

まとめ

QSLカードを交信データから自動的に生成するスクリプトを作成した。これはLaTeXであらかじめQSLカードをデザインしておき、交信データの部分をマクロにしておく。ログデータファイルからこのマクロに値を指定することでQSLカードを生成することができる。

印刷は、DVIファイルをdvipdfmxコマンドでPDFに変換してWindowsで印刷した。このスクリプトでは1QSLカード1PDFファイルなので、印刷に手間がかかるという問題がある。印刷をUnixからできれば、印刷作業も自動化することができるであろう。