\(\LaTeX\)による詰棋書の組版(9) 柿木ファイルから作意手順を読み込む

今回は柿木ファイルからAWKを使って作意手順を読み込みます。

いろいろいぢっているうちにごちゃごちゃしてきたように見えるかもしれないので、ちょっと解説します。

まずは【柿木2つみきv2.awk】を保存してください。
【実行.bat】も

gawk -f 柿木2つみきv2.awk *.ki2 >>つみき形式v2.txt

に直して保存してください。

変更したのは次の部分です。

図面部分をコメントで追加

編集作業する際に、図面のイメージも有った方が便利かと思いました。

/\|/{
  m++
  LINE[m]=$0
}

このように図面の部分を配列LINE[m]に読み込んでおいて、

/先手の持駒:/{
  printf("% ----------------------------\n")
  for(i=1;i<=9;i++){print "%",LINE[i]}
  printf("% ----------------------------\n\n")
}

ここで出力することにしました。
%は\(\LaTeX\)のコメントを表します。

作意手順を拾い出す

次に柿木ファイルから作意手順を拾いますが、ki2でも半角と全角で形式が異なります。
今回は半角を想定しています。

柿木将棋の【各種設定】⇒【棋譜】⇒【棋譜(KI2)形式】を【半角】にしてください。

次に【ツール】⇒【棋譜情報の一括設定】

【参照】で【フォルダ】を決定し、【入力】、【出力】ともに「KI2」、【棋譜ファイルを書き換える】のチェックを入れて【OK】で実行してください。

次に【柿木2つみきv2.awk】の説明を続けます。
作意手順は数行にわたって記述されているので、まずはそれらを一つにまとめます。

/▲/{
  SAKUI=SAKUI $0
}

この部分でSAKUIのなかに全部つながれて収められます。

/まで/{
  gsub(/まで/,"")
  gsub(/手詰/,"")
  TESUU=$0
  sub(/▲/,"",SAKUI)
  gsub(/△/,"▲",SAKUI)
  gsub(/ /,"",SAKUI)
  t=split(SAKUI,TEJUN,"▲")
  for(k=1;k<=t;k++){
    if(k==t){
      printf("\\手順{%d}{%s} まで\\mbox{%d手詰}}\n\n",k,TEJUN[k],TESUU)
      printf("% ----------------------------\n\n\n\n")
      continue
    }
    if(k==1){
      printf("\\作意{\\手順{%d}{%s}, ",k,TEJUN[k])
      continue
    }
    printf("\\手順{%d}{%s}, ",k,TEJUN[k])
    if(k%4==0) printf("\n      ")
  }
}

それを単純に\作意{SAKUI}という形で出力してもいいのですが(つみき書店の本は、その形で作られています)、今回は何手目の指手かすぐにわかるように、各指手を\手順{n手目}{nn駒}の形に変換しようと思います。

そのためにsplitという命令を使い、SAKUIをTEJUN[]に分割します。
区切り文字を▲にするために、先頭の▲を削除したあと△を▲に置換しています。

あとはスクリプトを読めばお解りでしょう。

さて、これで実行すれば次のような出力が得られます。

次回は、解説も入力して、組版したいと思います。
またファイルもかなり大きくなってきたので、そろそろ分割して管理することにします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください