ひらがな変換

作成理由

  • 半角全角が頻繁に混じる文章を書く際に切り替えが面倒に感じていた。
  • 半角ローマ字で入力したのをあとからひらがな(カタカナ)に変換できないかと思っていたところ ruby のライブラリに romkan なるものを発見。
  • すでにカタカナからひらがなに、あるいはひらがなをカタカナに変換するマクロは作っていたので、これを半角ローマ字入力にも対応できるように拡張してみた。

前準備

  • rubyをインストール
  • TEXCELL Ruby用クリップボードライブラリをインストール
    • clipboard_v100.7z をダウンロード
    • lhaplusなどで解凍
    • できたclipboard.rbをC:\Ruby\lib\ruby\site_ruby\2.X.Xとかにコピー
  • romkan ライブラリをインストール
  • コマンドラインから”gem install romkan”
  • マクロの保存
  • マクロをコピペして名前をつけて保存(文字コードはUTF-8、BOM付き)
//ひらがな変換・カタカナ変換

disabledraw;begingroupundo;
if(selecting){}else{beginsel;wordleft;}
#px=seltopx;#py=seltopy;#dx=selendx;#dy=selendy;
copy2;#fg=getclipboardinfo(1);
//ひらがな変換
runsync2 "rubyw -x "+currentmacrofilename+" h";
//カタカナ変換
//runsync2 "rubyw -x "+currentmacrofilename+" k";
beginclipboardread;
if (#fg){delete;pasterect;beginrect;moveto #dx,#dy;enabledraw;}
else{delete;paste;}
enabledraw;endgroupundo;

/*
#/
#! ruby

# encoding: utf-8
Encoding.default_external = 'UTF-8'

require 'clipboard'
require 'romkan'

$stdout=open("tmp99m.txt","w")
$stderr=open("tmp_errm.txt","w")

cbd = ClipBoard.new(__ENCODING__)
st=cbd.getText

opt=ARGV[0]
arg=ARGV[1].to_i

if /^h/=~opt #ひらがな
  st=st.to_kana.tr("ァ-ン","ぁ-ん")
elsif /^k/=~opt #カタカナ
  st=st.to_kana.tr("ぁ-ん","ァ-ン")
end

cbd.setText(st)

__END__
*/

使い方のポイント

  • 文字を選択した場合は選択した文字を変換、してない場合は前の単語を変換する。
  • マクロの ruby 部分のコメント行の切り替えでカタカナ変換にできる。
  • alt+キー,ctrl+キーのようにキーボードに割り当てて使用するのを推奨。
  • shiftキーを押しながら実行すると変換した文字を選択。
  • その場合は変換キーと組み合わせることで漢字に変換できる。
  • 矩形選択にもそれっぽく対応。

ちょっと一言

  • 矩形選択時の処理をどうしたものか悩んだけど一度 tmpファイルに選択内容を書き出して加工することで解決。

コメント