Skip to content

Commit

Permalink
[Add] コロンの移動追加
Browse files Browse the repository at this point in the history
  • Loading branch information
omonomo committed Sep 22, 2023
1 parent 4097c05 commit 5cfcb70
Showing 1 changed file with 60 additions and 33 deletions.
93 changes: 60 additions & 33 deletions calt_table_maker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ dict="dict" # 略字をグリフ名に変換する辞書

# lookup の IndexNo. (GSUBフィーチャを変更すると変わる可能性あり)
lookupIndex_calt="17" # caltフィーチャ条件の先頭テーブル
lookupIndexR=`expr ${lookupIndex_calt} + 1` # 変換先(右に移動させたグリフ)
lookupIndexL=`expr ${lookupIndex_calt} + 2` # 変換先(左に移動させたグリフ)
lookupIndexC=`expr ${lookupIndex_calt} + 3` # 変換先(移動させたグリフを元に戻す)
lookupIndexU=`expr ${lookupIndex_calt} + 1` # 変換先(上に移動させたグリフ)
lookupIndexR=`expr ${lookupIndex_calt} + 2` # 変換先(右に移動させたグリフ)
lookupIndexL=`expr ${lookupIndex_calt} + 3` # 変換先(左に移動させたグリフ)
lookupIndexC=`expr ${lookupIndex_calt} + 4` # 変換先(移動させたグリフを元に戻す)

leaving_tmp_flag="false" # 一時ファイル残す

Expand Down Expand Up @@ -162,32 +163,49 @@ for S in ${smallM[@]}; do
done

for S in ${smallR[@]}; do
smallMR+=("${S}R") # 小文字右移動後
smallMR+=("${S}R") # 引き寄せる背の高い小文字右移動後
done

for S in ${capital[@]}; do
capitalMC+=("${S}C") # 大文字
done

# グリフ名変換用辞書作成 ========================================
# グリフ名変換用辞書作成 (グリフのIDS順に並べること) ========================================
number=(0 1 2 3 4 5 6 7 8 9) # 略号
number_name=("zero" "one" "two" "three" "four" "five" "six" "seven" "eight" "nine") # 実際の名前

colon=":"
colon_name="colon"

# グリフ略号 (AC BC..yC zC AL BL..yL zL AR BR..yR zR 左に移動したグリフ, 右に移動したグリフ, 通常のグリフ)
# グリフ名 (A B..y z glyphXXXXX..glyphYYYYY)
key=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \
a b c d e f g h i j k l m n o p q r s t u v w x y z) # 略号の始めの文字 (グリフのIDS順に並べること)
normal=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \
a b c d e f g h i j k l m n o p q r s t u v w x y z) # 移動していない時のグリフ名
latin=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \
a b c d e f g h i j k l m n o p q r s t u v w x y z) # 略号の始めの文字

i=0
for j in ${!number[@]} # 数字
do
echo "$i ${number[j]} ${number_name[j]}" >> "${dict}.txt"
i=`expr ${i} + 1`
done

echo "$i ${colon} ${colon_name}" >> "${dict}.txt"
i=`expr ${i} + 1`

for i in ${!key[@]} # 移動していないグリフ
for S in ${latin[@]} # 移動していないアルファベット
do
echo "$i ${key[$i]}C ${normal[$i]}" >> "${dict}.txt"
echo "$i ${S}C ${S}" >> "${dict}.txt"
i=`expr ${i} + 1`
done

i=${glyphNo}
for S in ${key[@]} # 左に移動したグリフ
for S in ${latin[@]} # 左に移動したアルファベット
do
echo "$i ${S}L glyph${i}" >> "${dict}.txt"
i=`expr ${i} + 1`
done
for S in ${key[@]} # 右に移動したグリフ

for S in ${latin[@]} # 右に移動したアルファベット
do
echo "$i ${S}R glyph${i}" >> "${dict}.txt"
i=`expr ${i} + 1`
Expand Down Expand Up @@ -281,6 +299,15 @@ echo "<LookupFlag value=\"0\"/>" >> "${caltList}.txt"

index="0"

# 左右を見て上に移動させる通常処理 ----------------------------------------

# 左右を見る 両方が数字の場合 コロン 上に移動する
backtrack=("${number[@]}")
input=("${colon[@]}")
lookAhead=("${number[@]}")
chain_context "${index}" "${backtrack[*]}" "${input[*]}" "${lookAhead[*]}" "${lookupIndexU}"
index=`expr ${index} + 1`

# 左を見て左に移動させない例外処理 ----------------------------------------

# 左が小文字の場合 大文字 左に移動しない
Expand Down Expand Up @@ -329,6 +356,26 @@ lookAhead=("${gravityWC[@]}")
chain_context "${index}" "${backtrack[*]}" "${input[*]}" "${lookAhead[*]}" "${lookupIndexC}"
index=`expr ${index} + 1`

# 左を見て左に移動させる例外処理 (同じ文字は等間隔にする) ----------------------------------------

# 左を見る 幅広な文字 左に移動
for i in ${!gravityW[@]}
do
backtrack="${gravityWL[$i]}"
input="${gravityWC[$i]}"
chain_context "${index}" "${backtrack}" "${input}" "" "${lookupIndexL}"
index=`expr ${index} + 1`
done

# 左を見る 均等な文字 左に移動
for i in ${!gravityE[@]}
do
backtrack="${gravityEL[$i]}"
input="${gravityEC[$i]}"
chain_context "${index}" "${backtrack}" "${input}" "" "${lookupIndexL}"
index=`expr ${index} + 1`
done

# 左を見て右に移動させる例外処理 (同じ文字は等間隔にする) ----------------------------------------

# 左を見る 中寄りの文字 右に移動
Expand Down Expand Up @@ -436,26 +483,6 @@ lookAhead=("${gravityLC[@]}" "${gravityRC[@]}" "${gravityEC[@]}" "${gravityMC[@]
chain_context "${index}" "${backtrack[*]}" "${input[*]}" "${lookAhead[*]}" "${lookupIndexC}"
index=`expr ${index} + 1`

# 左を見て左に移動させる例外処理 (同じ文字は等間隔にする) ----------------------------------------

# 左を見る 幅広な文字 左に移動
for i in ${!gravityW[@]}
do
backtrack="${gravityWL[$i]}"
input="${gravityWC[$i]}"
chain_context "${index}" "${backtrack}" "${input}" "" "${lookupIndexL}"
index=`expr ${index} + 1`
done

# 左を見る 均等な文字 左に移動
for i in ${!gravityE[@]}
do
backtrack="${gravityEL[$i]}"
input="${gravityEC[$i]}"
chain_context "${index}" "${backtrack}" "${input}" "" "${lookupIndexL}"
index=`expr ${index} + 1`
done

# 左を見て左に移動させる通常処理 ----------------------------------------

# 左を見る 左寄りの文字、均等な文字 左に移動
Expand Down

0 comments on commit 5cfcb70

Please sign in to comment.