GNU LilyPond – アプリケーション使用方法: 2.1 何故構文は変更されるのか？

## 2.1 何故構文は変更されるのか？

入力ファイルを読みやすく、書きやすくするために、しばしば構文は変更されますが、時により既存の関数が、新しい機能や改善に合わせて変更されることがあります。

これが実際にあった例です:

`\paper` と `\layout` のプロパティ名は全て、`first-second-third` という形式で記述することになっています。しかしながら、バージョン 2.11.60 で `printallheaders` プロパティがこの規則に従っていないことが判明しました。放置すべきでしょうか？ (新しいユーザはつじつまの合わない入力形式で混乱するでしょう。) それとも、変更すべきでしょうか？ (既存の楽譜を持つユーザには煩わしいことです。)

このケースでは、プロパティ名を `print-all-headers` に変更することを決断しました。そして、昔のユーザは `convert-ly` コマンドによって既にある入力ファイルを自動的にアップデートすることができました。

しかし、`convert-ly` はすべての変更を処理できるわけではありません。例えば、バージョン 2.4.2 以前の LilyPond では、アクセント文字と非英語文字を LaTeX の記法を用いて入力していました。 例えば Christmas のフランス語は `No\"el` のように入力されていました。しかしながら、バージョン 2.6 以降の LilyPond では、特殊文字 `ë` を UTF-8 文字として直接 LilyPond ファイルに入力しなければならなくなりました。`convert-ly` はすべての LaTeX の特殊文字を UTF-8 文字に変換することはできません。手動で古い LilyPond 入力ファイルを更新する必要があります。

`convert-ly` コマンドの変換ルールは、テキストのパターンマッチングと置換によって動作しています (つまり、与えられた入力ファイルの中で何が変更されたかの文脈を‘理解’してはいないということです)。 これはいくつかの結果をもたらします:

- 変換の信頼性は、それぞれの適用されるルールセットの品質と、対応する変更の複雑さ次第です。変換が、追加・手動の修正を要求することがあります。ですから万が一のために、変換前の入力ファイルは比較のために残しておくべきです。
- より新しいバージョンへの構文の変更のみが可能です: LilyPond の昔のバージョンへ変換するルールセットは存在しません。そのため、入力ファイルを更新するのは、昔のバージョンの LilyPond がもうメンテナンスされていない時に限るべきです。繰り返しますが、万が一のために変換前の入力ファイルは残しておくべきです。Git のようなバージョン管理システムを使うと、複数のバージョンの入力ファイルを管理するのに役立つかもしれません。
- LilyPond は処理の際、余計に配置された、あるいは省略された空白に左右されません。しかし、`convert-ly` で用いられるルールはコードのスタイルにいくらかの仮定を置く場合があります。ですから、正常な変換を行うために、LilyPond のマニュアルで用いられるスタイルに従うことを推奨します。特にマニュアル自体、すべての例が `convert-ly` コマンドで更新されています。

#### LilyPond — 使用方法 v2.22.2 (安定版).