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のためにも!
そのときまたお世話になるかも…すいませんがよろしくお願いします。