2013年04月18日

LibreOfficeで数式を組む

先日から子ども向けの数学の問題をつくっているのだけれど、これが案外と厄介だ。一つ前のエントリでフォントの問題を書いたが、実はフォントだけではない。もともとワープロは数式を組むようにはできていないので、きれいに組み上げることがなかなかできない。たとえば分数なんかは、OpenOfficeそのままでやろうとおもったら図形文字を利用するしかないだろう。文字枠の中に数字を入れて2行にし、上の行の文字に下線を修飾しておいてからその行間を75%程度にすればそれっぽくなる。これを必要な場所に持っていけば、なんとかゴマカシがきく。けれど、しょせんごまかしでしかない。何箇所もそういうごまかしをしていると、手間がかかる上に仕上がりがだんだんと醜くなる。これはよろしくない。

同じワープロソフトでもMS Wordには数式のエディタがある。LibreOfficeにも数式エディタはあるのだけれど、これは出力がPDFで、ワープロに数式を埋め込むことができない。かといって数式エディタをワープロとして使うには、文字の書式指定の能力が不足する。いまひとつ、役に立たない。

なにかいい方法はないかとリポジトリを調べていたら、Abi Wordに数式のプラグインがあることがわかった。Abi WordはGnomeの公式ワープロソフトで、LibreOfficeに比べれば知名度はいまひとつだけれど、歴史のあるワープロだ。私もUbuntu移行直後には何度か試用した。ただ、LibreOffice(当時はOpenOffice)の完成度がどんどん上がってきたので、その後、特に注目もしないできた。だが、数式がきれいに組めるのなら、使ってもいいかもしれない。

インストールしてみると、たしかにメニューの「自動テキスト」のEquationから数式を組むことができる。ただ、このダイアログに出てくるボックスには、Latexのフォーマットで数式を流しこむ。つまり、数式の処理自体はLatexでやってしまい、それを画像としてワープロ上に表示してしまえということらしい。

ちなみに、Latexは私なんかが解説を加えるまでもない伝統的な組版に特化したマークアップ言語で、理科系の学生の中にはこれでひいひいいわされる人びとが毎年一定数発生する、というものらしい。Latexの基礎となるTexについて私が初めて聞いたのはもう20年も前になるから、相当古いものであるのはまちがいない。組版技術としては相当のものらしいが、ページレイアウトの利便性ではWYSIWYGのDTPソフトにはかなわず、理数系の学術分野以外では常にマイナーな位置に置かれてきた。だから私も、使ったことがない。
言い方を換えれば、Latexがわかるぐらいなら、最初からLatexで数学のテキストをつくっているわけで、わからないからワープロソフトで組もうとして苦労している、といっていい。とはいえ、いまさらLatexを勉強するのも鬱陶しい。マークアップ言語でタグをゴリゴリ書いていくのは、たとえそれがHTMLでも勘弁願いたい世界だ。ちょっとなあと思う。

けれど、試しにごくかんたんな数式をそのままボックスに入れてみると、思いの外きれいな結果が得られた。ちょっと複雑なものに関しては特殊な記法があるようだが、これはWebを検索すればすぐに出てくる。やってみると、必要な分はどうにかなりそうだ。

ただし、Abi Wordは、やっぱりワープロとしてはLibreOfficeにかなわない。どうかなわないかというと、インライン変換ができない。ここにあるような方法をとればインライン変換もできるようになるらしいが、ここでふと気がついた。オープンソースな世界だから、Abi WordでできることはLibreOfficeでもできるように誰かががんばってくれているかもしれない。そこで調べてみると、TexMathsというプラグインを導入すれば、同様にLatex形式の数式をワープロ文書中に挿入できることがわかった。早速ダウンロードして適用。

ただし、そのままでは使えない。依存関係があって、Latexとdvipngというプログラムを予めシステムにインストールしておかなければならない。これはどちらもリポジトリにあるものそのままでOKなようだ。

ということで、LibreOfficeできれいな数式が組めるようになった。ワープロ編集画面中の数式の表示はたぶんAbi Wordはフォントがベクターデータなので、きれいだ。LibreOfficeはpngのビットマップデータなので、美しくない。けれど、プリンタで出力すればちがいはわからない。十分だろう。

どちらのワープロソフトも、Latexのデータを一方通行で画像データにしているので、一旦作成した数式の再編集はできないようだ。これはちょっと不便だが、その都度、Latex形式のデータをコピーしておくという運用で乗り切ることができる。これでずいぶんと、作業が楽になった。
posted by 松本 at 22:31| Comment(0) | TrackBack(0) | Ubuntuのアプリケーション | このブログの読者になる | 更新情報をチェックする

2013年04月17日

数学の問題作成にStixフォント

数日前、子ども向けの数学の問題をつくろうと思った。中学生の数学で、xとかyの文字が出てくる。こういう変数は伝統的にイタリック体で表すことになっている。ただし、数学の教科書に出てくるイタリック体は、一般の欧文書体のイタリック体に比べてやや特殊だ。なかなかぴったりくるフォントがない。

それなら適切なフォントをダウンロードすればよかろうと、数式用のフォントで検索をかけると、Stixというオープンなプロジェクトのフォントがあることがわかった。公式サイトから入手ドできるようなので、早速ダウンロードした。そして、この圧縮ファイルを解凍してフォントフォルダに突っ込んでやったが、なにも起こらない。

よくよく見てみたら、どうやらフォントファイルの形式がUbuntuで扱えるものとはちがっている。とはいえフォントデータそのものはあるわけだから、なにか適切なプログラムで変換できるだろうと見当をつけた。ローカルで使うだけなら、それで問題はないはず。

けれど、フォント作成・変換のツールを探し始める前に気がついた。データの形式がちがうために壁にぶち当たったユーザーは私だけではないはずだ。オープンソースの強みは、その私以前の誰かをあてにできることだ。ずっと以前に誰かがこのStixフォントのデータをUbuntuで扱える形式、たとえばOTFに変換してくれているかもしれない。

そこでまずは手はじめにとリポジトリ内を検索してみたら、あっさりとotf-stixというプログラムが見つかった。これをインストールすることで、あっさりと問題解決。

このStixフォント、イタリック体の形式がいいだけでなく、組版で頭を悩ませるもととなる二倍カッコ、三倍カッコなどにも対応している。分数の組みはそのままでは対応していないようだが、カッコや積分記号などは不細工にそこだけフォントサイズを変えるというのではなく、そのまま書体だけ指定すればうまくいってしまう。これはなかなかいいかもしれない。
posted by 松本 at 08:24| Comment(2) | TrackBack(0) | Ubuntuのアプリケーション | このブログの読者になる | 更新情報をチェックする