Illustrator CC以降のファイルフォーマットについてですが、CC(v17)、CC 2014(v18)、CC 2015(v19)、CC 2015.3(v20)、CC 2017(v21)で統一されていて、CC 2017で作成したドキュメントがCCで開けるように設計されているようです(v17.1, v18.1, v19.2は割愛)。大きく4バージョンをまたいで方針が継承されてきていますので、それなりの互換性ポリシーを設計・検討した成果で、引き続きコミットされていくのではないかと思います。いずれどこかで刷新するような気もしますし、そうしてくれないとどんどん肥大化していってしまいますが、まだしばらくは行けそうですね……。 具体的には、差異のある部分だけに絞り、本質的に大事な情報と、再現できないなら無視して良い情報を区別するように工夫していることがうかがえます。どうしても同じように記述できない場合は、バージョン毎に複数の記述をして選択させるようになっています(ダイナミックシンボルなど)。 こちらは、バージョン判別して、どちらのコンテンツを読ませるか選択させる構文です。 %AI17_Begin_Content_if_version_gt:17 1 ...(新しいバージョン用の記述) %AI17_Alternate_Content ...(古いバージョン用の記述) %AI17_End_Versioned_Content こちらは、矩形の定義がバージョン毎にどう異なっているかの例です。 CCの場合 (アンカーポイントを並べた、閉じたパスとして記述。本質の部分) 320.173228346457 -410.173228346457 m 291.826771653543 -410.173228346457 L 291.826771653543 -381.826771653543 L 320.173228346457 -381.826771653543 L 320.173228346457 -410.173228346457 L b CC 2014の場合 (ライブシェイプのコーナーの情報、時計回りだとか回転角度、縦横サイズなどを付加) 320.173228346457 -410.173228346457 m 291.826771653543 -410.173228346457 L 291.826771653543 -381.826771653543 L 320.173228346457 -381.826771653543 L 320.173228346457 -410.173228346457 L b %_/ArtDictionary : %_/Dictionary : %_/Dictionary : %_0 /Real (ai::Rectangle::CornerRadius::3) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::3) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::3) , %_0 /Real (ai::Rectangle::CornerRadius::2) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::2) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::2) , %_0 /Real (ai::Rectangle::CornerRadius::1) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::1) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::1) , %_0 /Real (ai::Rectangle::CornerRadius::0) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::0) , %_1 /Bool (ai::Rectangle::Clockwise) , %_0 /Real (ai::Rectangle::Angle) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::0) , %_3 /Int (ai::Rectangle::InitialQuadrant) , %_28.3464566929142 /Real (ai::Rectangle::Height) , %_28.3464566929142 /Real (ai::Rectangle::Width) , %_; (ai::LiveShape::Params) , %_(ai::Rectangle) /UnicodeString (ai::LiveShape::HandlerName) , %_; (ai::LiveShape) , %_; %_ CC 2015.3 の場合 (順番が違うが内容はほぼ一緒。ai::Rectangle::CenterXとai::Rectangle::CenterYを追加) 311.813228346457 -435.118228346457 m 283.466771653543 -435.118228346457 L 283.466771653543 -406.771771653543 L 311.813228346457 -406.771771653543 L 311.813228346457 -435.118228346457 L b %_/ArtDictionary : %_/Dictionary : %_(ai::Rectangle) /UnicodeString (ai::LiveShape::HandlerName) , %_/Dictionary : %_8191.5 /Real (ai::Rectangle::CenterX) , %_1 /Bool (ai::Rectangle::Clockwise) , %_0 /Real (ai::Rectangle::CornerRadius::1) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::1) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::0) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::1) , %_9033.39 /Real (ai::Rectangle::CenterY) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::0) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::2) , %_28.3464566929142 /Real (ai::Rectangle::Width) , %_28.3464566929142 /Real (ai::Rectangle::Height) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::2) , %_0 /Real (ai::Rectangle::Angle) , %_0 /Real (ai::Rectangle::CornerRadius::2) , %_3 /Int (ai::Rectangle::InitialQuadrant) , %_(Invalid) /UnicodeString (ai::Rectangle::CornerType::3) , %_(Invalid) /UnicodeString (ai::Rectangle::RoundingType::3) , %_0 /Real (ai::Rectangle::CornerRadius::3) , %_0 /Real (ai::Rectangle::CornerRadius::0) , %_; (ai::LiveShape::Params) , %_; (ai::LiveShape) , %_; %_ 通常は圧縮しているとはいえ、ちと冗長ですねぇ……。
... View more