このページでは、Inkscapeで組み込みフィルタとは別にオリジナルのフィルタを作った場合に、そのオリジナルフィルタをプルダウンメニューに追加していつでも適用できるようにする手順を紹介します。

- Contents
- 手順1:オリジナルフィルタを適用する
- 手順2:「filters.svg」を開く
- 手順3:適用済みオブジェクトを「filters.svg」にペーストする
- 手順4:「filters.svg」を一旦保存する
- 手順5:「filters.svg」をテキストエディタで開く
- 手順6:「filters.svg」を上書きしてInkscapeを再起動
(2024.04.12更新)
Inkscapeではフィルタエディタを使ってSVGの仕様で定義されている各種フィルタプリミティブ要素を自由に組み合わせることでオリジナルのフィルタを作成することができます。
作成したオリジナルフィルタは編集中のドキュメントの中にリソースとして保存されるので、その同じドキュメントを編集している場合に限れば、オリジナルフィルタを適用したい任意のオブジェクトを選択し、さらにフィルタエディタ上でオリジナルフィルタを選択することで、いろんなオブジェクトに適用することが可能です。

一方で、組み込みフィルタはプルダウンメニューのフィルターに登録されているので、どのドキュメントのどのオブジェクトに対してもいつでも適用することができます。

オリジナルフィルタについても同じようにプルダウンメニューに登録しておけば、どのドキュメントのどのオブジェクトに対してもいつでも適用することができるようになりますが、その登録手順はInkscape(バージョン1.3)で直接サポートされていません。
他のオリジナルのデータ(シンボルやパレットなど)と同じように「C:\Users\ユーザ名\AppData\Roaming\inkscape\filters」の下にオリジナルフィルタの定義を含むSVGファイルを保存すればよいという情報もあるのですが、未確認です。
そこで少し裏ワザ的ですがフィルタエディタを使って作成したオリジナルフィルタをプルダウンメニューに登録する手順を紹介します。
手順1:オリジナルフィルタを適用する
「オリジナルのフィルタを作ってみた」のページで紹介したようにオリジナルフィルタを作って、そのフィルタを何か1つでいいのでオブジェクトに適用しておきます。
例えば「てすと」という名前のオリジナルフィルタを作って適当なオブジェクトに適用します。

手順2:「filters.svg」を開く
プルダウンメニューに表示されるフィルタ群は「filters.svg」というファイル名のドキュメントファイルに保存されていて、それをInkscapeが起動時に自動的に読み込んでメニューに表示させています。
そこでこの「filters.svg」にオリジナルフィルタの情報を書き込みます。
まず「filters.svg」をInkscapeで開いて編集状態にします。「filters.svg」はInkscapeの環境設定ダイアログのシステムタブに表示される「Inkscapeデータ」というフィールドに設定されているフォルダの下の「inkscape\filters」という名前のフォルダの下にあります。
最終的にはこのドキュメントにオリジナルフィルタを追加し「filters.svg」に上書き保存することになります。
なお、ファイルが書き込み禁止になっていてInkscapeから上書き保存できないかもしれないし(自分の場合はそうだった)、何かの手違いでファイルが壊れてしまっても大丈夫なように、上書き保存する前の元々の「filters.svg」は別のファイルにバックアップコピーしておくほうが良さそうです。
「filters.svg」をInkscapeで開いて、さらにフィルタエディタを表示させると、「filters.svg」には組み込みフィルタが全部格納されていることが確認できます。

手順3:適用済みオブジェクトを「filters.svg」にペーストする
手順1でオリジナルフィルタを適用しておいたオブジェクトをコピーして、編集中の「filters.svg」のキャンバスにペーストします。
すると「filters.svg」にすでに格納されている組み込みフィルタに追加される形で、オリジナルフィルタがフィルタエディタに表示されます。フィルタ適用済みのオブジェクトをコピペすると、適用されているフィルタのデータも一緒にコピペしてくれるようになっているようです。

なお「filters.svg」の編集はあくまでもフィルタ情報の追加が目的なので、オブジェクトをペーストした後はそのオブジェクトは削除して、フィルタ情報だけがドキュメント中に残るようにしたほうがいいかもしれません。
手順4:「filters.svg」を一旦保存する
手順5:「filters.svg」をテキストエディタで開く
今度はInkscapeでなくメモ帳のようなテキストエディタで開きます。
ここで行うのはプルダウンメニューに表示されるラベル文字列を直接書き込む作業です。
「filters.svg」の中のオリジナルフィルタの部分に「inkscape:menu」という行を追加して、そこに好きな文字列を書き込みます。

こうするとinkscape:menuに設定したラベルの上位メニューの下に、inkscape:labelに設定されているフィルタ名をラベルにした下位メニューが表示されるようになります。
手順6:「filters.svg」を上書きしてInkscapeを再起動
元々の「filters.svg」をオリジナルフィルタを追加してメニューのラベルも書き込んだ「filters.svg」に置き換えます。
そして起動中のInkscapeを一旦終了して、再度起動します。
するとフィルタメニューの中に次のように追加したオリジナルフィルタのメニューが現れます。
