第6話…… LibreOfficeと格闘する―ふりがな変換マクロ奮闘記

―― 無料ソフトの可能性と限界を、マクロを通して描く。


【序章】Word時代からの脱却


ふと思う。Microsoft Office、高すぎる。


昔、僕はWordを使って原稿を書いていた。ふりがな機能も便利で、それなりに重宝していたのだが、最近の値上げにはさすがにうんざりしてしまった。


もちろん、代わりになるものは世の中にたくさんある。中でも目を引いたのが「LibreOffice」だった。無料で、オープンソースで、Wordと互換性も高い。しかも、Pythonでマクロが組めるらしい。


これは……面白そうだ。


【挑戦】LibreOfficeでマクロを組む


試したのは、かつて自分で作った「青空文庫形式のふりがなをWord形式のルビに変換するマクロ」だ。例によって、青空文庫形式はこんな具合である。


https://kakuyomu.jp/users/happy-isl/news/16818622173406862943


WordではVBAで変換マクロを組んでいたが、LibreOfficeではPythonで組む必要がある。全然違う環境に最初は戸惑ったが、やってみると案外スムーズに動いた。少なくとも、マクロとして動作するところまでは。


【問題】中央揃えに失敗するルビ表示


ところが、ここで思わぬ落とし穴があった。


ルビが中央に寄らないのである。


Wordであれば「中央揃え」は標準機能。VBAで `PhoneticGuide` を使えばバッチリきれいに中央に寄る。しかしLibreOfficeのPythonマクロでは、たとえ `RubyAdjustment.CENTER` を指定しても、ルビは左に寄ってしまうのだ。


ネットを調べても解決策は見つからない。バグか、仕様か。いずれにしても、これは美しくない。


【工夫】全角スペースで見た目補正


僕は考えた。そして、力技で解決することにした。


中央に寄らないなら、寄っているように“見せれば”いい。

つまり、ルビの文字列の前後に全角スペースを足して、見た目だけ中央揃えっぽくするというトリックである。


たとえば、


 チャイ・フェン


というルビに対し、


  全角スペース+チャイ・フェン+全角スペース


という具合に加工する。すると、LibreOffice上でもちゃんと中央に見える。


これで問題は解決した。見た目だけでいい。読者に伝わればそれでいい。


LibreOffice用のマクロ(青空文庫形式の文字をLibreOfficeのルビに変換する)のアドレスです。


https://kakuyomu.jp/users/happy-isl/news/16818622172227289848



【結章】道具が不完全でも、工夫は無限


完成したマクロには、親文字とルビの長さを比較し、前後に適切なスペースを自動で追加する処理を加えた。マクロの名前は `aozora_ruby_centered.py`。これで今後も安心して使える。


何よりも嬉しいのは、無料でここまでできるということだ。


LibreOfficeはまだ完璧ではないが、ユーザーが工夫する余地があるという点では、むしろ可能性を感じている。今回のように、マクロで機能不足を補うことができるのだから。


本日の結論:


> 道具が不完全でも、使い手が工夫すればいい。


LibreOfficeは、そういう遊び心をくすぐってくれる存在だ。


「Word用のマクロ(青空文庫形式の文字をWordのルビに変換する)」も念の為に貼っておきます。


近況ノート「Word用のマクロ(青空文庫形式の文字をWordのルビに変換する)」のアドレスです。


https://kakuyomu.jp/users/happy-isl/news/16818622172226939925

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る