mkhexgrid

名称

mkhexgrid - ヘクスグリッドを生成する

書式

mkhexgrid [option]... [specfile [outfile]]

解説

mkhexgrid は PNG,PostScript,Scalable Vector Graphics(SVG)の各ファイル形式でヘクスグリッドを生成する.ヘクス番号や中心点を加えることもできる.specfile はヘクスグリッドの変数(各要素の値)を書き込んだファイルの名前であり,outfile は出力されるファイルの名前である.outfileを指定しなければ結果は標準出力に出力される.specfileを指定しなければ変数を標準入力から読み込ませることもできる.

オプション

オプションの記法

mkhexgrid はコマンドライン引数の処理に GNU getopt を用いる.各オプションは,引数がなければ --option-name (--オプション名),引数をとるオプションは --option-name=argument (--オプション名=引数)の形で書く.

長さおよびサイズは PNG および SVG ではピクセルを用い,このとき単位は指定しない.PostScript形式で出力する場合は,長さおよびサイズはインチ(in),ミリメートル(mm),ポイント(pt)のいずれかで指定できる.単位を指定しなければポイントが使用される(1インチ = 72ポイント = 25.4ミリ).PNG形式では長さおよびサイズは整数でなければならないが,例外的にヘクス番号のサイズのみは小数を用いてもよい.角度は全て度数法で,小数を用いる.

色の指定は PNG および SVG では 16進数の RGB形式(RRGGBB)を用いる(例えば,FFFFFF は白,8C6AC6 は紫になる).PostScript形式では R,G,B の形式を用い,R,G,B はそれぞれ 0 から 1 の間の値を使用する(例えば,1,0,0 は赤, 0.8,0.8,0.8 は薄いグレーとなる).

透明度は PNG形式では 0 から127 の範囲の整数で,SVG形式では 0 から 1 の間の実数(小数)で指定する.PostScript形式では無視される.

出力のオプション

--antialias
アンチエイリアスをかける.PNG形式で出力する場合のみ有効.なぜならば PostScript形式と SVG形式ではもともとアンチエイリアスがかかっているからである
--output=type
type の部分で出力形式を指定する.指定可能な値は,png(PNG形式),ps(ポストスクリプト形式),svg(SVG形式)

グリッドのオプション

グリッドを描くためには,ヘクスの幅,ヘクスの高さ,ヘクスサイドの長さ,画像の幅,画像の高さ,縦列数(column),横列数(row)の全てを指定する必要はない.最低限必要な指定がなされていればグリッドが描かれ,指定を省略したものは自動計算される.

--hex-width=length
ヘクスの幅を length で指定する
--hex-height=length
ヘクスの高さを length で指定する
--hex-side=length
ヘクスの一辺の長さを length で指定する
--image-width=length
画像の幅を length で指定する
--image-height=length
画像の高さを length で指定する
--image-margin=m
--image-margin=t,r,b,l
前者は四方の余白を m で指定する.後者は時計回りに上,右,下,左の余白をそれぞれ trbl で個別に指定する
--centered
余白を除いた描画領域内で画像を中央に表示する.横列数および縦列数を指定する場合よりは自動計算させる場合に便利
--rows=n
ヘクスの横列を n 個描く.n は正の整数でなければならない
--columns=n
ヘクスの縦列を n 個描く.n は正の整数でなければならない
--grid-color=color
グリッド線の色を指定する.デフォルトは 50% のグレーで,PNG および SVG では 808080,PostScriptでは 0.80808,0.80808,0.80808
--grid-opacity=opacity
グリッド線の透明度を指定する.デフォルトは完全な不透明で,PNG 出力では 0,SVG 出力では 1 である.PostScriptでは無視される
--grid-thickness=size
グリッド線の幅を size で指定する.デフォルトは PNG と SVG では 1ピクセル,PostScriptでは 1ポイントである
--grid-grain=grain
ヘクス列の方向を指定する.指定できる値は h(水平方向)および v(垂直方向).水平方向を指定した場合,横列が水平に並び,縦列は蛇行する.垂直方向はその逆で,こちらがデフォルトである
--grid-start=start
ヘクス列の方向が垂直の場合(grid-grain=v),最初の縦列が凹(in)になるか凸(out)になるかを指定する.ヘクス列の方向が水平の場合は(grid-grain=h),最初の横列が凹(in)になるか凸(out)になるかを指定する.指定できる値は凹が i,凸が o である.どの列が最初かはヘクス番号の基点(coordinate-origin)によって決まる

ヘクス番号のオプション

これらのオプションはヘクス番号の表記とヘクス内での出力位置に影響する.

--coord-color=color
ヘクス番号の色を指定する.デフォルトは 50% のグレーで,PNG および SVG では 808080,PostScriptでは 0.80808,0.80808,0.80808 である
--coord-opacity=opacity
ヘクス番号の透明度を指定する.デフォルトは完全な不透明で,PNG 出力では 0,SVG 出力では 1 である.PostScriptでは無視される
--coord-format=format
ヘクス番号の書式を指定する.書式の記法は C言語の printf 関数で使われるものに似ている.以下の特別な符号は,文字列中に値を代入するためのものである:
%c
ヘクスの縦列の番号を数字で出力する
%r
ヘクスの横列の番号を数字で出力する
%C
ヘクスの縦列の番号をアルファベットの大文字で出力する
%R
ヘクスの横列の番号をアルファベットの大文字で出力する

表示幅は % と書式制御文字の間に数字を挿入することで指定できる.表示幅の頭に 0 を加えればゼロを詰めた数字とすることができる.書式にアルファベットを用いる場合,デフォルトでは AA の次は AB となる.文字を重複させる番号付け(AA の次が BB となるような数え方)にしたい場合は,書式制御文字の前に t を挿入することで指定できる.パーセント記号は %% と指定する.デフォルトの書式は %02c%02r である.ヘクス番号を出力したくなければ,書式に空文字列("")を指定すればよい

--coord-font=font
ヘクス番号の表示に使用されるフォントを指定する
--coord-size=size
ヘクス番号の文字の大きさをポイント数で指定する.デフォルトは SVG では 8ピクセル,PNG および PostScript では 8ポイントである.PNG 形式での出力で単位にポイントを使用するのはここだけである
--coord-bearing=theta
ヘクス番号をヘクスの中心から反時計回りに theta 度の位置に配置する.デフォルトは 90度で,ヘクスの中心の直上である
--coord-distance=length
ヘクス番号をヘクスの中心から length の位置に配置する.デフォルトは 0
--coord-tilt=theta
ヘクス番号を水平方向から反時計回りに theta 度だけ傾ける.デフォルトの傾斜角は 0度で,水平方向に文字が並ぶ
--coord-column-skip=n
縦列番号が n で割れるヘクスのみで番号を表示する.デフォルトは 1 で,全ての縦列で番号が表示される
--coord-row-skip=n
横列番号が n で割れるヘクスのみで番号を表示する.デフォルトは 1 で,全ての横列で番号が表示される
--coord-column-start=n
縦列の番号を n から始める.デフォルトは 1
--coord-row-start=n
横列の番号を n から始める.デフォルトは 1
--coord-origin=corner
ヘクス番号の基点の位置を指定する.指定できる基点は左上(upper left)が ul,右上(upper right)が ur,左下(lower left)が ll,右下(lower right)が lr.デフォルトは左上

ヘクス中心点のオプション

--center-style=style
ヘクス中心点の形状を style 指定する.指摘できるスタイルは,中心点なしが n,ドットが d,十字が c
--center-color=color
ヘクス中心点の色を指定する.デフォルトは 50% のグレーで,PNG および SVG では 808080,PostScriptでは 0.80808,0.80808,0.80808 である
--center-opacity=opacity
ヘクス中心点の透明度を指定する.デフォルトは完全な不透明で,PNG 出力では 0,SVG 出力では 1 である.PostScriptでは無視される
--center-size=size
ヘクス中心点のサイズを size で指定する.デフォルトは,PNG および SVG では 3ピクセル,PostScriptでは 3ポイントである.PNG形式で出力する場合,サイズは整数で指定しなければならない.

背景のオプション

--bg-color=color
背景色を指定する.デフォルトは,PNG 形式では FFFFFF,SVG および PostScript では無色である
--bg-opacity=opacity
背景色の透明度を指定する.デフォルトは完全な不透明で,PNG 出力では 0,SVG 出力では 1 である.PostScriptでは無視される
--matte
画像の余白部分を背景色で塗り潰さないようにする

その他のオプション

--
オプションの羅列を打ち切る.-- の後の記述はオプションとして解釈されない.ファイル名が 2つのダッシュ(--)で始まるスペックファイルを読み込みたいときに便利
--help
ヘルプを表示して終了する
--version
ヴァージョン情報を表示して終了する

スペックファイルの記法

ヘクスグリッドを生成するために必要になるオプションが多すぎるなら,スペックファイル内で変数を指定することもできる.スペックファイルは標準入力から読み込むことができる(オプションなしの最初の引数で指定する).スペックファイルの内容は,オプション名と値を組にして = で区切ったもので,1行ごとに 1つのオプションを記述する.# の後はコメントとみなされ,オプション名と値のペアの後に置いたり,行全体をコメントとすることができる.スペース(空白)を含む値は二重引用符(")で囲まなければならない.二重引用符自体を含む場合は,二重引用符の前にバックスラッシュを置く.コマンドラインで値を取らないオプションでは,スペックファイル中でダミーの値を与えなければならない.オプションがコマンドラインで指定されている場合,スペックファイル中で指定したオプションは上書きされてしまう

例:

# スペックファイルの例
output = png
hex-side = 30     # これが行末のコメント
coord-format = "%C\" %02r"
antialias = true  # 'true' はダミーの値

上の例ではヘクス番号の書式が A" 01 のようになる.誰もそんな出力は望まないだろうが,これはオプションの値にスペースと二重引用符を含める方法を示すためである.

22×34インチの用紙全体に,0.5 インチのヘクスを,水平方向に描く:
mkhexgrid --output=ps --image-width=34in --image-height=22in --hex-side=0.5in --coord-bearing=0 --coord-dist=0.3in --coord-size=8 --grid-thickness=1 --coord-font=Helvetica --grid-grain=h --grid-start=o --coord-tilt=-90 --centered -o test.ps

作者

Joel Uckelman <uckelman@nomic.net>

バグ

バグは <mkhexgrid-bugs@nomic.net> まで報告されたし

著作権

Copyright © 2006 Joel Uckelman.

このプログラムはフリーソフトウェアである.GNU 一般公衆ライセンスの規定の下で再頒布可能.法的には無保証とする