目下、「Pages+AppleScriptで本をつくろう!」という電子書籍を執筆中です。
これまでの電子書籍作成のノウハウと、その中で必要に迫られて書いたAppleScriptのかずかずを盛り込んでいます。
AppleScriptについて詳しく説明を行わず、コンテンツの作成に比重を置いています(高機能なScriptは添付)。
そんな中、これまでに疑問に思っていたことについてPagesのヘルプでいろいろ調べてみたところ、いろいろ勘違いしていたことが分かりました。
Pagesは、ワープロ的に書類下地に本文を記入する「ワープロ的な世界観」と、ボックスを並べてテキスト流し込みを行う「DTP的な世界観」の2つの機能が混在していると思っていました。ただ、ワープロ的な世界観に無理やりにDTP的な世界観を統合したため、
・ページ単位の編集能力がない
と思っていました。しかし、これが自分の勘違いであることがわかりました。
数十ページも書き換える必要が出てきて頭を抱えているところです。
ものすごくわかりにくい場所に、モード切り替えスイッチが存在
これら2つの世界観に対して公式に名前が割り振られていることをヘルプで確認(ものすごくわかりにくい)。
ワープロ的世界観の書類のことを「文章作成書類」、DTP的な世界観の書類のことを「ページレイアウト書類」と呼んでいることを見つけました。画面上にそうした切り替え機能が(メニューなどに)、明確に用意されているものではありません。
Pagesで書類を新規作成したときに、作成されるのは「文章作成書類」(ワープロ的)です。
これまで、自分はこの「文章作成書類」の上にテキストボックスを並べて、DTPソフト的に使っていました。結果として、ページ単位の削除やならべかえが行いにくく、「ページ単位の編集ができないので、書類を小分けにして対処しよう」という作り方をしてきました。
ところが、このDTPソフト的な使い方に適した「ページレイアウト書類」モードに切り替えるスイッチが存在していたのです(こんなの気づかないぞ!)。
この、インスペクタを「書類」に設定し、「書類」タブを選択した中に存在している「書類本文」チェックボックス。デフォルトではこれが選択されています。
では、このチェックをはずすとどうなるか?
わざわざ「ページレイアウト書類に変換してもよろしいですか?」というダイアログを表示して警告します。
これが、「文章作成書類」モードと「ページレイアウト書類」モードの切り替えを行う操作です。最初から、ページレイアウト書類の「空白」テンプレートを用意しておいてほしいぐらいです(ユーザーによる追加は可能)。
Macのアプリでは「モーダルな処理をなるべく避けること」といったガイドラインが存在しているのですが、Pagesの場合はモーダルな機能を隠した結果、余計にわかりにくくなった印象です。
この2つの書類モードの切り替えは不可逆的なものではなく、随時切り替え操作が可能です。ただし、先のダイアログによる警告どおり、文章作成書類(ワープロモード)で本文テキストを入力していた場合には、それはすべて削除されます。
ページレイアウト書類に切り替えると機能も変わる
ページレイアウト書類モードに切り替えると、機能自体も変わります。
(1)ページ単位の編集が可能に
文章作成書類モードでは謎機能だった「セクション」が「ページ」と呼び替えられます。普通にページ挿入や、ページのサムネールを入れ替えるとページが入れ替えられたり、ページ単位の削除が行えます。
(2)オブジェクトの配置がなくなる
本文テキストとともにオブジェクトが移動したり、移動しなかったりという制御を行う「オブジェクトの配置」機能が、インスペクタ上から消えます。
「ページレイアウト書類」モードでは、本文というものがなくなるのに合わせて、インスペクタから消えます。
(3)ページ挿入ができるようになる
「セクションの挿入」が「ページの挿入」に切り替わります。
ページレイアウト書類モードに切り替えると、これまでPagesに感じてきた違和感がなくなります。
こんな重要な機能はもっとわかりやい場所に配置しておくべきです。
書類モードのAppleScriptからの検出
AppleScript名:書類モードの検出(文章作成書類、ページレイアウト書類).scpt |
tell application "Pages" tell front document set dStat to document body –> false –ページレイアウト書類 –> true –文章作成書類 end tell end tell |
AppleScriptからdocumentの属性値「document body」を取得するとtrueなら文章作成書類、falseならページレイアウト書類であることが分かります。
なお、この「document body」という属性値はr/o(Read Only)であるため、属性値の書き換えで切り替えることはできません。
Pagesの「文章作成書類」を前提とした末尾ページの削除や指定ページから末尾までの一括削除AppleScriptを作りためていましたが、これらは「ページレイアウト書類」モードでは機能しません。
ただ、ページレイアウト書類モードではページのサムネールを選択してページ削除が行えるので、これらのAppleScriptが機能しなくても問題はないでしょう。