58 LATEX でのルビ, LATEX2HTML についても

LuaLATEX-ja では、pxrubrica というパッケージを勧める人が多い。 これは pLATEX, upLATEX でも使えるので、私が乗り換えるには便利である。

他に luatexja-ruby というのもある。こちらは LuaLATEX専用である。

まずは pxrubrica で始めて、将来的にもしかしたら luatexja-ruby に乗り換える、 という作戦で行ってみる。

\usepackage{pxrubrica}

単一の文字にルビをふるには、 \ruby[オプション]{文字}{ルビ文字列} で構わない。

複数の文字からなる文字列にルビをふるには、 | を使って対応を指示すると良い。

\ruby{烏}{からす}と\ruby{鳥}{とり}は見間違えやすい。

\ruby{桂田}{かつら|だ}\ruby{祐史}{まさ|し} と申します。

\ruby[g]{不如帰}{ほととぎす}の読み方は知らなかった。
注意: \ruby{不如帰}{ほととぎす} は通らない。 g オプションをつけるか、| を入れるかだけど、 「ほととぎす」の場合は、どこで区切ると言えるものではないでしょう。 「ほととぎす」は「不如帰」全体の読みとしか言いようがない。 実は、ルビには細かいルール、色々な慣習があるそうで、 そういうものに対応するとかなり複雑になるみたい。

烏(からす)と鳥(とり)は見間違えやすい。

桂田(かつらだ)祐史(まさし) と申します。

不如帰(ほととぎす)の読み方は知らなかった。


画像サンプルでもつけようかな、と考えていて、ふと。
Chappy君に尋ねる
LaTeX を使っています。時々 LaTeX2HTML 日本語化パッチ (http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/) を使って HTML に変換します。

ルビの扱いについては、

「HTMLでは簡単には実現できないのか? 何の言及もないな。とりあえずあきらめよう。」

と考えて放ってありましたが、今回ルビについて考えたので、

LaTeX2HTML でルビを使う方法はないか?

についてお尋ねします。

あります。しかも現在の HTML では、かなりきれいに実現できます。

とんとん。

作ってくれた。私の使っている Mac では、 LaTeX2HTML を /usr/local/share/lib/latex2html にインストールしてあるので
curl -O https://m-katsurada.sakura.ne.jp/misc/20260921/luatexja-ruby.perl
curl -O https://m-katsurada.sakura.ne.jp/misc/20260921/pxrubrica.perl
sudo cp -p luatexja-ruby.perl pxrubrica.perl /usr/local/share/lib/latex2html/styles
(この3行をMacごとにコピペ実行すれば良い)。


LATEX 文書側では、例えば単に
\usepackage{pxrubrica}
とするだけである。LATEX で処理すると、 pxrubrica.sty を読み込んで処理が行われ、 LATEX2HTML で処理すると pxrubrica.perl を読み込んで処理が行われる、 ということになる。


個人的メモ     一番最初に使ったのは \ruby{かつらだ}{桂田} のように使うものだった (と思う。もう良く覚えていない。) つまりルビ自体を前 (第1引数), ルビを振りたい文字列を後 (第2引数) に書く。 これは結構珍しいもので、 \ruby{桂田}{かつらだ} という順番に書かせるものが多い。pxrubrica とかもそうだ。

順番の問題で、どうということはないけれど、 使っている方にとっては悪夢のようなところがある。 相当数の \ruby{かつらだ} {桂田} 順のがたまってしまった。エラーの嵐。 どうやって移行するか考えて、こういうのは 古いものは一括文字列置換で \Ruby{}{} に変えて、それから
\newcommand{\Ruby}[2]{\ruby{#2}{#1}}
というマクロを定義した。 つまり \Ruby{ルビ}{文字列} と \ruby{文字列}{ルビ} の2本で行くと。

これで悪夢は収まったのだけれど、まずいことが一つあって、 「そのうち \ruby{文字列}{ルビ} に統一しよう」と考えていたのだけれど、いつまでも \Ruby{ルビ}{文字列} 順のが残ってしまった。新しく書くものもそちらでやってしまったり (何をやっているんだ)。 気がつくと、いつまで経っても \Ruby{ルビ} {文字列} が減らない、というか多数派のままだ。

やれやれ。


さて、それで今回の pxrubrica への移行だけれど、 \ruby{桂田}{かつらだ} が許されない (エラーで止まる) というのが悩ましいところ。 \ruby{桂田}{かつら|だ} か \ruby[g]{桂田}{かつらだ} としないといけない。

これで結構時間を浪費した。大したことではないのだけれど、 何度もエラーに遭遇して、ちょっとイライラ。

どうしようかな。あ、そうか。少なくとも \Ruby{ルビ} {文字列} の方は
\newcommand{\Ruby}[2]{\ruby[g]{#2}{#1}}
とすれば、とりあえずエラー・ストップは避けられるんだ。 その上で、 \ruby{桂田}{かつら|だ} のように細かい指定が必要なのを増やしていけば良い。



桂田 祐史