章 12.3 · 部 III · 実践
Sandbox:本、Wordファイル、保存
本と章、漫画のページの編集、Word文書の読み込みと書き出し、Sandboxが作業を保存し、書き出し、読み込むしくみ
かんたんな説明
このページでは、Sandboxで作業をまとめ、残しておく方法を説明します。1つのプロジェクトは、章でできた1冊の本です。漫画のページには、コマとせりふのための専用の道具があります。Wordファイルを取り込み、そのスタイルをPostextのどのスタイルにするかを選び、本をWordに書き戻すこともできます。作業はそのつど自分のブラウザーに保存され、1つのファイルとしてダウンロードして、あとでまた開けます。
#本と章
Sandboxで開くものはすべて本です。InDesignのブックファイルが章ごとに1つのドキュメントをまとめるのと同じように、設定、カスタムフォント、リソース一式は本全体で共有され、各章はそれぞれ独立したMarkdownドキュメントです。500ページの教科書のような長い著作も1章ずつ編集でき、番号付け、相互参照、書き出しでは引き続き1つの文書として扱われます。
- 構成は章パネルと、本文パネルの章の切り替えで管理します。追加、名前の変更(行をダブルクリック)、並べ替え、レベル1見出しごとの章の分割、前の章への統合、削除ができます。取り消しの履歴とキャレットの位置は章ごとに保たれます。
- 1章ずつ。既定では、プレビューは作業中の章を、それより前の章の続きとして組みます。最初のページ番号は前の章の最終ページに続き、レベル1見出しの番号も数え続けます(第4章の番号は4、その図は4.1、4.2、…)。
{chapterNumber}と{chapterTitle}の柱もそれに従い、奇数ページと偶数ページの別も保たれます(章扉は本の途中にあるときとまったく同じように白ページを挟みます)。第1章で最初に言及された図への:refも、その番号を保ちます。前の章のページ数は、それぞれの章を最後に表示したときのレイアウトから取ります。一度も開いていない章(またはその後に編集した章)はバックグラウンドで1章ずつ順に組まれ、それが終わるまで章の一覧には「ページ数は計算中」と表示されます。新しいページから始まる章(既定)ではページ範囲は正確です。前のページから続けて組まれるはずだった章は、代わりにその章自身のページの先頭に置かれます。 - 本全体。Canvas、HTMLプレビュー、PDFタブでは、本全体を1つの連続した文書として表示できます。タブバーの左端にあるセレクターで本全体を選びます(2章以上ある本の場合)。Canvasはすべての章を順に、それぞれ前の章が終わったページの後に組み、それらの文書をつなぎ合わせて表示します。編集したときに組み直すのはその章だけで、後続の章は最初のページが動いたときにだけ組み直します。章の一覧、パーマリンクの
chapter=とpage=、エディターとの同期は、表示中のページの章に従います。この選択は本ごとに保存されます(短い小説は1つの文書として、教科書は1章ずつ読むなど)。プリセットは、マニフェストのview.canvasScopeでこの表示のまま開くよう指定できます。HTMLプレビューはCanvasの選択を共有し、本全体を最初のページから1つの文書として組みます。目次の行とフラグメントは各ページの章に従います。PDFタブには独自のセレクターがあります。 - 長い本。120章の本も短い本と同じように扱えます。本文パネルのヘッダーにある章メニューはウィンドウ内でスクロールし、作業中の章の位置で開きます。そこから矢印キーで移動できます。部に分かれた本(章の中に
:::partのフェンスがあるもの)は、メニューでも章パネルでも章を部の下にまとめて表示し、メニューで部をクリックするとその最初の章が開きます。30章を超えると、メニューの上部に検索欄が現れ、章番号(27)や、章題と部の名前に含まれる語(埋香、卷三)で絞り込めます。Enterキーで最初の一致項目を開きます。入力メソッドで変換している間(注音、倉頡、ピンイン、かな)は、Enterキーと矢印キーは入力メソッドが受け取ります。Enterキーは変換を確定するだけで、何も開きません。見本の本の章ファイルは8つずつ読み込まれ、章をバックグラウンドでページ割りしている間は章パネルに進行状況(「ページ割り中(34/120)」)が表示されます。200章を超える本は、本やマニフェストの指定にかかわらず、CanvasとHTMLプレビューでは1章ずつ表示します。すべての章を一度に組むと、本全体をメモリーに保持することになるためです。それ以下の本なら全体を開けます。『紅樓夢』(129章、約2,000ページ)はCanvasでおよそ25秒、100 MBかかります。PDFタブではどの本でも全体を書き出せます。 - フロントマター。最初の章のフロントマターが本のフロントマター(タイトル、著者など)になります。ほかの章の先頭にあるフロントマターのブロックは無視され、検査パネルにその旨が表示されます。
buildBundleも同じ規則に従うため、本はSandboxでも独自のプログラムでも同じように描画されます。 - ページ数。各章はそれぞれ独立した文書として組まれるため、
{totalPages}はその章のページ数を数えます。{bookTotalPages}は本全体を数えます。すべての章のページ数がわかると、プレビューはその合計を使って各章を組みます(ヘッダー、フッター、デザインがこの値を印刷する場合のみ)。それまでは、章はその章の終わりまでのページ数を印刷します。PDFタブの本全体は組んだページを数えるため、ファイルにはつねに本の実際の総ページ数が印刷されます。 - 章扉。章と章の間で改ページを強制することはありません。最初のブロックがレベル1見出しである章は、見出し自身の「前で改ページ」設定によって新しいページから始まります。文書の途中から始まる章とまったく同じです。
- 同期。CanvasまたはHTMLプレビューでいずれかの章の段落をクリックすると、エディターがその章に切り替わり、キャレットが置かれます。エディターのキャレットは、その章が本のどこにあってもプレビュー上で強調表示されます。警告にはその章が示されます。
- 既存の文書は1章だけの本として開きます。2つ目の章を追加するまでは何も変わりません。
#漫画の編集
漫画のページ(:::page)や帯漫画(:::strip)のある章は、Canvasタブ、HTMLタブ、Folioのテキストを選択モードで、ページの上で直接編集できます。段の中に組んだ帯漫画、ページの頭にフロートした帯漫画、ページ幅に組んだ帯漫画でも、行長より狭い帯漫画やキャプションの下の帯漫画でも同じツールが使え、書き込み先は帯漫画自身のフェンスです。変更はどれも、入力した編集と同じように章のMarkdownに書き込まれるので、エディターの取り消しで元に戻せます。マークアップと写植の規則は漫画で説明しています。
- 割り線。2つのコマの間の間白の上では、ポインターがサイズ変更のカーソルになります。ドラッグすると割り線が動き、離すと新しいパーセントがページの
split属性に書き込まれ(ページにsplitがなければフェンスに加えます)、ページが組み直されます。Shiftで線が5%刻みにそろい、Altでポインターに近い側の端だけが動いて線が斜めになり、どのコマも5%より狭くはなりません。ドラッグ中は、絵のセーフエリアが見えなくなるコマに印とヒントが表示されます。各割り線はフォーカスできる区切りでもあり、矢印キーで1%(Shiftで5%)動かし、Enterで位置を書き込み、Escapeで元に戻します。 - 分割と結合。コマの上の小さなツールバーに、横線で分割、縦線で分割(新しい区画のために、このコマのすぐ後に空の
::panelの行が加わります)、次のコマと結合があります。結合すると間の線が消え、結合したコマは最初のコマの絵を保ち、両方の台本の行を持ちます。コマにはTabキーでも移れます。フォーカスのあるコマは輪郭が表示され、Hで横線、Vで縦線で分割し、Mで次のコマと結合します。ページが組み直された後もフォーカスはそのコマに残ります。Enterでツールバーを開き、Escapeでツールバーからコマに戻ります。 - 吹き出し。吹き出しをドラッグすると位置が固定されます。離すと台本の行に
at="x% y%"が付きます。点はコマの絵に対するパーセント(絵のないコマでは区画に対するパーセント)なので、トリミング、割り線のドラッグ、翻訳を経ても、固定した位置は絵の同じ場所にとどまります。連結したまとまりは一体で動き、その最初の吹き出しで固定されます。フォーカスのある吹き出しは矢印キーで1%(Shiftで5%)ずつ動かせ、固定した吹き出しをダブルクリックするとatが消え、自動の配置に戻ります。1回クリックすると、エディターのカーソルがその吹き出しの行に移ります。 - はみ出しのヒント。吹き出しを動かしている間は、ポインターでも矢印キーでも、プレビューが落ち着き先を確かめます。顔や回避エリアを覆うとき、または今よりもコマからはみ出すときは、動かしている輪郭がオレンジ色になり、コマの顔と回避エリアが破線で描かれ、ツールチップが理由を示します(「ここでは顔を隠してしまいます。」「ここでは画像の空けておく部分を隠してしまいます。」「ここではコマからはみ出します。」)。
breakを付けた行は、コマから出ても印が付きません。このヒントは、場所を空けるためにコマのほかの吹き出しがどう動くかまでは予測しません。 - しっぽ。しっぽの先の上では、ポインターが十字カーソルになります。しっぽを向けたい場所へ先をドラッグすると、離したときに行に
to="x% y%"(コマの絵に対するパーセントで表した点)が付き、しっぽはその点のほうへ向いて、口の手前で止まるときと同じように手前で止まります。Escapeでドラッグを取り消し、先をダブルクリックするとtoが消えて、しっぽは話者に向き直ります。キーボードでは、フォーカスのある吹き出しでTを押すとしっぽに移ります。矢印キーで指す点を1%(Shiftで5%)動かし、Enterで書き込み、Escapeで元に戻し、Deleteでtoを消し、Tで吹き出しに戻ります。 - 話者と回避エリア。リソースパネルの画像で、セーフエリアと写植の項目を開くと、3つのモードを持つダイアログが表示されます。セーフエリアは、絵の中で常に見えていなければならない部分を指定します。話者は登場人物ごとに1つの点を置きます。絵をクリックするとそこに話者が加わってIDの欄にフォーカスが移ります。IDは台本で使う話し手のキー(
maya: …)と同じでなければなりません。口、頭(思考の吹き出しの泡が指す点)、顔(どの吹き出しも覆わない範囲)はドラッグして位置を合わせます。回避エリアはどの吹き出しも覆わない長方形で、絵の上をドラッグして描きます。同じモードで、話さない人物の顔も指定します(話さない人物の顔を追加、または領域の行にある顔のスイッチ)。吹き出しはこの顔を決して覆いません。回避エリアのほうは、コマにほかの場所がないときには覆われます。どの印も矢印キーで動かせ(Shiftで大きく動きます)、Deleteで削除できます。ダイアログは独自の取り消し履歴を持ち、セーフエリアの外にある話者には印が付きます。 - 設定。デザインパネルのマンガグループに漫画の設定がまとまっています。読む方向と絵の左右反転、枠と間白、既定のコマと名前付きのコマのスタイル、写植、吹き出しのスタイルで、吹き出しのスタイルにはそれぞれ輪郭のプレビューがあります。
- エディターと検査。テキストエディターは
:::page、:::strip、::panelの行と、台本の行のキーと属性を色分けします。検査パネルは漫画の警告(読めないコマ割り、コマと区画の数の不一致、収まらない吹き出しなど)を対象の行に表示します。漫画 › 漫画の警告を参照してください。
#Word文書
原稿はたいていWordファイルで届きます。本文パネルは.docxを直接読み込みます。AIエージェントもインストールも必要なく、InDesignの配置と同じようにスタイルを対応づけます。Word文書を読み込むはファイルをブラウザーの中で読み(アップロードはしません)、ダイアログを開きます。本が変わるのは読み込むを押したときだけです。Word文書でないファイル、たとえば古いバイナリ形式の.docは、その旨のメッセージを表示して受け付けません。先にWordで.docxとして保存してください。
ダイアログは次の部分からなり、それぞれ折りたためます。
- 元の文書の品質。原稿の作り方の診断で、スタイルが整っています(そのまま変換できます)、スタイルは一部だけです(手作業で書式を設定した段落があります)、スタイルがありません(すべてNormal(標準)なので、本文は通常の段落として読み込まれます)のいずれかです。その下に件数(段落、そのうちNormal以外のスタイルの段落、画像、表、注)と見つかった事柄が並び、それぞれに該当する段落のいくつかの書き出しが添えられます。見つかる事柄は、手作業で書式(フォント、サイズ、色、配置)を設定した段落(この書式はデザインで決まるので読み込みません)、手入力の見出しらしい太字の短い段落、Wordのリストの代わりに手入力した番号や行頭記号、手動の改行、手動の改ページ、間隔を空けるための空の段落、タブと連続した2つのスペース、変更履歴(挿入は残し、削除は読み込みません。先にWordで承諾するか元に戻してください)、コメント(読み込みません)、テキストボックス(各ボックスの文章は、アンカーのある段落の後に続きます)、数式(TeXに変換します。確認してください)、隠し文字、ブラウザーで表示できない形式(EMF、WMF、TIFF)の画像です。
- 読み込みテンプレート。使用中の対応づけで、自動(スタイル名で判定)、保存したテンプレート、またはSandboxから書き出したファイルならこの文書に保存されたものです。新しいテンプレートとして保存は名前を尋ね、この文書のすべてのスタイルを含めて対応づけをブラウザーに保存します。変更を保存は選択中のテンプレートを更新します。ダウンロードボタンはテンプレートを
.jsonファイルとして書き出し、アップロードボタンはそのファイルを読み込むので、チーム全体で同じテンプレートを共有できます。削除の前には確認があります。次回は、最後に使ったテンプレートが最初に示されます。 - 段落スタイル。文書が使っている段落スタイルごとに、それを使う段落の数、その1つの書き出し、変換先が表示されます。変換先は本文、見出し(1から6のレベルと、デザインに見出しスタイルがあればそのうちの1つ)、段落スタイル(デザインの段落スタイルの1つ。このスタイルの段落が続くと1つの
:::paragraphsグループになります)、囲み(続く段落がその種類の1つの囲みになります)、囲みの見出し(段落の文字を見出しにした囲みを開始します)、引用、隣の画像または表のキャプション、新しい章の始まり、Postext Markdown(書かれたまま)(Wordで入力したディレクティブのために、文字をそのまま写します)、読み込まないのいずれかです。Wordの番号付きリストと箇条書きの段落は、スタイルにかかわらず、番号と入れ子を保ったままPostextのリストになります。詩(:::verse、行ごと)は、そのスタイルの段落を:::verseの詩として組みます。デザインの段落スタイルの1つを指定することもできます。Shift+Enterで詩の行を区切り、1つの段落が1つの連、1行の段落が続けば1つの連、空の段落が連の区切りです。Verse、Poem、詩という名前のスタイルにはこれが推測されます。 - 文字スタイル。文字スタイルも同様で、変換先は書式なし、太字、イタリック、太字イタリック、スモールキャピタル、上付き、下付き、チップ(デザインのチップスタイルの1つ)、Postext Markdown(書かれたまま)、読み込まないのいずれかです。
- オプション。手動の改行(Shift+Enter)は、段落内の改行として残す(Markdownの行末にバックスラッシュを置きます。既定)か、スペースを挟んでつなげるか、新しい段落にします。手作業で設定した太字、イタリック、スモールキャピタル、上付き・下付きは、残すか読み込まないかを選べます。太字の短い段落は、段落のままにするか、いずれかのレベルの見出しにします。手動の改ページは読み込まない(改ページはデザインで決まる)か、
:::pagebreakとして残します。画像と表をリソースとして追加するかどうかも選べます。 - Markdownのプレビュー。対応づけを変えるたびに更新されます。
ダイアログの下部で本文の行き先を選びます。この章を置き換える、この章の後に新しい章を作る、本全体を置き換えるのいずれかで、後の2つではレベル1の見出しごとに新しい章が始まります。画像(PNG、JPEG、GIF、WebP、SVG)は図のリソースに、表は表のリソースになります(ヘッダー行、結合したセル、列幅、セルの塗りは保たれます)。どちらも元の位置に::resource{id="…"}で置かれ、隣のキャプションの段落がキャプションになります。Postextはリソースに番号を付けるので、手入力の番号(図3.)は読み込みません。脚注と文末脚注はPostextの脚注([^1])に、Wordの索引項目(XEフィールド)は:indexの印になります。リンクはリンクのまま、数式は$…$ / $$…$$になります。本文のタブは、Wordが設定したタブ位置を付けた:tab(:tab{at=432pt align=end leader="."})になります。段落が、独自のタブ位置を持つ本の段落スタイルに対応づけられる場合は、何も付けない:tabになります。Wordの点、ハイフン、中黒のリーダーは.、-、·に、下線と太線のリーダーは罫線になります。見出し、表のセル、注の中のタブはスペースになります。
自動の対応づけは、名前でスタイルを照合する前に、インターフェースの言語にかかわらずWord自身の役割(見出し 1–6、表題、引用文、図表番号。目次、索引、ヘッダー、フッターの段落は読み込みません)と、デザインのスタイルを認識します。本の段落スタイル、囲みの種類、見出しスタイル、チップスタイルと同じ名前(IDまたは名前で照合し、大文字と小文字、アクセントは区別しません)のWordスタイルは、そのスタイルに対応づけられます。
Wordに書き出すは、開いている章または本全体を、Wordで作業してもらうための.docxとしてダウンロードします。同じテンプレートを逆向きに適用します。見出しにはWordの見出しスタイルが付き、段落スタイル、囲み、引用、チップにはそれぞれ専用のWordスタイル(囲み: 注、チップ: キーのように、デザインのスタイルにちなんだ名前)が付きます。リストはWordのリストに、脚注はWordの脚注になり、リンクはリンクのままです。:tabはWordのタブになり、独自のタブ位置を持つ:tab{…}は書いたとおりに残ります。段落スタイルのタブ位置のうち長さで指定したものは、そのWordスタイルのタブ位置になり、リーダーはWordの最も近いものになります('end'や割合で指定したタブ位置は、Wordが文章を組むページによって変わるので書き出しません)。Wordで表示できないもの(フロントマター、フェンス、ディレクティブ、:ref、数式、:indexの印、リソースの行)は、灰色のPostext Markupスタイルで書かれたまま残ります。本を書き出すと、各章の先頭にPostext Chapterの段落が入ります。テンプレートはファイルの中に保存されるので、編集した文書は同じ対応づけで読み込み直され、章の段落があれば本全体として読み込まれます。灰色の文字をそのままにしておけば、本文は書き出したときのとおりに戻ります。脚注のラベルは振り直されます([^1]、[^2]…)が、印刷結果は変わりません。また、_italic_は*italic*として戻ります。
このダイアログで扱わない変換(PDF、PowerPoint、EPUB、IDMLの原稿や、元のレイアウト規則の再現)には、エージェントスキルを使ってください。
#作業内容の保存
Sandboxは作業内容を自動的にブラウザーに保存します。
- 本と設定:章、作業中の章、Canvasの表示範囲は
localStorageのpostext-sandbox-bookに自動保存されます(以前のバージョンで保存された単一の文書はpostext-sandbox-markdownから1章の本として読み込まれ、最初の保存時に移行されます)。設定は操作が1秒止まった後に既定値を除いて保存されるため、変更した値だけが残ります。あわせてそのバージョン(postext-sandbox-config-version)も保存されます。バージョンが導入される前に保存された設定は、後述の「postext 1.4以前に保存された見出しの改ページ」のとおりに読み込まれます。 - UIの状態:作業中のパネルとビューポートのタブ、サイドバーの幅、デザインパネルで開いているグループ(
postext-sandbox-settings-group)、その「すべての説明を表示」スイッチ(postext-sandbox-settings-help)とセクションの開閉状態、非表示にした見本の本、Canvasのズーム、フィット、表示モード、HTMLの文字の倍率と段組みのモード、EPUBタブのレイアウト形式(postext-sandbox-epub-layout)、ツールバーの固定状態は、すべてlocalStorageに保存されます。 - 開いている本:開いている自分の本(「プロジェクト」)のidは
localStorageのpostext-sandbox-projectに保存されます。プロジェクト本体(章、設定、リソースのレコード)は、SandboxのIndexedDBデータベースのprojectsストアにあり、そのバイナリーデータは作業中の文書とblobストア、フォントストアを共有します。レコードはversion: 9で、これはエンジンのCONFIG_VERSIONです。作業中の設定とpostext-config.jsonの書き出しにも同じ値が記録されるため、エンジンの規則が変わったときに、それぞれ一度だけ移行されます。以前のバージョンの単一文書のレコードは読み込み時に移行されます。バージョン3より古いレコードの見出しの改ページ、バージョン4より古いレコードの数式のサイズ、バージョン5より古いレコードのインラインの図の下のアキ、バージョン6より古いレコードの囲み内のインラインの図の前後のアキ、見出しの文字書式、ドロップキャップのサイズ、コロンの行の下の余地、囲みの分割、バージョン7より古いレコードのダッシュでの改行と行末不ぞろいのテキストの改行、バージョン8より古いレコードの見出し直下の分割、複合語のハイフンでの改行、:::paragraphsコンテナーの下のアキは、後述のとおり固定されます。作業中の文書からもどのプロジェクトからも参照されなくなったデータは、ガベージコレクションで削除されます。 - 編集した見本の本:見本の本を自分で編集した版(章、作業中の章、Canvasの表示範囲、設定、リソースのレコード、および開いたときに見本が適用した内容)は、SandboxのIndexedDBデータベースの
presetDraftsストアに、見本と内容の言語ごとに1レコードとして保存されます。そのファイルは、プロジェクトのファイルと同じくガベージコレクションでも保持されます。元に戻すと、このレコードは削除されます。 - 見本の本の表紙:サムネイルを同梱していない見本の本の最初のページから取った表紙は、SandboxのIndexedDBデータベースの
presetCoversストアに、見本と内容の言語ごとに1レコードとして保存されます(本パネルを参照)。自分の本は、表紙をそのプロジェクトのレコードに保持します。 - 離れるときの保存:保留中の編集は、1秒の待ち時間を待たずに、ページが非表示になるか閉じられたとき、リンク(ロゴ)からSandboxを離れるとき、別の本を開く前に、ただちに書き込まれます。
- 開いている見本の本:最後に読み込んだプリセットのidは
localStorageのpostext-sandbox-presetに保存されるため、各パネルのリセットボタンはセッションをまたいでそのプリセットを復元し続けます(配信されなくなったプリセットは利用不可と表示されます)。そのプリセットが適用した内容(バンドルのフィンガープリントと、Markdown、設定、リソース一式のハッシュ)はpostext-sandbox-preset-appliedに保存され、次に開いたときに未編集の文書と編集済みの文書を区別するのに使われます。 - リソースとフォント:リソースのレコード、そのバイナリーのblob(ビットマップとSVG)、カスタムフォントのファイルはIndexedDBに保存されます。IndexedDBを利用できない場合(一部のプライベートブラウジングモードなど)は、検査パネルの「ブラウザー」の下に「ストレージを利用できません」という警告が表示されます。
- パーマリンク:URLのフラグメントは画面に表示している内容を示します。そのため、再読み込みしても、ブックマークからでも、ほかの人に渡したリンクからでも、同じビューアーで同じ本の同じページが開きます。
#preset=bioquimica-feduchi&lang=es&view=canvas&chapter=1&page=7は、Bioquímicaプリセットをスペイン語でCanvasタブに、第1章の7ページ(ページに印刷されている番号)で開きます。viewはcanvas、pdf、folio、html、epubのいずれかです。Folioタブでは、ページは開いている見開きの右ページです。ローカルのプロジェクトはproject=IDで示します。これは保存領域のidなので、そのプロジェクトを持つブラウザーでしかリンクをたどれません。Sandboxは、本、タブ、章を切り替えたときやスクロールしたときに、フラグメントを最新の状態に保ちます。省略した部分は現在の状態のままという意味になり(ページがなければその章の最初のページ、本がなければ最後に開いていた本)、ブラウザーで開けない本は無視されます。開いているSandboxのアドレスバーにリンクを貼り付けると、その場で開きます。最後に開いていた本とは別の本へのリンクでページを開いた場合、Sandboxはリンク先の本が読み込まれるまで読み込み中の状態を表示し、前の本は表示しません。ホストはhashBundlesプロパティ(Propsを参照)で独自の本にリンクすることもできます。このウェブサイトでは、レシピ集のレシピを#recipe=<slug>&lang=esで開きます。初回は、レシピの.postextファイルを自分の本の1冊として読み込みます。同じリンクを再び開くと、まず確認が表示されます(「この本はすでにあります」)。自分の複製を開くは編集内容を含めてその本を開き、公開版に置き換えるはレシピを新たに読み込み直し(その後修正されている可能性があります)、新しい本が開いた時点で手元の複製を削除します。Escapeキーを押すと複製はそのまま残ります。その後、フラグメントはプロジェクトを示すようになります。インターフェースの言語はパスに含まれます(/en/sandbox、/es/sandbox)。langは多言語バンドルの内容の言語で、任意のBCP 47タグを正規の大文字・小文字表記で保持します(lang=zh-hantはzh-Hantとして読まれます)。バンドルにないタグの場合は、それに対応する版が開きます。zh-TWとzh-HKは繁体字中国語版(zh-Hant)、zhとzh-CNは簡体字中国語版(zh-Hans)、en-GBは英語版を開きます。もう一方の中国語の字体は、読者の字体の版がバンドルにない場合にのみ使われます。zh-Hansと英語の本へのzh-TWのリンクは、英語ではなく簡体字のテキストを開きます。langのないリンクは、バンドルがopenLocaleを指定していればその言語で、なければインターフェースの言語の版で開きます。リンクの章とページは開いた版に適用され、その後フラグメントはその版を独自のタグで示します(lang=zh-TW&chapter=28はlang=zh-Hant&chapter=28になります)。
postext 1.4以前に保存された見出しの改ページ。postext 1.4までは、headingsオブジェクトを持つ設定では、H1の「前で改ページ」スイッチを明示的に設定しないかぎり、レベル1見出しを改ページなしで組んでいました(また、保存時にオフにしたH1の改ページは削除されていました)。H1の改ページを部分的に指定すると、足りないフィールドは改ページなしの既定値から補われ、見出しスタイルの改ページも、そのレベルの改ページに統合されずに同じ扱いを受けていました。現在のエンジンは各レベルの既定値(H1は新しい奇数ページから始まるalways-odd)を保ち、部分的な指定をそこに統合します。当時保存した本のページを保つため、Sandboxはバージョン3より古いプロジェクトのレコード、またはバージョンのない作業中の設定を読み込むときに、それらの改ページを書き込みます。改ページがオフだったH1にはenabled: falseを、奇数・偶数の指定がないenabled: trueには、H1でも見出しスタイルでもparity: 'any'を添えます。これにより、デザインパネルにはページを組んだときの改ページ設定が表示されます。postext 1.5からはファイルにもバージョンが記録されます。マニフェストにconfigVersionのない.postextファイルや、それのないpostext-config.jsonはpostext 1.4以前で書き出されたもので、読み込むときや開くときに同じように扱われます(postext 1.4以前で書き出したバンドルを参照)。
postext 1.5より前に保存された数式のサイズ。postext 1.4までは、すべての数式が「サイズの倍率」の指定より1.131倍大きく組まれていました(数式のサイズを参照)。当時保存した本のページを保つため、Sandboxは、バージョン4より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 4より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、そのサイズを固定します。「サイズの倍率」は保存された倍率×1.1312になり、別行立て数式のem単位のマージンは1.1312で割られるため、数式とその周りのアキは元のままです。どの章にも$がない本はそのまま残し(postext-config.jsonは章を含まないため、数式が有効ならつねにサイズを固定します)、「LaTeXを有効化」がオフの本もそのままです。数式セクションには、本を組んでいる値が表示されます。現在のサイズで組むには、「サイズの倍率」「別行立て数式の上のアキ」「別行立て数式の下のアキ」をリセットします。固定は一度だけ書き込まれます。レコードは現在のバージョンで保存し直され、以後はそのまま読み込まれます。当時適用して一度も編集していないプリセットは、引き続き未編集として扱われます(Sandboxは固定後の値と比較します。見出しの改ページの固定も同様です)。そのため、再読み込みや本の切り替えで、行っていない編集を破棄するかどうか尋ねられることはなく、組み込みのガイドなどプリセットの新しいバージョンは引き続きそれを置き換えます。
postext 1.5より前に保存されたインラインの図。postext 1.4までは、本文中にインラインで置いた図や表(配置「インライン(この位置)」)は上にだけ1行分のアキを取っていました。その後のテキストは、どれほど近くても次のグリッド線から再開していました。現在は下にも同じ1行分を取ります(段組み → インラインの図の前後のアキ、「上下」)。当時保存した本のページを保つため、Sandboxは、バージョン5より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 5より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本のどこかの行がリソースを埋め込んでいれば(本文中での言及ではなく、行に単独で置かれた::resource{id="…"})、「インラインの図の前後のアキ」を「上のみ」にします。postext-config.jsonは章を含まないため、ファイルが古ければつねにこの設定になります。現在のアキで組むには「上下」を選びます。
postext 1.5より前に保存された囲み内のインラインの図。postext 1.4までは、囲みの中にインラインで置いた図や表は、周りの囲みのテキストに接して置かれていました。現在は上に囲みのテキスト1行分のアキを取り、「上下」の場合は下にも取ります(段組み → 囲み内の図の前後のアキ)。当時保存した本のページを保つため、Sandboxは、バージョン6より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 6より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本の囲みが単独の行でリソースを埋め込んでいれば、「囲み内の図の前後のアキ」をオフにします。postext-config.jsonは章を含まないため、ファイルが古ければつねにオフになります。現在のアキで組むにはオンにします。
postext 1.5より前に保存された見出しの文字書式とドロップキャップ。postext 1.4までは、見出しは*italic*、**bold**などの書式が付いた語も見出し自身のプレーンなスタイルで印刷し、サイズを指定しないドロップキャップは、かかる行すべてを合わせた高さになり、その上端は1行目より上に出ていました。現在、見出しは書式を反映し(見出し → 見出し内の文字書式)、ドロップキャップの上端は1行目の大文字の高さにそろいます。当時保存した本のページを保つため、Sandboxは、バージョン6より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 6より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本の見出しに書式が含まれていれば「見出し内の文字書式」をオフにします(postext-config.jsonは章を含まないため、ファイルが古ければつねにオフになります)。また、各ドロップキャップが組まれていたサイズをドロップキャップのサイズに書き込みます。現在の規則で組むには、スイッチをオンにするか、サイズを空にします。その場合、タイトル全体を*…*で囲んだイタリックの見出しは立体で組まれる点に注意してください。
postext 1.5より前に保存されたコロンの後のリスト。postext 1.4までは、「コロンとリストを離さない」は、コロンで終わる行の下に1行分の余地があればリストには十分とみなしていました。そのため、オーファンとウィドウの規則で分割されない2行の最初の項目は次の段に送られ、コロンの行だけが段の末尾に残りました。現在は、最初の項目に必要な余地を求めます(文字組み → 本文 → ウィドウ、オーファン、短い行 → コロンの下に必要な余地、「最初の項目に必要な分」)。当時保存した本のページを保つため、Sandboxは、バージョン6より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 6より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本のリストがコロンで終わる行の後に続いていれば、「コロンの下に必要な余地」を「1行(1.4)」にします。postext-config.jsonは章を含まないため、ファイルが古ければつねにこの設定になります。現在の規則で組むには「最初の項目に必要な分」を選びます。
postext 1.5より前に保存された囲みの分割。postext 1.4までは、段落やリスト項目の途中で分割される囲みは、囲みの前後それぞれに「分割の前後に残す行数」が保たれていれば、その段落や項目の1行だけを片側に残すことがありました。現在は、分割位置で段落や項目の少なくとも2行を前後それぞれに残します(段組み → 囲みの分割位置に残す段落の行数)。当時保存した本のページを保つため、Sandboxは、バージョン6より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 6より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本の章が:::calloutを開いていれば、「囲みの分割位置に残す段落の行数」を1にします。postext-config.jsonは章を含まないため、ファイルが古ければつねにこの設定になります。現在の規則で組むには2に戻します。
postext 1.5より前に保存されたダッシュと行末不ぞろいのテキスト。postext 1.4までは、最適改行は、語と語の間に詰めて置かれたエムダッシュやエンダッシュ(say—that’s)の後で行を終えることがなく、行末不ぞろいのテキストはつねに1行ずつ、各行を埋めてから次の行に進む方法で組まれていました。現在は、そのようなダッシュの後で行を終えることができ(文字組み → 本文 → 段落 → ダッシュの後での改行)、行末不ぞろいの本文もKnuth-Plassで改行されます(行末不ぞろいの最適改行)。当時保存した本のページを保つため、Sandboxは、バージョン7より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 7より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本の章にそのようなダッシュがあれば「ダッシュの後での改行」をオフにし(postext-config.jsonは章を含まないため、ファイルが古ければつねにオフになります)、設定が本文の一部を行末不ぞろいにしていれば「行末不ぞろいの最適改行」をオフにします。対象は本文、段落スタイル、囲みの本文、部の本文、節スタイルの本文です。現在の規則で組むには、これらをオンにします。
postext 1.5より前に保存された見出し直下の分割。postext 1.4までは、段の末尾にある見出しの下の段落は、次の段に送られる行がどれほど少なくても、そこに収まるだけの行を残していました。現在は、オーファンの最小行数も守り、守れなければ見出しも一緒に次へ送ります(見出しと目次 → 見出し → 見出し直下での分割)。当時保存した本のページを保つため、Sandboxは、バージョン8より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 8より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本の章に見出しがあり(postext-config.jsonは章を含まないため、ファイルが古ければつねにこの設定になります)、かつ設定で「次と分離しない」とオーファンの制御がオンになっていれば、「見出し直下での分割」を「段を埋める」にします。現在の規則で組むには「規則どおり」にします。
postext 1.5より前に保存された段落コンテナー。postext 1.4までは、:::paragraphsコンテナーの下のアキはスタイル自身のもの(段落間のアキと下マージンの大きいほう)で、最終行の下に取られた後、テキストがグリッドに戻っていました。見出しが自分の上に取るアキはその下に加算され、本文の段落間のアキは考慮されませんでした。そのため、見出しは段落の後よりも参考文献の後で離れて置かれ、詰めて組んだ項目群の後の段落は、ほかのどの段落の後よりも近くに置かれていました。現在、このアキは次のブロック自身のアキと相殺され、少なくともテキストの段落間のアキになります(文字組み → 段落スタイル → コンテナーの下のアキ、「相殺」)。当時保存した本のページを保つため、Sandboxは、バージョン8より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 8より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、設定が段落スタイルを宣言し、本の章が:::paragraphsコンテナーを開いていれば、「コンテナーの下のアキ」を「加算(1.4)」にします。postext-config.jsonは章を含まないため、ファイルが古く、段落スタイルを宣言していればつねにこの設定になります。現在の規則で組むには「相殺」を選びます。
postext 1.5より前に保存された複合語。postext 1.4までは、太字やイタリックなどの書式のない段落では、最適改行は両端そろえの行を複合語(well-known)のハイフンの後で終えることがなく、書式のある段落では終えていました。現在は、どの段落でもそこで行を終えられます(文字組み → 本文 → 段落 → ハイフンの後での改行)。当時保存した本のページを保つため、Sandboxは、バージョン8より古いプロジェクトのレコード、古いバージョンの記録で(または記録なしで)保存された作業中の設定、マニフェストがconfigVersion: 8より古い.postextファイル、それ以前に書き出されたpostext-config.jsonを読み込むときに、本の章で2つの文字の間にハイフンがあれば「ハイフンの後での改行」をオフにします(postext-config.jsonは章を含まないため、ファイルが古ければつねにオフになります)。現在の規則で組むにはオンにします。
postext 1.23より前に保存された詩とぶら下げインデントのスタイル。postext 1.22までは、行に||のない:::verseの詩は各行を1つの半句として中央に置いて組み、段落スタイルのぶら下げインデントは1行目の字下げに取って代わっていました。いまはそうした詩を行ごとに組み(文字組み → 本文 → 詩 → 区切りのない詩、行ごと)、両方の字下げを決めたスタイルは1行目を1行目の字下げから始めます。当時保存した本のページを保つため、Sandboxはバージョン9より古いプロジェクトの記録、作業中の設定、9未満と記されたpostext-config.jsonのエクスポートで、章にそうした詩があるものを読むときに区切りのない詩を*半句として(1.22)*にし、ぶら下げもするスタイルから1行目の字下げを外します。また、章に行末がバックスラッシュで終わる行や、後ろにスペースのある\\があれば(postext 1.22まではそのまま印字されていました)、強制改行(文字組み → 本文 → 段落)をオフにします。章を持たないpostext-config.jsonのエクスポートでは常にオフにします。さらに、章に```か~~~のフェンスがあれば、コードフェンス(文字組み → コード)をオフにします。そのフェンスの行は、postext 1.22まではMarkdownとして読まれていました(エクスポートでは常にオフにします)。
postext 1.23で保存した詩。postext 1.23では、一行ずつ組む詩で行長よりわずかでも長い行は折り返していました。現在は語間を最小語間まで詰め、それで足りれば一行に収めます(文字組み → 本文 → 詩 → 折り返す前に詰める)。当時保存した本のページを保つため、Sandboxは、版が9以下で章に一行ずつ組む詩があるプロジェクトの記録、作業中の設定、postext-config.jsonの書き出しを読むと、折り返す前に詰めるをオフにします(章を含まない書き出しでは常にオフ)。
postext 1.23で保存したデザインのテキスト。postext 1.23までは、はみ出しを設定していない見出しのデザインや部扉のテキスト要素は、省略記号付きの1行に切り詰められていました。現在は複数行に折り返し、テキストを追加もはみ出しを配置先に任せます。当時保存した本のページが変わらないよう、Sandboxはスタンプが9以下のプロジェクトの記録、作業中の構成、.postextファイル、postext-config.jsonの書き出しを読み込むときに、これらの要素のはみ出しを*末尾を省略(…)*にします。
postext 1.24で保存したインラインの表と段組。postext 1.24までは、hereに置いた表が段の残りに収まらないときは丸ごと次の段に移り、囲みの外の:::columnsフェンスは無視され、囲みが:::columnsグループの中で切られることもありませんでした。現在は、表は行の間で切られ、グループはブロックを段に組んで次の段やページに続きます。当時保存した本のページが変わらないよう、Sandboxはスタンプが11未満のプロジェクトの記録、作業中の構成、postext-config.jsonの書き出しを読み込むときに、章がリソースを埋め込んでいれば本文中に置いた表にも適用(表)をオフにし、章に:::columnsフェンスがあれば本文中の段組と、分割される段組グループ(段組み)をオフにします(章を含まない書き出しでは、つねにオフにします)。
これらの固定は、それぞれの規則の変更で動くはずだった部分を抑えるものです。バージョン1.5ではレイアウトのバグも修正されていますが、修正には固定がないため、保存した本でも、次のいずれかに当てはまる箇所ではページが動くことがあります。デザインのないページ幅の章見出しの帯、見出しデザイン内のドロップキャップ、囲み内の段落、段末そろえで引き伸ばされるゆるい段落、1行より広いマージンを持つフロートとして配置した囲み、トラッキングを設定した中央そろえまたは右そろえの柱、ページ幅の章扉の下の2段目、ハイフンの後で改行された見出しから取った柱、行より広い語がそれ自身のハイフンの隣で切られる場合、行より広い語の残り(現在はそれ自身の分割位置を保ちます)、別のリストに入れ子になったリストの後の項目です(一覧は数式のサイズを参照)。
保存領域はUIの言語をまたいで共有されます。未編集の既定の文書は、言語が変わるとその言語の既定のMarkdownに切り替わり、例のリソースも入れ直されます。そのため、スペイン語のSandboxを開くとスペイン語の例が表示されます。ユーザーが編集すると、その文書はこの動作の対象外になります。また、設定で言語が指定されていない場合(ハイフネーションの言語もlocaleもない場合)、すべてのプレビューはUIの言語からハイフネーションの言語を導きます。
#書き出しと読み込み
本全体は、.postextファイルとして持ち運べます。これはプリセットバンドルのディレクトリーとまったく同じ構成のzipアーカイブで、preset.json、chapters/*.md、resources/*、fonts/*を含みます(プリセットバンドルの形式を参照)。アーカイブには本のページ割りもlayouts.jsonとして含まれます。これは各章のページ数と番号付けで、組んだときのエンジンのバージョン、設定、リソースが記録されています。そのため、読み込んだ本はページ割り済みの状態で開き、記録と一致しなくなった部分だけが組み直されます。複数言語のバンドルは言語ごとに独自の設定で組まれるため、代わりに言語ごとに1つ、layouts.<locale>.json(layouts.zh-Hant.json)を含むことがあり、これはlayouts.jsonより先に読まれます。作業中の文書は、保持しているページ割りを書き出します。行から書き出したプロジェクトやプリセットには、最後に作業中の本だったときに記録したページ割りが含まれます。表紙画像はマニフェストのthumbnailとして書き込まれるため、書き出しと読み込みを経ても失われません。本パネルの新規メニュー(.postextファイルを開く…)は、ファイルを新しい本として読み込みます。各行の⋯メニューにもそれぞれ書き出しの項目(ダウンロード(.postext))があり、開いている本の項目は作業中の文書を書き出します。以前のバージョンで書き出したファイル(単一のdocument.mdを持つバージョン1のマニフェスト)は、1章の本として読み込まれます。1つの言語の本は、インターフェースの言語にかかわらず、その言語の図と表のラベルを保ちます。/en/sandboxで開いたスペイン語のファイルは、設定で別のリソースタイプを指定していないかぎり「Figura」「Tabla」と印刷します。言語は、ファイルが指定する言語、指定がなければ設定の言語(locale、次にハイフネーションの言語)です。読み込みでは、アーカイブのルートにあるファイルも、1つの最上位フォルダーの下にあるファイル(フォルダーそのものをzip圧縮した場合)も受け付けます(__MACOSXのエントリーとドットファイルは無視されます)。フォントはconfig.customFontsの中ではなく、つねに別のファイルとして書き込まれます。.woffのフェイスは書き出しでも読み込みでも警告付きでスキップされ、バイトデータのないリソースも同様です。書き出したファイルを<presets-root>/<dir>/に展開し、index.jsonにエントリーを追加すれば、プリセットとして配信できます。
同じファイルはpostextパッケージでも読み書きできます(openBundle、createBundle、buildBundle。バンドルを参照)。ここで書き出した本は独自のプログラムで開け、プログラムが書き出した本はここで開けます。そのため、Sandboxはプログラムが組んだものを確認し、微調整する場として使えます。プログラムから書き出し、ここで読み込み、ライブプレビューで修正し、再び書き出してプログラムに読み込み直します。エージェントスキルも、移植の成果を.postextファイルで渡します。
テキストとデザインは、本文パネルとデザインパネルのヘッダーから個別に書き出すこともできます。
デザインパネルのヘッダーからは、既定値を除いたpostext-config.jsonをダウンロードできます。
{
"type": "postext-config",
"version": 1,
"config": { ... }
}本文パネルのヘッダーからは作業中の章をプレーンな.mdファイルとしてダウンロードでき、その読み込みボタンは作業中の章を.mdファイルの内容で置き換えます。デザインパネルの読み込みボタンは.jsonファイルを選ぶダイアログを開き、ファイルを想定するtypeとversionで検証します。無効なファイルは何も通知されずに無視されます。以前のバージョンにあったpostext-markdown.jsonのラッパーと、ひとまとめのpostext-sandbox.json形式はなくなりました。