\rubyを使用した際の行間の不揃いを直したい

Re: \rubyを使用した際の行間の不揃いを直したい

- しっぽ 愛好家 の投稿
返信数: 2

いったいどのような文書を処理したときにその現象が生じるのですか?
ルビを用いる場合には行間のアキがルビ文字列を書き込める程度には大きくないといけませんが,
まずその点はよろしいですか(例えば,欧文用のたいていのクラスファイルでは行送りの設定は
ルビを用いるような和文テキストに対しては小さすぎます).
実際,添付のサンプルの「テストA」の部分では問題はないように見えます(が,文書クラスを
article に変えたら確かにルビを用いることで行送りが乱れます).

一方,「テストB」の部分のように(ディスプレイ・スタイルの分数といった)イレギュラーな高さのものが
行中にある場合にはルビを用いることで行送りが変わりますが,これは「行の衝突」を防ぐために仕方のないことです.
もちろんこういう場合を嫌って(あるいはページの先頭行にルビ付き文字列が含まれる場合への対処のために)
ルビ部分の高さを無視するようにルビ用マクロを定義することもあります(既製品もあるでしょうし,okumacro
パッケージでの定義に対してそのような変更を施すのも容易です).
もっとも,そうした場合,今度は「ルビ部分が前の行の文字に重なってしまう場合」が生じかねないことに注意が必要です
(実際,「テストB」の部分から「($= a_n$とおく)」を削除してみるとそうなります).

いずれにせよ,これ以上具体的なことを聞き出したければ「あなたが問題にしている現象」を
「それが再現するサンプル」とともに示したほうがよろしいでしょう.

しっぽ 愛好家 への返信

Re: \rubyを使用した際の行間の不揃いを直したい

- t bz の投稿

ご回答ありがとうございます。
試行錯誤した結果、emathPが原因だと思われます。
\usepackage{emathP}をコメントアウトすると、安定しました。

ルビが入ることで行間が崩れる様子を端的に示すサンプルです。

\documentclass[a4paper,10pt, twocolumn]{jarticle}
\usepackage{okumacro}
\usepackage{emathP}

\begin{document}

\section*{ルビによる行間の乱れの確認}

% 比較のためにルビのないテキスト
通常、ルビがない状態では一定の行間でテキストが配置されます。
% ルビがあるテキスト(ここで問題が発生する)
しかし、ここに「\ruby{漢字}{かんじ}」のようなルビが入ると、その行だけが上に押し広げられ、
前後の行と比較すると、特定の行間だけが広く空いて見えます。

\end{document}

t bz への返信

Re: \rubyを使用した際の行間の不揃いを直したい

- 和田 勇 の投稿
emathP.sty に次のような記述がありました。

45-\@ifpackageloaded{okumacro}{}{%
46:  \IfFileExists{okuruby.sty}{\RequirePackage{okuruby}}{}%
47-}%

なので、以下の URL から okuruby.sty をダウンロードし、適宜配置すれば解消するようです。

http://emath.s40.xrea.com/xdir/othersty/okuruby.sty

検証に用いたソースは、twocolumn を利用しているので、左右に並べて行間のずれの有無を確認できるようにいじったソース .pdf を添付します。