コンテストに出ると、交信数が多くなるためQSLカードを大量に発行しなければならない。私の場合大量といっても100枚前後だが。最近は手書きで文字を書くことが少なくなったので、だいたい10枚に3枚は間違う。100枚なら30枚のカードを無駄にする計算になる。
最近はコンテスト書類はemailで出すことが多い。よっぽどのローカルコンテストでない限り電子書類で提出することができる。この電子書類にはQSOのデータが含まれているわけで、このデータを使ってQSLカードを自動生成できないかと考えた。 そこでデータファイルをTeXのソースに変換して、タイプセットして、印刷という方法をやってみた。
無線をやっている人は計算機が好きな人が多いから、TeXでQSLカード作っている人は絶対いると思って検索をかけてみたところ、ひっかからない。あれ?
ということで、デザインを一からやることにする。で、デザインしたのがこれ。

コールサインに用いたフォントは、フォント屋あくび印からダウンロードしたフォントを使った。非商用利用は無料で使える。感謝。
まずqsl.tar.gzをダウンロードし、適当なディレクトリに展開する。それだけ。 このQSLカード自動生成のためのスクリプトと、TeXのソースは以下の通り。
config.texを編集する。上のサンプル画像を見ながら編集するとわかりやすいだろう。コールサインは画像になっている。callsign.epsというファイルを作ってtemplate.texと同じディレクトリに置く。
qsl.txtというファイルが、ZLOG形式のQSOデータを格納しているとすると
$ awk -f genqsl.awk qsl.txt >qsl.tex
でqsl.texが生成されるので、これをタイプセットする
$ platex qsl.tex
するとqsl.dviができている(はず)なのでxdviで確認。 おそらくレイアウトを多少調整する必要があるだろう。 template.texを適宜編集して調整する。 問題がなければpsなりPDFにして印刷する。 印刷はプリンタに依存するので、余白の調整が必要になる。 何度かトライ&エラーが必要だろう。
template.texは、QSLカードのデザインを定義している。gensql.awkにZLOG形式のQSOデータを喰わせると
\documentclass[12pt]{jarticle}
\input{config}
\begin{document}
\renewcommand{\callsign}{JQ6QRP}
\renewcommand{\qsodate}{2005/10/18}
\renewcommand{\qsotime}{06:05}
\renewcommand{\qsoband}{7MHz}
\renewcommand{\qsomode}{CW}
\renewcommand{\rst}{599}
\input{template}
\clearpage
\renewcommand{\callsign}{JQ6QSO/1}
\renewcommand{\qsodate}{2005/10/18}
\renewcommand{\qsotime}{06:15}
\renewcommand{\qsoband}{7MHz}
\renewcommand{\qsomode}{CW}
\renewcommand{\rst}{599}
\input{template}
\clearpage
....
\end{document}
といったTeXのソースを標準出力に吐く。 これはtemplate.texのQSOデータの所に記載するデータを、 ZLOG形式のデータから取り出してrenewcommandで定義している。 定義した後にtemplate.texをinputすればQSLカードができる。 config.texには余白の設定やIOTA、JCC/JCG、Rigの設定を書く。
印刷は多少コツがいるだろう。印刷すべきサイズはハガキサイズなのに、 データの用紙サイズはA4だからだ。 PDFにしてWindowsで印刷したほうが、確実だろう。
私の場合は、Adobe Readerのプリンタの設定で、用紙サイズと出力サイズを ハガキにして、給紙方法を給紙トレイにしたらうまくいった。