多分ひらがなとカタカナで扱いが違うのだと思いますが,
そのとおりです.jlreq によると
JIS X 4051では,片仮名は漢字と同じ文字クラスに含まれている.したがって,片仮名についてはルビ文字を掛けることは禁止されている.
となっているので,luatexja-ruby でもそれに応じてひらがなとカタカナの扱いを変えたようです.
手元の『文字の組方ルールブック ヨコ組編』(日本エディタースクール,2001)でも
対象の字や語からルビがはみ出した場合は,平仮名,中黒,後にくる句読点や受けの括弧類,リーダーなどにはルビが 1 字まではかかってもよい.……
などとあり,なぜかひらがなとカタカナで扱いが違いますが,この機会にデフォルト値を考え直しても良いですね.
ありがとうございます。そういうルールだったんですね。
\ruby{dvi}{ディーヴィーアイ}愛愛愛 \ruby{愛}{アイ}愛愛愛
を比較するとわかるように,「ルビがかからない」というよりは「ルビが長い場合は余分な1/2zwスペースが入る」という感じだったので違和感があったので報告させていただきました。
・・・と書いてから気付いたのですが,これってひょっとしてxkanjiskipでしょうか。親字が欧文の場合,ルビがかからない場合には,ルビも含めたボックスの端からxkanjiskipを空けるという現象があって,違和感を増幅しているのかもしれないと思いました。
説明の図をインラインに埋め込もうと四苦八苦していました(うまくいっていません)。
https://osdn.dl.osdn.net/ticket/g/l/lu/luatex-ja/40816/5687/test.png
単にカタカナにルビがかからないというだけでなく,さらに余分な空きができるということを言いたかったわけです。
あと,ルビの高さが揃わない問題もあって,\kanjistrut を入れたら今度は xkanjiskip が入らないので,何か工夫がないものかと考えているところです。
全然返信せずにいてすみません.
\kanjistrut を入れたら今度は xkanjiskip が入らない
luatexja-ruby 側で高さ・深さを固定する設定を入れておきます.
ありがとうございます。OSDNは不慣れなためうまく説明できずにすみませんでした。
20201005.0 を出しました.
xkanjiskip が入る件は何も手を入れていません(そのためこのチケットはオープンのままにしておきます)が,ひらがな・カタカナで前後の空きが変わったり,親文字によってルビの高さが変わったりする問題は解決していると思います.
ありがとうございます! 美文書がんばります。
美文書を組んでいて,やはり伸び気味の行でルビがおかしい箇所が散見されましたので,同じ問題かもしれませんが,念のため追加報告させていただきます。
\documentclass{ltjsarticle} \usepackage{luatexja-ruby} \begin{document} 値とは\ruby{\texttt{;}}{セミコロン}で区切 \makebox[10\zw][s]{値とは\ruby{\texttt{;}}{セミコロン}で区切} \end{document}
どうやらルビは後ろだけが伸びるようです(test2.png)。
どうやらルビは後ろだけが伸びるようです
「;」は標準では後側の和文文字との間にだけ xkanjiskip が入るようになっているので,test2.png でも同じようになっています.
あぁこれもxkanjiskipの影響だったんですね。よく調べずすみません。
今週末入稿の美文書は luatexja r56639 で組みつつあり,(ルビ以外は)とてもうまくいっています。ありがとうございます。
とすると,1行目は左に寄り,2行目は右に寄ります。多分ひらがなとカタカナで扱いが違うのだと思いますが,違和感があるので報告させていただきました。とりあえず「バグ」としましたが,意図したものであれば無視してください。