お絵描きソフトInkscape(インクスケープ)の使い方を初級レベルから上級レベルまで広く紹介しています。
情報追加のリクエストや分かりにくい点があれば下のCONTACTフォームからどうぞ。

Inkscapeで指定する「長さ」の単位について

 このページでは、今さらですが、Inkscapeで座標値や幅/高さなどの指定に使える「長さ(length)」の単位についてメモしておきたいと思います。

 Inkscapeで座標値や幅/高さなどの「長さ(length)」を指定する場合、数値と一緒に必ず「単位」を画面上で指定するようになっています。

 SVG形式の定義では、位置(XやY)の指定も「長さ(length)」と呼ばれる形式で行うという少しややこしい説明になっています。「座標系」がどうとかいうと話が難しくなってしまうので「長さ」という分かりやすそうなワードを当てたのかもしれないですが、それはそれでちょっと分かりにくいです。

 一方でInkscapeが保存したSVG形式ファイルの中の「長さ」のほとんどは、単位が書かれていません。一般のSVG形式のルール上では、「長さ」を単位なしで書いた場合は「px」を指定したものとすることになっているそうですが、Inkscapeの保存するSVG形式ファイルでは、「長さ」としてmmの値が単位なしで書き込まれています。そのままだとSVG形式のルールと合っていないことになりそうですが、InkscapeはさらにviewBoxの値を自動的に修正して、表示する際にmmで書かれている「長さ」がpxの「長さ」に変換されるようにしています(そうしているように見えます)。

 言い換えると、Inkscapeの画面上でどんな単位で「長さ」を指定したとしても、SVG形式ファイルに保存するときには「mm」の値に変換されています。

 すごくややこしいです。

  ちなみに、同じ長さを異なる単位で書いた場合にどんな値になるかというと、こうです。

 1 mm = 0.039 in = 3.78 px = 2.83 pt 

 フォントの大きさはたいてい「pt(ポイント)」で指定するので、10mmの大きさの図形と28.3ptの大きさの文字が同じぐらいの大きさになるということでしょうか。

 この話がどういう場面で重要になってくるかというと、Inkscapeの画面を通さずに(つまり手で描くのではなく)オブジェクトの「長さ」を設定する場面です。例えばInkscapeで保存したSVG形式ファイルをテキストエディタで直接編集する場合や、エクステンションのプログラムから自動的に設定する場合などです。一般のSVG形式であれば「長さ」の値が「px」で書かれているように見えます(単位がないので)が、InkscapeのSVG形式に限っては「mm」の数値を設定する必要があります。