第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
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます