ループ処理でメモ用の罫線を作る

近、テキストを作っていて「右ページはメモページ」という体裁を必要とすることがあった。
要は、\dotfill\\を繰り返せばよいのだけれど、そういうページが出てくるたびにこれを20回も繰り返すのはイヤなので、マクロ化したくなった。ページの大きさに合わせて行間や行数も変更できたらいいな…ということは《繰り返し処理》が必要となる。

でもこれまでに作ったことのあるマクロはいずれも単発のマクロばかりで、《繰り返し処理》は初めての挑戦…参考になるページを探したら、「TeXのループ構文」という詳しい記事が。TeXの深い話(いつも難しすぎてヒョエ~と感嘆するだけ…汗)を紹介してくれるZ.R.さんのマクロツイーターの記事。

そこにあった九九を記述するマクロを参考に、以下のようにマクロを組んでみた。デフォルトの行間を3zwに指定しておきたかったので、\defではなく\newcommandを使用したけれど、例を見たら改変はしやすかった。先達はあらまほしきことなりだね。

ところが、最初を《メモ》と記した行にしたら、2行目以降のドットと揃わなくなった…orz。
ここをきちんと揃えるには、単純な\dotfillではなくて\leadersを使うとよいようだ。\leadersを用いるとドットを引いた後で文字が出力されるそうで、そうなれば版面全体でドットの縦の位置が揃う。以下は、5ポイントの幅の中央にピリオドのあるボックスを端から並べる、という罫線。(参照:LaTeX2e標準コマンド・ポケットリファレンスp.436)

この\mydotsを用いて、「メモページ」を作ると、以下のようになった。行間の変更が局所的になるように定義部分を\bgroup…\egroupで囲っている。

これでめでたく「メモページ」の出来上がり!書式は「\memopage[行間(単位zw)]{行数}」というもので、オプションは数字のみ、行間のデフォルトは「3zw」に自動設定。行数の調整もできるからページの一部をメモにする、という体裁も大丈夫だし、うまくまとめられてホッとした。
wpid-memotest-2013-09-13-16-22.png


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です