NiftyServe FPRINT 2番会議室で連載した,「QuarkXPressを操ろう」の内容をそのまま載せています。
QuarkXPressを操ろう(その20)「ガイドラインの作成(1)」
QuarkXPressを操ろう(その21)「ガイドラインの作成(2)」
QuarkXPressを操ろう(その22)「ガイドラインの作成(3)」
QuarkXPressを操ろう(その23)「ガイドラインの作成(4)」
QuarkXPressを操ろう(その24)「ガイドラインの作成(5)」
QuarkXPressを操ろう(その25)「単位の変換」
QuarkXPressを操ろう(その26)「フィルタ参照形式」
QuarkXPressを操ろう(その27)「出来ないこと」
02917/02917 GGC00677 [,た] QuarkXPressを操ろう(その20)
( 2) 96/04/10 10:11
ガイドラインの作成
EPS画像の張り込みをやろうと思っていましたが,picture box とか imageがまだ
説明していないので,ガイドラインを先にやっていきます。
ガイドラインは小さいサイズでまともなことができ,肉付けもしやすく,付随する
スクリプトも多い,教材には格好なものです。
オブジェクトは水平ガイドは horizontal guide
垂直ガイドは vertical guide
です。
そのプロパティは,
from master -- trueならマスターページから来たガイド
position -- measure単位,centimeters,millimeters,points等
scale -- percent 画面表示がこの値以上の時に表示する
undeletable -- trueならガイドは消せない
unmoveable -- trueならガイドは動かせない
では,新規ドキュメントを作って,そこに,水平ガイド一本引いてください。
(ペーストボードに掛かるガイドではなく,ページだけにかかるガイドを引いてくだ
さい。)
下記スクリプトを実行すると,なぜかpropertyをとってこれません!?
--------------------------------------------------------
tell application "QuarkXPress3.3J"
activate
tell document 1
tell page 1
tell horizontal guide 1
get properties
end tell
end tell
end tell
end tell
--------------------------------------------------------
ですから,下記で確かめましょう。
--------------------------------------------------------
tell application "QuarkXPress3.3J"
activate
tell document 1
tell page 1
tell horizontal guide 1
get from master
get position
get scale
get undeletable
get unmoveable
end tell
end tell
end tell
end tell
--------------------------------------------------------
履歴ウインドウで結果を確認してみて下さい。
では,値を変えてみます。
--------------------------------------------------------
tell application "QuarkXPress3.3J"
activate
tell document 1
tell page 1
tell horizontal guide 1
set position to 50 --単位を書かなければルーラの単位
set scale to 200 -- 画面表示200%以上でガイド表示
set undeletable to false
set unmoveable to false
end tell
end tell
end tell
end tell
--------------------------------------------------------
これらの値を操作することで,ガイドを操ります。
GGC00677 [,た] 鎌田幸雄
03097/03097 GGC00677 [,た] QuarkXPressを操ろう(その21)
( 2) 96/05/15 00:01
ガイドラインの作成2
ご無沙汰しております。GW後に仕上げてね!という750ページのドキュメント作
成作業もようやく収束しつつあり、また、ご声援も受けましたので、引き続きやって
みたいと思います。 前回、ガイドラインのプロパティの説明で終わりましたので、
具体的なものに話を移しましょう。
正確なガイドラインを引く場合,ルーラの目盛りが表れるまで画面を拡大しなくて
はいけません。しかし,AppleScriptを使うと,QuarkXPressに直接"〜mmにガイドラ
インを引け"と命令を送りますので,画面拡大率に関係なく,正しく引くことができ
ます。倉持さんのツールをお使いの方も多いでしょうから、既に存じていると思いま
す。また,ガイドラインの属性に,消せなくしたり,動かせなくしたり,ある画面
拡大率から表示するといったものがあるのは前回話した通りです。
では,実用的なスクリプトです
--Make guide line at current page------------Copyright 1996 Yukio Kamata
-----
tell application "QuarkXPress3.3J"
activate
repeat
set guide_ANS to display dialog ツ
"ガイドの位置を入力し,引く方向のボタンを押して下さい"
default
answer ツ
"" buttons {"横", "縦", "終了"}
set guide_HV to button returned of guide_ANS
set guide_Value to text returned of guide_ANS
if guide_HV = "終了" then return
tell document 1
tell current page
try
if guide_HV = "横" then
make horizontal guide at beginning with properties
ツ
{position:guide_Value, scale:10, undeletable:false,
unmoveable:false}
end if
if guide_HV = "縦" then
make vertical guide at beginning with properties
ツ
{position:guide_Value, scale:10, undeletable:false,
unmoveable:false}
end if
on error
display dialog ツ
"ガイドを引くことができませんでした" buttons
{"OK"}
end try
end tell
end tell
end repeat
end tell
-----------------------------------------------------------------------------
これは、表示しているページに対してガイドラインを引くものです。ペーストボード
やマスターページには引けません。あくまでもページの上です。
プロパティのscale:xxx は画面表示がxxx%以上の時にガイドを表示させます。400
%の時に見れればいいガイドラインならば、400に設定して下さい。
undeletable:をtrueにすると、消せないガイドラインができます。
unmoveable:をtrueにすると動かせないガイドラインができます。ここの値を変えて、
自分好み、〜ドキュメント用ガイドラインを作成してみて下さい。
単位についてですが、数字だけ入れると、ガイドラインに使用している単位で取り込
まれます。それ以外では、通常通り、mm,cm,pt,p,",cを入れて下さい。Q は使用でき
ません。また、足し算等は可能ですので、通常Quarkを使用するように単位を記入し
て下さい。
ページの外、つまりペーストボードに引きたい場合は、tell current page を te
ll current spread に変えれば引けます。しかし、スプレッドですので、見開きの
場合、両ページとペーストボードにまたがってガイドラインを引くことになります
(横に引く場合)。
これを使って、3mmの裁線にガイドラインを引くスクリプトを次回に紹介します。
GGC00677 [,た] 鎌田 幸雄
03112/03112 GGC00677 [,た] QuarkXPressを操ろう(その22)
( 2) 96/05/16 18:14
ガイドラインの作成3
前回はページの上にガイドラインを引くことでしたが,今回はスプレッドに引きま
しょう
スプレッドとは何か?
ドキュメントを開くと,上下左右に余白(ペーストボード)がありますよね。それと
ページを含めた領域を言います。つまり,単ページの場合は,左の余白+ページ+右の
余白+上下の余白。見開きの場合は,左の余白+左ページ+右ページ+右の余白+上下
の余白です。というように,表示されているページを囲む線の領域を指します(分かり
ますよね)。
スプレッドにガイドラインを引く場合の注意点
スプレッドにガイドラインを引くその位置の指定の原点は,スプレッドの左端上にな
り,右端下が終点になります(つまり,見えているルーラとは違っています)。画面
上,-3mmに引きたくて,マイナス値を与えると怒られてしまいます。ですから,ペース
トボードの幅を考慮にいれなくてはいけません。
ペーストボードの幅は,環境設定でドキュメントに対して何%か決めることができま
す。ドキュメントの最大値は48インチですから,単ページの場合,48インチ/3=16イン
チ(=406mm)以下のドキュメント幅ならば,100%確保できます。しかし,それ以上で
すとペーストボードの幅は小さくなっていきます。そういった考慮も必要になります。
しかし,ここまでこだわるとリストが複雑になるので,紹介するのはペーストボード
の幅100%で,その幅が確保できるドキュメント時に有効なものです(単ページなら
幅406mm以下,見開きならば,幅304.8mm以下。観音等使用時は幅が確保できるか注意が
必要です)。
--3mm TONBO guide line ---------------------Copyright 1996 Yukio Kamata
-----
tell application "QuarkXPress3.3J"
tell document 1
set oldHM to horizontal measure
set oldVM to vertical measure
set horizontal measure to points
set vertical measure to points
set spread rule origin to {0, 0}
set pageWidthreal to page width as real
set pageWidthint to round pageWidthreal --丸めてから
set pageWidthtxt to pageWidthint as text --テキスト変換
set pageHeightreal to page height as real
set pageHeighttxt to pageHeightreal as text --丸めないでテキスト変換
tell current spread
set NpageWidthreal to (number of pages) * pageWidthreal as real
set NpageWidthtxt to NpageWidthreal as text --丸めないでテキスト変換
make horizontal guide at beginning ツ
with properties {position:"36pt-3mm"}
make vertical guide at beginning ツ
with properties {position:pageWidthtxt &"-3mm"}
make horizontal guide at beginning ツ
with properties {position:"36pt+" &pageHeighttxt
&"+3mm"}
make vertical guide at beginning ツ
with properties {position:pageWidthtxt &"+"
&NpageWidthtxt &ツ
"+3mm"}
end tell --spread
set horizontal measure to oldHM
set vertical measure to oldVM
end tell -- document
end tell -- application
-----------------------------------------------------------------------------
上下のペーストボードはドキュメントサイズに依らず,36ptですので簡単に値をあたえ
られます。しかし,左右の値はドキュメントによって変わりますし,単位の誤差の問
題,ドキュメントサイズとガイドの位置では計測単位の丸めかたが違っていたりして,
苦労しました。
(さらりと書きましたが,これが分かり,プログラムできるようなルールが分かるまで
には,まさんざん試行錯誤してきているんですよー。また,再現性がないのですが,左
右のガイドラインの位置が1ptずれる場合がまれにあります。)
GGC00677 [,た] 鎌田 幸雄
03240/03240 GGC00677 [,た] QuarkXPressを操ろう(その23)
( 2) 96/06/07 01:38
ガイドラインの作成4
前回の3mm TONBO guide lineに手を加えてみました。
スプレッドがどうなっていようとも,ガイドラインを引いてくれると思います。
--3mm TONBO guide line ---------------------Copyright 1996 Yukio Kamata
-----
tell application "QuarkXPress3.3J"
-- application情報の取得
tell document 1
if horizontal measure is not vertical measure then
display dialog "ルーラ単位不一致!" buttons {"終了"}
ツ
default button {"終了"} with icon 2
return
end if
--document情報の取得
set oldHM to horizontal measure
set oldVM to vertical measure
set oldView to view scale
set horizontal measure to points
set vertical measure to points
set pageW_real to page width as real
set pageH_real to page height as real
set pageH_pt to pageH_real as points
set pageH_txt to pageH_pt as text
set pageR_orgn to page rule origin as list
set page rule origin to {0, 0}
set sprdR_orgn to spread rule origin as list
set spread rule origin to {0, 0}
set horizontal measure to oldHM
set vertical measure to oldVM
--spread情報の取得
tell current spread
set page_num to number of pages
--paste board情報の取得
tell page 1
set fstpagePos to bounds as list
set fstpagePV1_pt to item 1 of fstpagePos as points
set fstpagePH1_pt to item 2 of fstpagePos as points
set fstpagePV1_txt to fstpagePV1_pt as text
set fstpagePH1_txt to fstpagePH1_pt as text
end tell
end tell
set lstpagewidth_real to pageW_real * page_num as real
set lstpagewidth_pt to lstpagewidth_real as points
set lstpagewidth_txt to lstpagewidth_pt as text
tell current spread
--メイン
make vertical guide at beginning with properties ツ
{position:fstpagePH1_txt &"-3mm"}
make vertical guide at beginning with properties ツ
{position:fstpagePH1_txt &"+" &lstpagewidth_txt
&"+3mm"}
make horizontal guide at beginning with properties ツ
{position:fstpagePV1_txt &"-3mm"}
make horizontal guide at beginning with properties ツ
{position:fstpagePV1_txt &"+" &pageH_txt
&"+3mm"}
end tell
set view scale to oldView
set page rule origin to pageR_orgn
set spread rule origin to sprdR_orgn
end tell
end tell
-----------------------------------------------------------------------------
GGC00677 [,た] 鎌田 幸雄
03242/03242 GGC00677 [,た] QuarkXPressを操ろう(その24)
( 2) 96/06/07 08:47
ガイドラインの作成5
マスターページにガイドラインを引く
マスターページで引くときに問題になるのは,現在見えているマスターページについ
て,ドキュメントのように,tell current spread,tell current pageが使えない点で
す。で,どうするかですが,結局 tell spread 1,tell page 1 を使用しないといけな
いでしょう。では,そのインデックス(番号)をどう取得するかです。
ページについて
単ページならば,tell page 1 で済みます。
見開きならば,左側がtell page 1,右側がtell page 2 となります。
スプレッドについて
マスターページを作成した順番で,1,2,3と番号が付けられます。レイアウト
パレットで順序を入れ替えても関係なく,あくまでも作成順で番号が振られます。
tell master document 1
set masterScnt_int to default spread count as integer
set masterSname_lst to name of every spread as list
end tell
変数masterScnt_intにマスターページの個数を整数値で与える
変数masterSname_lstにマスターページの名前をリスト形式で与える
例えばあるドキュメントが3個のマスターページがあり,それぞれ,A-マスター-A,
B-マスター-B,C-マスター-Cだとすると,masterScnt_intは3,masterSname_lstは
{A-マスター-A,B-マスター-B,C-マスター-C}となります。
ですから,希望するスプレッドのインデックスは{A-マスター-A,B-マスター-B,
C-マスター-C}の何番目になるかが分かれば取得できます。
本日アップロードした,ガイドラインツールでは,最初のハイフォンの前まで文字を
入力させ,それが,リスト内の何番目とマッチしているかでインデックスを取得して
います。
その他
tell master document 1 〜 end tell内で,ドキュメントの表示サイズを変更しても
変わりません。ご注意ください。
GGC00677 [,た] 鎌田 幸雄
03456/03456 GGC00677 [,た] QuarkXPressを操ろう(その25)
( 2) 96/07/06 17:28
単位の変換
月一連載の様相をしめしてきました,このQuarkXPressを操ろうです。
今回は知っていると便利なこと―単位の変換―です。
1:coerce 〜 to
例えば,ルーラがmmの時に
set PHmm to page Height は "297 mm" と値が入ります。pointに変換したい時には
set PHpt to PHmm as points と as〜を使用するのが通常です。でも,これを
set PHpt to coerce PHmm to points とも書けるのです。もっと正確には
set PHpt to coerce (PHmm as millimeters) to points となります。
as〜で変換できない場合しようします。
2:単位の種類
定数値としては,お馴染みですね
inches
picas
points
millimeters
centimeters
ciceros
percent
angle measurement
horizontal measurement
vertical measurement
リストとしては
fixed rectangle
measurements rectangle
inches rectangle
picas rectangle
points rectangle
millimeters rectangle
centimeters rectangle
ciceros rectangle
rectangleってなんじゃいと思われるでしょう。これは,次のようなときに使用できま
す
tell text box1
get bounds as points rectangle
end tell
これだと,{"0 mm","0 mm","100 mm","100
mm"}とルーラ単位で返ってくるものが
{"0 pt", "0 pt", "283.465 pt", "283.465
pt"}となります。
もうひとつリストとしては
fixed point
measurements point
inches point
picas point
points point
millimeters point
centimeters point
ciceros point
これは
tell document 1
get page rule origin as points point
end tell
で,{"0 mm","0 mm"}が{"0 pt","0 pt"}
となります。
以上 GGC00677 [,た] 鎌田 幸雄
03598/03598 GGC00677 [,た] QuarkXPressを操ろう(その26)
( 2) 96/08/02 12:27
今回も知っていると便利なことです。
フィルタ参照形式というのをご存じでしょうか?
フィルタ参照形式は,ある状態のオブジェクトを特定します。
(例)text box whose background color is red
(バックグラウンドカラーが赤のテキストボックス)
このように,プロパティがある状態にあるオブジェクトを特定します。
これを用いるとカーニング全解除も簡単にできます。
---カーニング全解除-------------------------------- Yukio kamata ------------
tell application "QuarkXPress3.3J"
tell document 1
tell current box
set every character's kern whose kern is not 0 to 0
end tell
end tell
end tell
-----------------------------------------------------------------------------
テキストボックスを選択してから実行して下さい。カーニングが 0 になっていない
文字を全て 0 にします。ボックス内の文字が多い場合,フリーズしたようになります
が,しばらく待てば完了します。最初は小さなテキストボックスで動作することをお
勧めします。
GGC00677 [,た] 鎌田 幸雄
03745/03745 GGC00677 [,た] RE:QuarkXPressを操ろう(その27)
( 2) 96/09/10 17:19 03744へのコメント
SIMPLEさん,はじめまして。[,た]です。
QuarkXPressを操ろうのネタとして使わせていただきます。まず,
グループ化の指定はできません。
QuarkXPressを操ろうで,できないこと述べていなかったようなので,
この場をお借りします。
[出来ないこと]
次のことはサポートしていません。ライブラリ,グループ,ユーザー
辞書,ハイフン例外,ボックス作成時のデフォルト値,カラーペアトラ
ッピング,ブレンド,アンカーボックス,ページセクション,ほとんど
のXTension。これには,EfiColor XTension,QuarkPrintも含まれます。
さらに,QuarkXPress3.3Jでは日本語組版の機能についてもサポートさ
れません。付属しているデジタルドキュメント,QXP3.3リリースノート
の4には次のように書かれています。
----------------------------------------------------------------
スクリプトは英語のダイアレクトのみ使用できます。以下の日本語
特有の機能に関しては今回のバージョンではサポートしていません。
縦組み
日本語環境設定(「編集」メニュー)
フォントセット(「編集」メニュー)
表示言語の切り換え(「編集」メニュー)
字送り(「スタイル」メニュー)
ルビ(「スタイル」メニュー)
縦組み中の文字回転(「スタイル」メニュー)
文字揃え(「スタイル」メニュー)
プリンタフォントの有無XTension
AppleScriptを使って2バイト文字の変更を行うことはお勧めしません。
AppleScript内で計測単位を指定する際には,常に1バイトの欧文キャラ
クタ(mm,ptなど)を使用してください。
-----------------------------------------------------------------
具体的には,縦組みのテキストボックスは作れません。右綴じ見開き
ドキュメントのページの順番は,左から右に,つまり左綴じドキュメン
トと同じ様に順序付けられます。(P DTP 8月号から抜粋)
-----------------------------------------------------------------
グループ化して,一つのオブジェクトとしては扱えないのですが,
こういうやり方はいかがでしょうか?
+----+ +----+
|雪印| |森永|
+----------+ +---------------+
|ネオソフト| |アイスクリーム |
+-+--------+ +------+--------+
|298円| |100円|
+--------+ +--------+
↑ ↑
(1)テキストボックスに名前A1,A2,A3と付ける
(2)テキストボックスに名前B1,B2,B3と付ける
(3)テキストボックスの名前がAで始まるオブジェクトに対して
命令する。
具体的には,
tell application "QuarkXPress3.3J"
tell document 1
tell page 1
tell text box 1
set name to "A1"
end tell
tell text box 2
set name to "A2"
end tell
tell text box 3
set name to "A3"
end tell
tell text box 4
set name to "B1"
end tell
tell text box 5
set name to "B2"
end tell
tell text box 6
set name to "B3"
end tell
tell (text boxes whose name begins with "A")
set color to "青"
end tell
end tell
end tell
end tell
これで,テキストボックスの名前がAで始まるボックスのカラーを
青に変えます。
ボックスの移動となると,XYの移動量をboundsにあたえればいいわけです。
多少複雑になりそうですが,できると思いますよ。
GGC00677 [,た] 鎌田 幸雄