Pagesでページ数とfacing pagesの値から該当のページが右側に存在するかどうかを判定するAppleScriptです。
ページが右側にあるかどうか、というこの判定処理はツメ処理のために用意したものです。見開きの右側に置くのが基本といいますか、別に左側にもあってもいいんですが、右側ページ右端に置いた縦長の表オブジェクトをツメと見立てて処理することに(個人的に)したためです。
▲同一のPages書類を「見開きページ」の設定をオフにした状態(左)、オンにした状態(右)でページの並びが変わる
AppleScript名:Pages書類のfacing Pagesを取得.scpt |
set fRes to getFacingPages() of me on getFacingPages() tell application "Pages" tell front document return facing pages end tell end tell end getFacingPages |
こんな記述でfacing pagesの値を取得でき、この値とページ数(ノンブル)をもとに奇数ページ、偶数ページの判定を行い、ページの左右を判定できます。
本Scriptを実行すると、以下のようにログ表示を行います。{facing pages, ノンブル, 右側ページかどうかの判定結果}を表示しています。
(*false, 1, false*) (*false, 2, true*) (*false, 3, false*) (*false, 4, true*) (*false, 5, false*) (*false, 6, true*) (*true, 1, true*) (*true, 2, false*) (*true, 3, true*) (*true, 4, false*) (*true, 5, true*) (*true, 6, false*)
以前にどこかで「奇数/偶数の判定処理なんて、素朴な処理をサブルーチンとして独立して用意しておくのか?」と聞かれたことがありましたが、このように、サブルーチンとして用意しておいたので簡単に使い回して利用できているわけです。
AppleScript名:Pagesのページ番号の該当ページが右側にあるかどうか計算.scpt |
set flagList to {false, true} repeat with i in flagList set aFlag to contents of i repeat with aPage from 1 to 6 set rRes to checkPagesRightPage(aPage, aFlag) of me log {i, aPage, rRes} end repeat end repeat –Pagesのページ番号の該当ページが右側にあるかどうか計算 on checkPagesRightPage(aNum, aFlag) set oddF to chkOddNum(aNum) of me –奇数チェック if {aFlag, oddF} = {true, true} then return true –右側ページ else if {aFlag, oddF} = {false, false} then return true –右側ページ else return false end if end checkPagesRightPage –奇数かどうかチェック on chkOddNum(aNum) set a to aNum mod 2 if a = 1 then return true else return false end if end chkOddNum –偶数かどうかチェック on chkEvenNum(aNum) set a to aNum mod 2 if a = 0 then return true else return false end if end chkEvenNum |
More from my site
(Visited 225 times, 1 visits today)