レポート

LibreOffice CJK問題の第一人者が語る,これまでとこれから 〜LibreOffice Asia Conference 2019 Tokyo基調講演「LibreOffice CJK Bugs, Fixes, and Stories.」レポート〜

この記事を読むのに必要な時間:およそ 3.5 分

CJKの問題から活動エリアを広げて,継続的な貢献

ついでHung氏は,氏がいままで実施してきたさまざまな貢献のなかから,いくつかをピックアップして詳細を説明しました。最初は主にWriterのCJK問題に取り組みましたが,近年はCJK以外の機能,またはImpressやCalcといったコンポーネントにも活動のエリアを広げています。

Hung氏の活動の記録。発表スライドより抜粋(by Mark Hung, CC BY-SA 3.0)

画像

例えば,繁体字における句読点は,日本語とは異なり中央に打たれます。そのため,和文の割付ルールをそのまま適用すると繁体字ではレイアウトがおかしくなってしまいます。歴史的にオフィスソフトにとっては日本市場が重要だったためでしょう,多くのCJK機能は日本語前提になってしまっていたとのこと。繁体字の場合はそのルールを適用しないようにするだけで,いくつかの問題を解決できたのだそうです。

LibreOffice Writerで文字の言語設定を変えると句読点が変わる(作成 おがさわらなるひこ)

画像

テキストのマス目配置は非常に多くの問題があり,とても実用に耐えられませんでした。そこで2017年にまとめて解析し,可能なかぎりの修正を行いました※4⁠。

※4
なお,このときの取り組みについては,LibreOfficeの年次カンファレンスLibreOffice Conference 2017で発表されていますので,興味のある方は資料(PDF)をご覧ください。

Hung氏が解決したマス目配置モードの問題のうちの一つ(撮影:LibreOffice日本語チーム 近藤昌貴)

画像

また異体字セレクタがついた文字の後ろでバックスペースを押下すると,異体字セレクタだけが消えてしまう問題は,LibreOffice日本語チームの榎真治氏が2017年のLibreOffice Conferenceで報告した不具合を元にHung氏が解決したものです。

榎氏による発表資料State of CJK issues of LibreOfficeより ⁠by Shinji Enoki, CC BY-SA 4.0)

画像

ルビは,日本語では広く用いられますが,繁体字でも国語教育などで利用されるのだそうです。2015年にDOCXからのインポート問題を解決しました。さらには2018年には,台湾 繁体字の横書き時に必要とされるルビのレイアウトに対応しました。不具合解消ではなくあらたなレイアウト処理,UIの追加,ODF仕様への追加も伴う本格的な機能追加であり,Hung氏にとっても大きなチャレンジだったとのことです※5⁠。氏の娘さんが小学校に上がって文字を学ぶ前に完成させて,LibreOfficeを使えるようにしたかった(が,間に合わなかった)という微笑ましいエピソードで会場の笑いも誘っていました。

※5
この内容の技術的詳細についてはLibreOffice Conference 2018のライトニングトークで発表されました。資料(PDF)のp.66-71をご覧ください。

台湾の繁体字では横書きでも発音記号を文字の右側に縦に記載する。発表スライドより抜粋(by Mark Hung, CC BY-SA 3.0)

画像

CJK問題についてのこれから

Hung氏の活動によりLibreOfficeは,CJKの扱いに関して堅牢になり,また機能面でも少しずつですが進化してきています。しかしながら,まだまだやるべきことがある,とHung氏は言います。

LibreOfficeの不具合を管理するBugzillaには,不具合をグルーピングするための仕組みMETA Bugというものが存在します。CJKに関するバグを登録したCJK META Bugには依然として90個近くの未解決な不具合があります。

CJK META Bugには,発表時点で90近くの未解決課題がある。発表スライドより抜粋(by Mark Hung, CC BY-SA 3.0)

画像

Hung氏が取り組んだ課題の一つはCalcのルビ対応。これについては,UI周りはWriterから流用することができるものの,内部表現やExcelからのインポート処理,当然テキストレイアウト処理,そしてODFへの仕様追加など,やることが多く,現在は中断中とのことでした。なお,Hung氏がこの問題に取り組むことを決めたのは,どうやら筆者が「日本ではExcelが愛されていて,たくさんのExcel文書が存在する」と言ったからだそうです。

その他,ルビ,均等割付,縦書きといった機能にもまだまだ欲しい機能や不具合が多くあります。特に縦書きは専用のMETA Bugに40個ほど不具合が登録されていて,なかなか安定しない状態です。現在,LibreOfficeはテキストレンダリングエンジンにHarfbuzzを用いていますが,不具合を直してもHarfBuzzのバージョンが上がると壊れる,ということの繰り返しが続いています。それでもWindowsとLinuxはそこそこですが,macOSについてはHung氏がMacを保有していないためお手上げで,より多くの開発者の手助けが必要だと言っていました。

最後に,Hung氏は「どうか私たちに加わってほしい,ついては翌日(5月26日)のCJK HackFest(CJKの問題を一緒に解決しようという集まり)に参加してほしい」と呼びかけて講演を終えました。

まとめ

Mark Hung氏は,控えめであまり強いメッセージを発しないタイプですが,それでも氏が活動してきた内容により,LibreOfficeのCJK環境が改善されてきたことに,語り口が淡々としているからこその凄みというものを感じました。このような地道な努力に,またそれを東京という場所で多くの人に説明してくれたことに対しても,日本のコミュニティから最大限の感謝を送りたいと思います。ありがとう,Mark!

Hung氏が何度か述べていたように,CJK機能はやはり当事者である我々が自分たちで問題を解決するしかないところがあり,今のところ,この領域で継続的に関わっているのが氏ひとりしかいない状況は改善しなければいけないと痛感しました。

そこで残念だったのが,せっかくアジア地区で開発を行っているメンバーが複数いるという絶好の機会であったのに,翌日のCJK HackFestにあまり人が集められなかったことです。今回のAsia Conferenceを機会に,アジア圏の,LibreOfficeのCJKに関心を持つ開発者を戦略的に増やしたいと感じますし,筆者自身もなにか挑戦する機会を,熱が冷めないうちに改めて作りたいと思います。そのときは,ぜひ多くの方に集まっていただけたら幸いです。

また,今回ご報告した基調講演以外にもLibreOffice Asia Conference 2019は,初回にふさわしく素晴らしいトークが多く,内容も開発,ODF標準化,移行,コミュニティビルディングと多岐に渡っていました。このような素晴らしいイベントを開催できたことを嬉しく思うとともに,ゲスト・登壇者・スポンサー・スタッフ,そしてもちろん参加者のみなさまにお礼を申し上げます。ありがとうございました。

現在,スライドとビデオの公開に向けて準備を進めていますので,公開の暁にはぜひ楽しんでいただけたらと思います。

著者プロフィール

おがさわらなるひこ

LibreOffice日本語チーム所属。主な担当はUI翻訳や東京圏でのイベント企画など。本業は(株)SHIFT所属のソフトウェアテスト自動化アーキテクト。自由なデスクトップとしてUbuntuを愛用。

Twitter@naru0ga

バックナンバー

2019年

バックナンバー一覧