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

Inkscapeでシンボル(図形部品)を描く

 このページでは、Inkscapeでシンボル(図形部品)をキャンバスに貼り付ける機能について紹介します。



(2025.01.31更新)

シンボルとは

 Inkscapeにはシンボルと呼ばれる図形部品群があって、メニューからオブジェクト > シンボルを操作するとシンボルダイアログが表示され、そこから選んだシンボル(部品)をキャンバス上に貼り付けることができます。




 まず、シンボルダイアログ上でプルダウンメニューからシンボルセット(シンボルのライブラリのようなもの)を1つ選びます。

 すると、そのシンボルセットに含まれるシンボルが一覧表示されるので、その中から選んだシンボルをキャンバスにコピー&ペーストまたはドラッグ&ドロップすることで貼り付けます。


 Inkscapeには標準でフローチャート図のようないくつかのシンボルセットが組み込まれています。

シンボルのデータの構造

 貼り付けられたシンボルオブジェクトは、オブジェクトグループと似て、複数のオブジェクトを組み合わせて作られた絵図ですが、オブジェクトグループはキャンバス上に描かれた個々のグループごとに絵図データが存在するのに対して、シンボルオブジェクトはドキュメント中にテンプレートとして埋め込まれている(目には見えない)シンボルデータを、キャンバスに配置された各シンボルオブジェクトから参照する(リンクする)ことで表示されるものです。

 シンボルダイアログ上の同じシンボルを複数の別々のシンボルオブジェクトとして貼り付けても、各シンボルオブジェクトからドキュメント中の同じシンボルデータが参照されているだけで、そのシンボルのシンボルデータの実体は1個のドキュメントの中で1つです。

 なので、オブジェクトグループのようにそれぞれを独立に編集することは基本的に不可能で、位置と大きさは変更できますが、それ以外のスタイルの変更や変形などはほとんどできません。「ほとんど」と言っているのは、まれにできる場合もあるからですが、どんな場合に可能でどんな場合に不可能かはそのシンボルデータの中身によるので、線引きは難しいです。この辺については、シンボルとシンボルオブジェクトとの関係を、クローン元オブジェクトとクローンオブジェクトとの関係に読み替えれば分かりやすいかもしれません。詳しくは「クローンを作る」のほうでまとめています。

 シンボルはSVG形式のひとつの要素(<symbol>)として標準化されているそうです。見方を変えると、SVG形式のシンボルデータを扱うためのユーザインタフェースをInkscapeが提供しているとも言えそうです。

シンボルオブジェクトのスタイル

 シンボルオブジェクトのスタイルを変更しようとしても、参照先のシンボルデータの中ですでに設定済みの属性(シンボルを作成するときに設定した属性)を変更することはできません。

 シンボルデータの中で設定されていない(アンセットされた)属性は各シンボルオブジェクトのほうで追加設定することができますが、どの属性がシンボルデータの中で設定されていない属性なのかは画面上では分かりません。

 例えば、あるシンボルのストロークが設定されていない場合は、そのシンボルのシンボルオブジェクトのストロークの色や線種などをシンボルオブジェクトごとに変更することができます。同じシンボルの他のシンボルオブジェクトには影響しません。

 ただし、変更できるスタイルはシンボルオブジェクト全体のスタイルであって、シンボルに含まれているオブジェクト1つずつのスタイルは変更できません。例えば次のような信号機のシンボルが組み込みシンボルセットにありますが、信号機全体の色を変更することしかできません。

 一方で、シンボルとしてすでにシンボルデータの中でストロークが設定されている場合は、選択したシンボルオブジェクトのストロークの変更操作を行うことはできます(拒否されない)が、見た目は変化しません(というか変更しても無視されてシンボルデータのほうのスタイルで表示されます)。

シンボルオブジェクトを通常のオブジェクトに

 シンボルとして貼り付けた図形を編集(スタイルの変更など)したいが、シンボルオブジェクトのままでは編集できないので、通常のオブジェクトに戻したいときがあります。その場合は、貼り付けたシンボルオブジェクトを選択しておいて、メニューから編集 > クローン > クローンをリンク解除を操作し、さらにオブジェクト > グループ解除メニューを操作すると、ばらばらのオブジェクト(シンボルを作成したときに組み合わせたオブジェクト群)になるので、後は通常のオブジェクトと同じように編集することが可能になります。

自前のシンボルセットの追加

 組み込まれているシンボルセット以外に自前のシンボルセットを追加して利用したい場合に、どんな手順を踏むのが標準的なのかはよくわかりません。Inkscapeの解説コンテンツにはシンボルについて説明がほとんど見当たりません。

 そこで、自分で考えた手順(わかりやすい方法)と、検索した結果から類推した手順(ちょっと面倒な方法)とを、以下にメモしておこうと思います。

自前のシンボルセットの追加(わかりやすい方法)

 この方法は、現在のドキュメントと表示される特殊なシンボルセットを利用しようという方法です。

 シンボルダイアログには、既存のシンボルセット以外に、現在のドキュメントという特殊なシンボルセットが1つだけあります。これを選択すると、現在開いているドキュメントのデータの中に埋め込まれているシンボルデータを抽出して、シンボルの一覧として表示してくれます。既存のシンボルセットの中から貼り付けたシンボルも、貼り付けた時点で現在のドキュメントのシンボルセットのほうにも表示されるようになります。


 また、シンボルダイアログの左下に次のような現在のドキュメントからシンボルを追加現在のドキュメントからシンボルを削除という2つのボタンがあります。



 キャンバス上でオブジェクト群(オブジェクトグループである必要はない)を選択して追加ボタンを押すと、新たなシンボルとして一覧に追加され、一覧でシンボルを選択して削除ボタンを押すと、一覧から削除され、そのシンボルがオブジェクトに逆変換されて(かつオブジェクトグループに自動的にまとめられて)キャンバスに追加されます(要するに元に戻る)。

 ・・・というふうにInkscapeの既存の解説コンテンツは説明しているのですが、現実の内部の動作を遠回しに説明しているので、少しわかりにくいです。実際は「シンボルの追加=選択したオブジェクト群をシンボルデータに変換してドキュメント内に埋め込み、元のオブジェクト群はそのシンボルデータを参照するシンボルオブジェクトに差し替える」「シンボルの削除=ドキュメントにすでに埋め込まれているシンボルデータを元のオブジェクト群から成るオブジェクトグループに逆変換してドキュメントに追加する」と言い換えたほうが理解しやすいように思います

 というわけで、自前のシンボルを作成する場合は、シンボルにしたい図形を描いて追加ボタンを押し、現在のドキュメントというシンボルセットのシンボル一覧に追加します。これを繰り返せば、いろんなシンボルを追加していくことができます。ここまではInkscapeの機能をそのまま説明しただけです。

 現在のドキュメントというシンボルセットを他のドキュメントでも使えるような自前のシンボルセットにするには、この状態で、キャンバス上のすべての図形を削除することで(キャンバスを空っぽにすることで)、ドキュメント内にシンボルデータだけが残るようにします。そうしておいて例えば「自前のシンボルライブラリ.svg」のような名前でファイルに保存します。

 そして、何か別のドキュメントを編集中に自前のシンボルセットを使おうと思ったときは、この「自前のシンボルライブラリ.svg」を編集中のドキュメントにインポートしてから、シンボルダイアログ上でシンボルセットとして現在のドキュメントを選択すれば、「自前のシンボルライブラリ.svg」に埋め込まれているシンボルが一覧に表示されて既存のシンボルライブラリと同じようにキャンバスに貼り付けることができるようになるというわけです。

自前のシンボルセットの追加(ちょっと面倒な方法)

 こちらは、自前のシンボルを再利用可能なシンボルセットとしてInkscapeに登録する方法です。手順上、自前のシンボルを格納したドキュメントファイル(SVGファイル)を特殊なファイルパスの位置に保存する必要がありますが、OSごとに確認するのは難しいので、Windows 10でしか試していません。他のOSでもファイルパス以外は共通の手順になってるだろうと思いますが。

 まず、適当なドキュメントでシンボルにしたい図形を作成し、選択して、シンボルダイアログ上でシンボルセットの一覧から現在のドキュメントを選び、追加ボタンを押して、シンボルダイアログのシンボル一覧に追加します。シンボルは好きなだけ追加できます。ここまでは、1つ前の「わかりやすい方法」と同じです。

 シンボル一覧に表示されている図形は全てシンボルデータとしてドキュメント中に埋め込まれている状態です。このシンボルデータが埋め込まれているドキュメントを、次の特殊なフォルダに保存して、Inkscapeを再起動したり、新たなドキュメントを開くと、シンボルダイアログのシンボルセットの一覧に、既存のシンボルセットに加えて先ほど保存したファイルの名前も表示されるようになり、選択可能になります。

 特殊なフォルダとは、Inkscapeの環境設定ダイアログのシステムタブを開くと表示される、Inkscapeが自動的に読み込むファイルの置き場所(フォルダ)一覧のうち、「ユーザーシンボル」と書かれている欄のフォルダです。デフォルトでは「…\AppData\Roaming\inkscape\symbols」になっていると思います。

 この特殊なフォルダは隠しフォルダになっているかもしれないので、ファイルを保存する際には、隠しフォルダも表示できるようにしておく必要があるかもしれません(例えば、エクスプローラで表示メニューから隠しファイルのチェックを入れる、など)。また、「symbols」というフォルダは存在しないかもしれないので、存在しない場合は手で作ります。

 なお、「symbols」の下に保存するときのファイル名には、日本語(いわゆる全角文字)は使えないようです。日本語ファイル名にすると、シンボルセットのメニューにどういうわけか表示されません。

オリジナルシンボルの名前

 オリジナルのシンボルにしたいオブジェクトを選択して、シンボルダイアログの追加ボタンを押すだけでは、登録されたシンボルの名前は勝手に付けられてしまいます。

 あとで再利用したいので、分かりやすい名前を付けてその名前をシンボルダイアログに表示させたい場合は、追加ボタンを押す前にまずオブジェクトをグループ化し、そのオブジェクトグループの上で右クリックして表示させたメニューからオブジェクトのプロパティダイアログを次のように表示させて、「タイトル」とある欄に好きな名前を入力し、右下の設定ボタンを押して(←忘れないように!)オブジェクトのタイトルを書き換えてから追加ボタンを押すと、そのタイトルをシンボル名に使ってくれます。

 日本語でも設定できます。

 オブジェクトのプロパティダイアログではなく、「ドキュメントリソースダイアログ」上でも「タイトル」を編集できます。ドキュメントリソースダイアログでシンボル一覧を表示させてシンボル名のところをクリックしてシンボルごとの「タイトル」を編集し、Enterキーを押すと「タイトル」が変更されます。

外から入手した図形データのシンボルセットへの追加

 今分かっているのは、3種類のいずれかの形式のファイルを入手してシンボルセットとして追加することができるということです。

  1. SVG形式ファイル(<symbol>エレメントで図形部品を記述したもの)
  2. SVG形式ファイル(通常のオブジェクトグループとして図形部品を記述したもの)
  3. Visio形式ファイル(「.vss」ファイル。Visioのステンシルを記述したもの)


 「1」のファイルはすでに上に書いたように、特定の場所(フォルダ、ディレクトリ)に置くだけで、シンボルセットのメニューに表示されるようになります。

 「2」のファイルはInkscapeで直接開いて、そこに描かれている部品を順番に選択してはシンボルとして追加する(ドキュメントに埋め込む)操作を繰り返し、現在のドキュメントというラベルのシンボルセットに追加し終わったら上書きでも別ファイルでもいいのでSVG形式ファイルとして保存(このファイルには<symbol>エレメントが含まれている)してから、「1」と同じように特定の場所に置きます。

 「3」のファイルは「1」と同様に、特定の場所(フォルダ、ディレクトリ)に置くだけで、シンボルセットのメニューに表示されるようになります。ただし、心なしかシンボル一覧の表示が遅いように思うので、「2」と同様に現在のドキュメントというシンボルセットに追加した上でSVG形式ファイルに保存し直したものを置いたほうがいいのかもしれません。試したvssファイルの部品がたまたま複雑な構造のものだっただけなのかもしれませんが。

 ちなみに、「2」のファイルの図形部品をシンボルとして登録するときは、キャンバス上で順に選択して追加ボタンを押すのではなく、レイヤーとオブジェクトダイアログを表示させて、そこに表示されるオブジェクトの階層からオブジェクトグループを順番に選択して追加ボタンを押したほうが効率がよいと思います。