[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < ポイント&クリック ] | [ 上へ : ポイント&クリック ] | [ ポイント&クリックに Xpdf を使用する > ] |
4.1.1 システムを設定する
この機能がアクティブな場合、LilyPond は PDF ファイルや SVG ファイルにハイパーリンクを付け加えます。これらのハイパーリンクは ‘URI ヘルパー’や Web ブラウザに送られ、テキスト エディタを開きカーソルを適切な位置に置きます。
この一連の動作を有効にするには、PDF ビューアが LilyPond で提供される ‘lilypond-invoke-editor’ スクリプトを使ってハイパーリンクを追うように設定変更する必要があります。
プログラム ‘lilypond-invoke-editor’ は小さな支援プログラムです。これは特別な textedit
URI に対してエディタを呼び出し、それ以外に対しては Web ブラウザを呼び出します。このプログラムは環境変数 EDITOR
と LYEDITOR
を調べて、ユーザの使用しているエディタを呼び出します。LYEDITOR
は EDITOR
よりも優先されるため、前者を使用することを推奨します。特に、ターミナル上で常用しているエディタとは別に、LilyPond のポイント アンド クリックのためのエディタを指定したい場合には、前者を使用してください。
エディタによって、行位置と列位置を指定してファイルを開くための引数の記法は異なります。ユーザの便宜のために、LilyPond にはいくつかのエディタに対するコマンドが予め登録されており、それは ‘scm/editor.scm’ にリストアップされています。そのため、単にエディタのバイナリ名を変数に登録すれば動作します。例えば:
export LYEDITOR=atom
は以下を呼び出します:
atom %(file)s:%(line)s:%(column)s
%(file)s
, %(line)s
, %(column)s
はそれぞれファイル名、行、列で置き換えられます。
‘scm/editor.scm’ にリストアップされていないエディタを使用するには、LYEDITOR
に特定の記法でコマンド全体を登録します。以下は Visual Studio Code を使用する場合の例です:
export LYEDITOR="code --goto %(file)s:%(line)s:%(column)s"
Note: Emacs を使用している場合、追加の設定が必要となります。‘~/.emacs’ ファイルに (server-start)
という行を追加する必要があります。そうしなければ、PDF 内のオブジェクトをクリックする度に新しい Emacs ウィンドウが開いてしまいます。
Xpdf を使用する | ||
GNOME 2 を使用する | ||
GNOME 3 を使用する | ||
Evince のための追加の設定 |
[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < ポイント&クリックのためにシステムを設定する ] | [ 上へ : ポイント&クリックのためにシステムを設定する ] | [ ポイント&クリックに GNOME 2 を使用する > ] |
Xpdf を使用する
UNIX で Xpdf を使用するには、‘xpdfrc’ に以下の記述が存在している必要があります。UNIX では、このファイルは ‘/etc/xpdfrc’ あるいは ‘$HOME/.xpdfrc’ として存在します。
urlCommand "lilypond-invoke-editor %s"
Ubuntu を使用している場合、システムにインストールされている Xpdf は全ての PDF ファイルでクラッシュを引き起こすかもしれません: この状態は数年間続いており、ライブラリの不一致が原因です。代わりに、Debian から現在のバージョンの ‘xpdf’ と対応する ‘libpoppler’ パッケージをインストールすると良いでしょう。これで動作が確認できたら、Ubuntu がクラッシュするパッケージの‘アップデート’で上書きしないように、
sudo apt-mark hold xpdf
を実行すると良いかもしれません。
[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < ポイント&クリックに Xpdf を使用する ] | [ 上へ : ポイント&クリックのためにシステムを設定する ] | [ ポイント&クリックに GNOME 3 を使用する > ] |
GNOME 2 を使用する
(PDF ビューアが統合されている) GNOME 2 を使用するには、‘textedit:’ URI をシステムに登録するために、以下のコマンドを実行します:
gconftool-2 -t string -s /desktop/gnome/url-handlers/textedit/command "lilypond-invoke-editor %s" gconftool-2 -s /desktop/gnome/url-handlers/textedit/needs_terminal false -t bool gconftool-2 -t bool -s /desktop/gnome/url-handlers/textedit/enabled true |
そうしたら、
gnome-open textedit:///etc/issue:1:0:0
とすることで、ファイルを開くために ‘lilypond-invoke-editor’ が実行されるはずです。
[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < ポイント&クリックに GNOME 2 を使用する ] | [ 上へ : ポイント&クリックのためにシステムを設定する ] | [ Evince のための追加の設定 > ] |
GNOME 3 を使用する
GNOME 3 では、URI は ‘gconf’ ではなく ‘gvfs’ レイヤによって処理されます。 ‘/tmp’ などのローカル ディレクトリに、‘lilypond-invoke-editor.desktop’ という名前で、以下の内容を持つファイルを作成してください:
[Desktop Entry] Version=1.0 Name=lilypond-invoke-editor GenericName=Textedit URI handler Comment=URI handler for textedit: Exec=lilypond-invoke-editor %u Terminal=false Type=Application MimeType=x-scheme-handler/textedit; Categories=Editor NoDisplay=true
そして以下のコマンドを実行してください:
xdg-desktop-menu install ./lilypond-invoke-editor.desktop xdg-mime default lilypond-invoke-editor.desktop x-scheme-handler/textedit
そうしたら、
gnome-open textedit:///etc/issue:1:0:0
とすることで、ファイルを開くために ‘lilypond-invoke-editor’ が実行されるはずです。
[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < ポイント&クリックに GNOME 3 を使用する ] | [ 上へ : ポイント&クリックのためにシステムを設定する ] | [ ポイント&クリックを有効にする > ] |
Evince のための追加の設定
gnome-open
は動作するが、Evince が権限が無いという理由でポイント&クリックを拒否する場合、Evince が実行できるアクションを規定する
Apparmor プロファイルを変更する必要があるかもしれません。
Ubuntu を使用している場合、‘/etc/apparmor.d/local/usr.bin.evince’ を編集し、以下の行を追加します:
# For Textedit links /usr/local/bin/lilypond-invoke-editor Cx -> sanitized_helper,
これらを追加したら、
sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.evince
を実行することで、Evince がポイント&クリックのリンクを開くことができるようになるはずです。他のビューアでも同じような設定が有効であるかもしれません。
[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < Evince のための追加の設定 ] | [ 上へ : ポイント&クリック ] | [ 選択的なポイント&クリック > ] |
ポイント&クリックを有効にする
ポイント&クリックの機能は PDF あるいは SVG ファイルを生成する時にデフォルトで有効化されています。
ポイント&クリックのリンクは出力ファイルを肥大化させます。これらのファイル (と PS ファイル) のサイズを小さくするには、‘.ly’ ファイルの中に以下を記述してポイント&クリックを OFF にします:
\pointAndClickOff
以下を用いて、ポイント&クリックを明示的に ON にすることができます:
\pointAndClickOn
‘.ly’ ファイルの中でポイント&クリックを OFF にする代わりにコマンド ライン オプションで OFF にすることができます:
lilypond -dno-point-and-click file.ly
Note: 配布する LilyPond ファイルでは常にポイント&クリックを OFF にして、PDF ファイルにあなたのコンピュータの Path 情報が含まれないようにすべきです。配布する .pdf ファイルに Path 情報が含まれているとセキュリティ リスクとなります。
[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < ポイント&クリックを有効にする ] | [ 上へ : ポイント&クリック ] | [ テキスト エディタ サポート > ] |
選択的なポイント&クリック
インタラクティブなアプリケーションでは、ある特定のポイント&クリック要素だけを含むことが望ましい場合もあります。例えば、誰かがある特定の音符から演奏を開始できるアプリケーションを作りたいと思った場合、音符をクリックした場合にその音符の上にある臨時記号やスラーのポイント&クリックが開いてしまったのでは不便です。
どのイベントをポイント&クリックに含めるか指定することで、これを制御できます:
-
‘.ly’ ファイルにハード コードする:
\pointAndClickTypes #'note-event \relative { c'2\f( f) }
あるいは
#(ly:set-option 'point-and-click 'note-event) \relative { c'2\f( f) }
-
コマンド ラインで指定する:
lilypond -dpoint-and-click=note-event example.ly
複数のイベントを含めることができます:
-
‘.ly’ ファイルにハード コードする:
\pointAndClickTypes #'(note-event dynamic-event) \relative { c'2\f( f) }
あるいは
#(ly:set-option 'point-and-click '(note-event dynamic-event)) \relative { c'2\f( f) }
-
コマンド ラインで指定する:
lilypond \ -e"(ly:set-option 'point-and-click '(note-event dynamic-event))" \ example.ly
[ << 外部プログラム ] | [トップ][目次][インデックス] | [ LilyPond 入力ファイルの記述に対する提案 >> ] |
[ < ポイント&クリックを有効にする ] | [ 上へ : ポイント&クリック ] | [ テキスト エディタ サポート > ] |