達而録

ある中国古典研究者が忘れたくないことを書くブログ。毎週火曜日更新。

Visual Studio Codeでの旧字体・新字体変換

 Visual Studio Codeを使って論文を書くに当たって、私の分野の場合には、「旧字体新字体」の変換ができると非常に有難い。pythonで開発された「kyujipy」をVS codeに組み込むことで、これを実現することができる。

 pythonとkyujipyをセットアップすれば準備完了。以下のコードを実行すると、あるテキストファイルの文字列を旧漢字に変換し、別のファイルとして出力することができる。

from kyujipy import KyujitaiConverter
converter = KyujitaiConverter()
in_file = "(入力ファイルへのパス)"
out_file = "(出力ファイルへのパス)"
try:
    file = open(in_file, encoding='utf-8')
    text = file.read()
    text_kyu = converter.shinjitai_to_kyujitai(text)
    file2 = open(out_file, 'w', encoding='utf-8')
    file2.write(text_kyu)
except Exception as e:
    print(e)
finally:
    file.close()
    file2.close()

 なお、このコードは、pythonを学んで一日目の私が書いたへたくそなものなので、多分もっといい方法があると思う。あと、Markdown形式のファイルの「引用文」(「>」で始まる行)だけに対して旧漢字変換を掛けて、他の文はそのままにする、という処理も多分可能だと思うんだけど、まだ勉強中で書き方がよく分からない。残念。 

 「旧字体新字体」の変換サービスやソフトは色々あるが、この方法のよいところは、どの字を変換するか自分でカスタマイズできるところにある。kyujipyのdataファイルの中のコードを自分で書き換えると、どの字を変換するか調整することができる。また、熟語の組み合わせ次第で変換する、みたいな処理も可能だ*1
(棋客)

*1:追加メモ。私は基本UD体を使って論文を印刷したいのだけど、一部の旧字体にはUD体が存在しない。純粋に美観の問題から、以下の変換はオフにしている。["説", "說"], ["歳", "歲"], ["内", "內"], ["彦", "彥"], ["連", "連"], ["廉", "廉"], ["旅", "旅"], ["税", "稅"], ["絶", "絕"], ["尚", "尙"], ["産", "產"], ["告", "吿"], ["戸", "戶"], ["呉", "吳"], ["娯", "娛"], ["契", "契"], ["閲", "閱"], ["脱", "脫"], ["鋭", "銳"], ["悦", "悅"]