Indexへ
(15773)// 【15774】→(15776) ------------------------ 【タイトル】整列
【記事番号】 15774 (*)
【 日時 】06/09/27 17:45
【 発言者 】スミス
いろんな大きさ・位置の四角形をあるライン上にいっぺんに整列させたりできるのでしょうか。ワードなどで文書を右に寄せたり左によせたりするイメージなんですが…
それとJWCのときに文字の位置整理であるライン上に真ん中にそろえたり右下にそろえたりできたと思うのですがJWWでやり方がわかりません。
申し訳ございませんがご指導よろしくお願いします。
Indexへ
(15774)← 【15776】→(15802) ------------------------ 【タイトル】Re(1):整列
【記事番号】 15776 (15774 )
【 日時 】06/09/27 17:59
【 発言者 】おっとー otto1015@hotmail.co.jp
▼スミスさん:
>いろんな大きさ・位置の四角形をあるライン上にいっぺんに整列させたりできるのでしょうか。ワードなどで文書を右に寄せたり左によせたりするイメージなんですが…
>それとJWCのときに文字の位置整理であるライン上に真ん中にそろえたり右下にそろえたりできたと思うのですがJWWでやり方がわかりません。
>申し訳ございませんがご指導よろしくお願いします。
こんにちは
範囲>文字を選択>範囲コマンド内の文字位置・集計で、指定位置を右クリックでスナップ
Indexへ
(15776)← 【15802】→(15804) ------------------------ 【タイトル】お礼申し上げます
【記事番号】 15802 (15776 )
【 日時 】06/09/28 17:18
【 発言者 】スミス
文字位置解決しました。大変ありがとうございました。
Indexへ
(15802)← 【15804】→(15788) ------------------------ 【タイトル】Re(1):お礼申し上げます
【記事番号】 15804 (15802 )
【 日時 】06/09/28 17:52
【 発言者 】おっとー otto1015@hotmail.co.jp
▼スミスさん:
>文字位置解決しました。大変ありがとうございました。
下記サイト、他にも文字操作書かれたHPですよ。勉強させてもらっています。
(作者に感謝)
http://www.yakushima-tonbo.com/jww_manual/answer/char.html
Indexへ
(15804)← 【15788】→(15803) ------------------------ 【タイトル】Re(1):整列
【記事番号】 15788 (15774 )
【 日時 】06/09/28 09:21
【 発言者 】コジマ
▼スミスさん:
>いろんな大きさ・位置の四角形をあるライン上にいっぺんに整列させたりできるのでしょうか。ワードなどで文書を右に寄せたり左によせたりするイメージなんですが…
正確なイメージがわかりませんが、いずれにしろ、標準機能ではできません。
四角形を文字位置整理のように扱うのであれば、外部変形で可能です。
スミスさんのスキルがどの程度なのか分かりませんが、初心者レベルでは敷居が高いです。
チャレジしてみたいと思われたら、以下の文をnotepad(メモ帳)にコピペして、指定されたファイル名で保存してください。
尚、この外部変形の実行には mswin32 版 Ruby のインストールが必要です。
以下で入手できます。
http://www61.tok2.com/home2/gravelroad/tips/inst_msw.html
◎バッチファイル(ファイル名 四角整理.bat)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。
@REM 四角形(角度無)の整列
@echo off
REM #jww
REM #cd
REM #zz
REM #zw
REM #ht10
REM #ht30
REM #ht40
REM #c間隔 無指定:Enter /_/a
REM #k並び|1)縦1列(L)|2)横1列(R)|/_/b
REM #k基点|1)左下(L)|2)中下(R)|3)右下|4)左中|5)中中|6)右中|7)左上|8)中上|9)右上|/_/c
REM #h1
REM #hc角度付きの四角形には対応していません
REM #1
REM #hp
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 四角整理.rb temp.txt %1 %2 %3 > jwc_temp.txt
pause
◎スクリプトファイル(ファイル名 四角整理.rb)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。
include Math
$kankaku=0
while ARGV.size>1
case argument=ARGV.pop
when /\/a/
$kankaku=argument[2..-1].to_f
when /\/b/
$iti=argument[2..-1]
when /\/c/
$kiten=argument[2..-1]
end
end
def main
$sen=[]
while ARGF.gets
xy =split
if xy[0]=~/^hp1/
hpx=xy[1].to_f
hpy=xy[2].to_f
end
if xy[0]=~/^\d/
xy.collect!{|l|l.to_f}
$sen< end
end
zukei_a=[]
n=0
while a=$sen.shift
renzoku=[]
begin
renzoku< b=$sen.find{|item2|[(item2[0]),(item2[1])]==[(a[2]),(a[3])] or [(item2[2]),(item2[3])]==[(a[2]),(a[3])]}
if b
if (renzoku[-1][2])==(b[0]) && (renzoku[-1][3])==(b[1])
a=[b[0],b[1],b[2],b[3]]
elsif (renzoku[-1][2])==(b[2]) && (renzoku[-1][3])==(b[3])
a=[b[2],b[3],b[0],b[1]]
end
$sen.delete_if{|item2|item2==b}
end
end while(b)
if renzoku.size==4 && (renzoku[-1][2])==(renzoku[0][0]) && (renzoku[-1][3])==(renzoku[0][1])
n+=1
x1=renzoku[3][0]-renzoku[1][0]
y1=renzoku[3][1]-renzoku[1][1]
l1=sqrt(x1**2+y1**2)
x2=renzoku[2][0]-renzoku[0][0]
y2=renzoku[2][1]-renzoku[0][1]
l2=sqrt(x2**2+y2**2)
arg=atan2(y2,x2)
x3=renzoku[0][0]+l2/2*cos(arg)
y3=renzoku[0][1]+l2/2*sin(arg)
x=[];y=[]
renzoku.each{|a,b,c,d|x< if $kiten=="1"
renzoku<<[x.min,y.min]
elsif $kiten=="2"
renzoku<<[x3,y.min]
elsif $kiten=="3"
renzoku<<[x.max,y.min]
elsif $kiten=="4"
renzoku<<[x.min,y3]
elsif $kiten=="5"
renzoku<<[x3,y3]
elsif $kiten=="6"
renzoku<<[x.max,y3]
elsif $kiten=="7"
renzoku<<[x.min,y.max]
elsif $kiten=="8"
renzoku<<[x3,y.max]
elsif $kiten=="9"
renzoku<<[x.max,y.max]
end
zukei_a< end
end
zukei_a.sort!{|a,b|b[4][1]<=>a[4][1]} if $iti=="1"
zukei_a.sort!{|a,b|a[4][0]<=>b[4][0]} if $iti=="2"
puts"hd"
open("temp.txt","r"){|f|
while line=f.gets
xyt =split
if xyt[0]=~/^hq/
elsif xyt[0]=~/^[0-9]/ or xyt[0]=~/^-/
xyt.collect!{|item|item.to_f}
n=0
zukei_a.each_with_index{|item,i|
item[0..-2].each{|item2|
if item2[0]==xyt[0] && item2[1]==xyt[1] && item2[2]==xyt[2] && item2[3]==xyt[3] or item2[0]==xyt[2] && item2[1]==xyt[3] && item2[2]==xyt[0] && item2[3]==xyt[1]
if $iti=="1"
dx=hpx-item[-1][0]
xyt[0] += dx
xyt[2] += dx
if $kankaku>0
dy=hpy-item[-1][1]
xyt[1] += dy-$kankaku*i
xyt[3] += dy-$kankaku*i
end
else
dy=hpy-item[-1][1]
xyt[1] += dy
xyt[3] += dy
if $kankaku>0
dy=hpx-item[-1][0]
xyt[0] += dy+$kankaku*i
xyt[2] += dy+$kankaku*i
end
end
puts xyt.join("\s")
n += 1
end
}
}
print line if n==0
else
print line
end
end
}
if zukei_a.size==0
printf("h#水平の四角形がありません\n")
end
end
main()
Indexへ
(15788)← 【15803】//(15777) ------------------------ 【タイトル】お礼申し上げます2
【記事番号】 15803 (15788 )
【 日時 】06/09/28 17:28
【 発言者 】スミス
非常に敷居が高いことがわかりました。教えてくださってありがとう。
私ではすぐにできそうではないので、
仕事が暇になったら挑戦してみようと思います。スキルUPのためにも!
そのときまたお世話になるかも…すいませんがよろしくお願いします。