結合文字列を合成する処理を改善

結合文字列を合成する処理を改善して、とくにユーザーが扱うテキストデータを直接に合成処理している5つのアプリをアップデートしました。アップデートをおすすめします。

  • 浮紙8(8.4.5) 随所で
  • FILL Id(1.2.1) 「完全フォーマットなしでペースト」で 
  • Indd Mini-Edit(1.0.1) inddへテキストをセットする時に
  • SPAi(3.7.3) 「フォーマットなしでペースト」で
  • CiPT(4.3.1) プレーンテキストにする時に

Illustrator EPSの「配置した画像を含む」

勤務している会社には古いPower Mac G4グラファイトがあります。OS 9で起動しており、そこにはIllustratorのバージョン8と10がインストールされています。

このバージョン8と10で、EPS保存時の「配置した画像を含む」オプションの仕様の違いを調べました。いずれもEPS画像、PSD画像、TIFF画像の3種類のファイルをリンク配置し、Illustrator EPSファイルに保存して確認しました。

バーション8の「配置した画像を含む」

  • ON
  • EPSデータ内に画像が含まれた
  • 保存されたIllustrator EPSファイルを開くと、EPS画像はリンクのままで、他の画像は埋め込みだった
  • OFF
  • EPSデータ内に画像が含まれなかった
  • 保存されたIllustrator EPSファイルを開くと、画像はすべてリンクのままだった

バーション10の「配置した画像を含む」

  • ON
  • EPSデータ内に画像が含まれた
  • 保存されたIllustrator EPSファイルを開くと、EPS画像はリンクのままで、他の画像は埋め込みだった
  • OFF
  • EPSデータ内に画像が含まれた
  • 保存されたIllustrator EPSファイルを開くと、画像はすべてリンクのままだった

この結果から考察してみる

違いは「配置した画像を含む」をOFFにした時、EPSデータに画像が含まれるかどうかにありました。

Illustratorは、バージョン9の時に根本的な仕様変更がされています。それはドロップシャドウや乗算等の透明効果機能実装にともなったファイル内の構造変更です。

Illustrator EPSは、1つのファイル内に「透明効果を保持できないEPSデータ」と「透明効果を保持できるネイティブデータ」の2種類が保存されるようになりました。EPSデータはリンクファイル用の汎用データ、ネイティブデータは制作編集用の独自データです。

会社のMacではバージョン10で確認するしかないのですが、おそらくバージョン9の時にEPSデータには「配置した画像を含む」に関係なく常に画像が含まれるようになったのでしょう。そして現在に至るまで、「配置した画像を含む」はネイティブデータだけに影響する設定となっています。

バージョン8ではEPSデータに画像を含ませるために「配置した画像を含む」をチェックONにするのが必須でした。そのため現在でもチェックONが必須だと思われているようですが、実はOFFにするのが正しいオペレーションであるといえるでしょう。

なお、バージョン9ではIllustrator形式(.ai)も根本的な構造変更がされました。バージョン8まではaiファイルをリンクファイルにできなかったのが、1つのファイル内にネイティブデータとPDFデータの2種類を保存することで、aiファイルもリンクファイルとして使えるようになりました。PDFデータには常に画像が含まれます。「配置した画像を含む」はネイティブデータだけに影響する設定となっており、ここでもチェックOFFにするのが正しいオペレーションであるといえるでしょう。

リンクファイルを埋め込みにするには、リンクパネルで操作しなければいけません。「配置した画像を含む」をチェックONにして自動的に埋め込みにするのは、トラブルの元なので避けなければいけないのです。

SPAi 3.7.2

SPAiを3.7.2にアップデートしました。
ダウンロードはSPAi専用ページからどうぞ。
SPAiが正常に動作しない場合は未公証版からどうぞ。

Dockメニューに「再起動」を付けました。このメニューを選択するとSPAiが再起動します。スクリプトパネルが表示されないとかちょっとおかしいなと感じたら、ここで再起動してみてください。

InDesignの漢字のワイルドカード

InDesignの検索には漢字のワイルドカードがあります。通常の検索では「^K」、正規表現検索では「~K」となります。

当初からマッチしない漢字があまりに多すぎて、使いものにならず、長年そのまま放置されてきました。
参考:InDesign CS3の漢字のメタ文字「~K」を検証する

それが2023のv18.2で、やっと抜本的に修正されました。実はまだ一部の漢字がマッチしないのですが、かなりマシになっています。ここではどの漢字がまだマッチしないのかを書いておきます。

Unicodeの漢字

InDesignはUnicodeベースなので、漢字はイコール「Unicodeの漢字」を意味します。下記でマッチするかどうか確かめました。

  • 2E80..2EFF CJK部首補助
  • 2F00..2FDF 康熙部首
  • 3005 々(漢字の踊り字)
  • 3007 〇(漢数字のゼロ)
  • 303B 〻(漢字の踊り字)
  • 3400..4DBF CJK統合漢字拡張A
  • 4E00..9FFF CJK統合漢字
  • F900..FAFF CJK互換漢字
  • 20000..2A6DF CJK統合漢字拡張B
  • 2A700..2B738 CJK統合漢字拡張C
  • 2B740..2B81D CJK統合漢字拡張D
  • 2B820..2CEA1 CJK統合漢字拡張E
  • 2CEB0..2EBE0 CJK統合漢字拡張F
  • 2F800..2FA1F CJK互換漢字補助
  • 30000..3134A CJK統合漢字拡張G
  • 31350..323AF CJK統合漢字拡張H

ダウンロード:漢字検索の検証-2023-v18.2以降.zip

CJK統合漢字拡張H

まず、「^K」「~K」ともにCJK統合漢字拡張Hのブロックがマッチしません。これは不具合ではなく仕様です。

InDesignのワイルドカードやメタ文字は、特定のUnicodeバージョンに準拠しており、2023(v18)が準拠しているのはUnicodeバージョン14です。CJK統合漢字拡張Hはバージョン15.0で追加されたブロックなので、そこにマッチしないのは仕様といえます。2024(v19)でバージョン15準拠となればマッチするようになるでしょう。

なお、Adobe-Japan1では、2023年1月18日リリースのCMapでCJK統合漢字拡張HのU+31350を追加しています。この文字にはまだマッチしません。

通常の検索「^K」

CJK部首補助の2E9Aと2EF4~2EFF、康煕部首の2FD6~2FDFがマッチしません。ここはUnicodeで文字が割り当てられていない箇所なのでマッチしなくても問題ないでしょう。

漢字の踊り字「々〻」の2文字がマッチしません。ここはマッチしてほしいところです、

正規表現検索「~K」

CJK部首補助と康熙部首のブロックが丸ごとマッチしません。「^K」でマッチしているので、ここもマッチしてほしいところです。

漢字の踊り字「々〻」と漢数字のゼロ「〇」の3文字がマッチしません。とくに漢数字のゼロがマッチしないのは不具合といってよいでしょう。

マッチしない箇所を含めて正規表現でマッチさせるには、このようにするよいでしょう。
[\x{2E80}-\x{2FDF}々〇〻~K\x{30000}-\x{3FFFF}]

まとめ

InDesign 2023 v18.2で改善された漢字のワイルドカードは、これまでと比べるとかなりの精度でマッチするようになっています。漢字の踊り字「々〻」と漢数字のゼロ「〇」の3文字には注意を要するものの、実用に耐えられると評価してよいでしょう。


追記 2024-7-24:

  • 2023(v18.2)の時点で、Unicode 15.1で追加されたCJK統合漢字拡張I(2EBF0..2EE5D)がなぜかマッチすることが判明。謎すぎる…。
  • 2024(v19.5)では、\dのメタ文字はバージョン15準拠に更新されていますが、漢字ワイルドカードのマッチに変化はなくUnicode 15.0で追加されたCJK統合漢字拡張Hはマッチしません。

AdobeのUserVoiceって何?

現在、Adobeは各アプリごとに、ユーザーがアプリの不具合や新機能の要望を直接フィードバックできるUserVoiceのサイトを設けています。

アドビ製品向けUserVoiceの使用 – UserVoiceを使用して新しい機能をリクエストし、バグをレポートする手順

UserVoiceは、それ自体はAdobeが作ったものではありません。UserVoice社が提供しているソフトウェアフィードバックシステムであり、それがかなり優れているので、MicrosoftやAdobeなどの大手IT企業も利用しているものです。

ユーザーはここに投稿することで直接フィードバックができます。Adobeはその投稿をもとにしてバグを修正したり機能を追加したりしています。とても多くの投稿があるので、すべての投稿に応えるのは無理です。そこでAdobeは優先度を設けて取り組んでおり、その優先度の指針が「投票数」です。

投票数は、投稿ページの投票ボタンをユーザーが押した数です。その数が大きく目立つように表示されています。投票数が多いほど優先度が上がり、各アプリの開発チームが実際に取り組んでくれるようになるんですね。

初めて投票ボタンを押すと、下図のような表示になります。

AdobeのUserVoiceだからといって、メールアドレスとパスワードにAdobe IDを入れてもできません。UserVoice社のシステムなので、UserVoice専用のアカウントを作成する必要があるのです。ここがちょっと分かりにくいのが難点です。

「アカウントを作成する」をクリックして、アカウントを作って投票しましょう。これが開発チームを動かす力になるのです。

追記

UserVoiceのアカウントは、ひとつだけ作成すれば共通に使えるわけではなく、各アプリごとのUserVoiceサイトで個別にアカウントを作る必要があります。これも分かりにくいし、面倒ですけど、頑張って作ってください!