保存前に気づける!Mac向けEPUB編集、文字化けを防いで出力

MacでEPUB原稿を編集するときは、表示できたという理由だけで上書きしません。epub 編集 macの作業では、元の文字コード、改行、編集後の保存形式、EPUB出力を四段に分けます。Finderで同名の複製が並ぶ環境では、ファイル名だけでなくハッシュと更新時刻も記録します。

Mac用の作業複製をUTF-8・LFで固定した

同一日本語の3形式を調べ、UTF-8とShift_JISは288文字、UTF-16LEは289文字と読み戻しました。Mac上の編集用にUTF-8版を開き、閉じた後の検査でUTF-8・LFと内容一致を確かめました。その複製から生成したEPUBはvalid=true、spine6、nav3、NCX3です。

編集中の失敗は、外部アプリで同じ複製を更新した後に、古いタブから保存することです。その場合は文字コードが正しくても内容が巻き戻ります。外部更新の通知があるときは保存を止め、現在版を読み直して差分を別の複製へ移します。

合格は、未変更の原本、Mac編集用複製、出力EPUBの三つが区別され、複製の再読込み値とEPUB構造値を説明できることです。今回の実測はローカル検査までで、すべてのMac環境や読書アプリでの同一表示は範囲外です。

外部更新の通知が出たときの退避順を決める

Macで同じ原稿を複数アプリから開くと、文字コードが正しくても古い内容で上書きする危険があります。通知を受けたら保存せず、現在のディスク版を新しい名前へ複製します。古いタブの未保存差分も別ファイルへ退避し、二つを比較して必要な編集だけを移します。更新時刻、サイズ、ハッシュを記録すれば、Finder上の似た名前に頼らず選べます。

編集用複製がUTF-8・LFで再読込みできた後、冒頭・中央・末尾の語を検索します。その版だけをEPUB入力へ指定し、出力名にも試行番号を加えます。文字化け、更新競合、EPUB構造の三問題は戻り先が異なるため、一つの「開けた」という判定へまとめません。

Finderの複製名だけに頼らない版選択

原稿 copy 2のような名前は、どれが最新かを説明できません。作業票には更新時刻、サイズ、SHA-256、三地点の確認語を並べます。外部アプリから更新されたら、時刻だけでなく内容差を読み、採用版を明示します。Dropboxの同期中に競合ファイルができた場合も、名前から自動選択せず同じ表で比べます。

採用版をUTF-8・LFへ統一したら、元版を移動せず読み取り専用で残します。編集タブを閉じ、ディスクから再度開いてハッシュと末尾語を確認します。ここで違えばEPUB生成へ進みません。

生成後のspine6、nav3、NCX3はパッケージの確認です。Mac上の競合回避や文字コード合格とは別の行に記録し、三つの問題を一つの成功表示へまとめないようにします。

三つの受領票を一つのMac作業で混同しない

受領時は原本のSHA-256、検出した文字コード、改行形式だけを書きます。編集時はUTF-8・LFの作業複製とその再読込値、出力時は入力複製SHAとEPUB SHA、spine、nav、NCXを記録します。同じ行に書くと、パッケージが正常な事実が受領文字の正しさを代用してしまいます。

検証用の五ファイルは同じ文を格納し、UTF-8、Shift_JIS、EUC-JPが39字、UTF-16LEとUTF-16BEが40字で読み戻されました。UTF-16の差はエンコード固有の先頭情報を含む検査表示と切り分け、本文一致は変換後の文字列で判定します。

ハッシュが変わったらFinderの「最新」を信じない

編集中に別アプリが同じパスを更新したら、古いタブからは保存しません。ディスク版と未保存差分を別名で退避し、冒頭語、中央の固有名、末尾語の三地点を照合します。更新時刻は同期サービスの遅延で前後するため、採用版はSHAで固定します。

完了は、原本が未変更で、UTF-8・LFの作業版が再開でき、そのSHAから作ったEPUBを識別できた時です。Macのライブ表示で誤復号を上書きする負の操作は行っていないため、その見え方は本記事の実測範囲に含めません。

受領複製の識別を別担当へ渡す最終票

最終票の一行目にSTUDIO-229の入力パスとSHA-256、二行目に実行した画面名または命令、三行目に保存後の再読込値を記録します。このテーマで必要な比較列は「原本SHA、UTF-8・LF再読込、外部更新退避、出力EPUB SHA」です。どの値が入力、保存、生成物、表示のどの層に属するかを空欄にせず書きます。

Mac受領が不合格のときは、返り先をその層に限定します。入力なら読み込み複製、保存なら別名の復旧ファイル、生成なら新しいEPUB、表示ならReader名付きの再試験です。失敗したファイルを上書きせず、復旧結果に別SHAを付けることで、修正者と査読者が同じ差分を見られます。

この最終票の判定原則は「Macの同期競合と誤復号は別の失敗として切り分ける」ことです。ローカルの構造検査が合格しても、販売先受理、全Readerの同一表示、未操作のUIは別の未検証欄に残します。次の担当者が一枚の票から実測済みと未実測を読み分けられることが完了条件です。