魔術師見習いのノート

プロフィール

魔術師見習い
Author魔術師見習い-_-.
Twitter魔術師見習い

コンピュータ関係のメモを主に書きます.

MENU

LaTeXではがき

投稿日:
タグ:

喪中はがきを書くことになったので,自分が普段よく使う環境(Linux)ではがきを書く方法をいろいろ調べてみた.

プリントマジック
はがきデザインキット
Adobe AIRランタイム上で動くアプリ.Linux版のAdobe AIRのサポートは既に終了している.
KreetingKard
KDEのはがき作成アプリ.最後に更新されたのは2005年.
Libre Office
オープンソフトのOfficeソフト.はがき専用のソフトではないが理論的には作成可能なはず.
LaTeX
テキストベースの組版処理システム.テンプレート次第ではがきも作成可能.リンク先はそのテンプレート.
結論として,はがきはLaTexで書くことにした.GUIではないため,はがき作成ソフトのような完成図を見ながら細かい位置調整するようなことはできないが,スクリプトを書くことで住所を書いたCSVファイルから自動生成するようなことができる.


基本的にここではLaTexに関する詳しい説明は行わず,自分が印刷に至るまでに行ったことを記述している.

latexとはがきというキーワードでググると,はがき用のクラスファイルとサンプルコードが見つかった.

バックアップ
さっそくコンパイルして,印刷してみると,郵便番号の記入欄にうまく番号が入 らなかった(普通紙で印刷し,はがきと重ねてみた).また,ウラ面はギリギリは がきの枠に収まっていたものの,やはり中心が真ん中になっていなかった.その ため,変数をいろいろ調整して再度印刷してみた.しかしどういう訳か一部与えたパラメータが適応されなかった.

原因を追求しようとしても,LaTeXの知識は新たに何かを定義したりするほど詳しい訳ではないので,邪道にもクラスファイルのコードを見ながら,それらしい部分を探して直接コードを書き換えた.変更前と後の差分をdiffで比べた結果が次の通りである.

53c53
<
\def\@hagakiSizes{height=14.8cm,topmargin=.58cm,width=10cm,leftmargin=.58cm}%
---
>
\def\@hagakiSizes{height=14.8cm,topmargin=-.78cm,width=10cm,leftmargin=.58cm}%-_-.
71c71
< \advance\oddsidemargin by -1in
---
> \advance\oddsidemargin by -3.5cm %-_-.
変更箇所ははがきサイズらと横の余白サイズの指定部分の二点.それぞれ縦の位置と横の位置を調整している. 53行目のtopmarginについては,サンプルコード2行目のtopmarginの値を書き換えるだけで調整できた.
\documentclass[height=14.8cm,topmargin=-.78cm,width=10cm,leftmargin=.58cm]{hagaki}
しかしleftmarginを調整しても横の位置の調整はできず,サンプルコードのコメントを見てもどれを変えれば良いのかよく分からなかったため,クラスファイルの71行目を直接書き換えた.この修正を施すパッチと使い方については以下の通りである.
patch < my_hagaki.patch

omote

オモテ面の宛名については,サンプルコードを見れば大体想像がつくはずである.

\omote{岡山}{太郎 & 様\cr ハナ子 & 様}{700-0000}{岡山市マンナカ町一--一\par 高級マンション}
--はコンパイルすると,-の縦向きになる.また,サンプルでは住所に使われる数字が漢数字であるが,半角数字を記述した場合横向きに縦書きされる.

とりあえず見た目を取り繕いたいだけであれば,--はーで,漢数字以外で数字を使いたい場合は全角数字を使用すれば,多少改善できた.

ura

ウラ面については,文章をどの位置に入れるかによって値を変更する.サンプルコードのうち,ウラ面の記述に関する部分がこちらである.

\ura{%
  \noalign{\vskip .7cm}%
  %\UraParBox{高さ}{行間}{文章}
  \hss\UraParBox{11cm}{2zw}{\Large\bf 謹んで新春のお慶びを申し上げます}\hss\cr
  \noalign{\vskip .5cm}%
  \hskip 5cm\UraParBox{6.5cm}{1.5zw}{%
    新春を迎え皆様のご健康とご多幸を心よりお祈り致します。\par
    本年もよろしくお願い申し上げます。\par
    \vskip .5zw
    \hskip 1zh\small 平成十二年\hskip 1zh 元旦
  }%
  \hss\cr
  \noalign{\vss}\cr
  %\UraJusho{差し出し人の郵便番号・住所・姓名印字領域の高さ}
  \hskip 5cm\UraJusho{8cm}\hss\cr
  \noalign{\vskip .7cm}\cr
}
そして実際に使ったコードの一部がこちらである.
\ura{%
  \noalign{\vskip .7cm}%
  %\UraParBox{高さ}{行間}{文章}
  \hss\UraParBox{11cm}{2zw}{\Large\bf 喪中につき年頭のご挨拶はご遠慮申し上げます}\hss\cr
  \noalign{\vskip .5cm}%
  \hskip 2.5cm\UraParBox{10.5cm}{1.5zw}{%
    ここに本年度中に賜りましたご厚情を深謝いたします\par
    明年も変わらぬご変誼のほどお願い申し上げます\par
    なお時節柄一層のご自愛のほどお祈り申し上げます\par
    \vskip .5zw
    \hskip 1zh\small 平成二十五年十二月\hskip 1zh
  }%
  \hss\cr
  \noalign{\vss}\cr
  %\UraJusho{差し出し人の郵便番号・住所・姓名印字領域の高さ}
  \hskip 6cm\UraJusho{3cm}\hss\cr
  \noalign{\vskip .7cm}\cr
}

参考サイト

一覧