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

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

- t bz の投稿
返信数: 7

\rubyを使用した際に行間が空いてしまいます。
行間を一定に保つためにはどうしたらよいでしょうか。
ちなみに、\rubyはokumacroのものを使用しております。

t bz への返信

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

- しっぽ 愛好家 の投稿

いったいどのような文書を処理したときにその現象が生じるのですか?
ルビを用いる場合には行間のアキがルビ文字列を書き込める程度には大きくないといけませんが,
まずその点はよろしいですか(例えば,欧文用のたいていのクラスファイルでは行送りの設定は
ルビを用いるような和文テキストに対しては小さすぎます).
実際,添付のサンプルの「テスト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  と ソース を添付します。
和田 勇 への返信

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

- 和田 勇 の投稿
そもそも okuruby.sty を読み込んでいる形跡がないことに気が付いたのですが、
投稿キャンセル許容時間を過ぎてから新手めてチェックしたところ、
ズレがありますので、前回の回答はキャンセル扱いでお願いします。

和田 勇 への返信

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

- t bz の投稿
ご回答ありがとうございます。
提示いただいた okuruby.sty を試してみましたが、私の環境下では、やはりルビが入る行の行間が広がってしまうようです。

しかし、大熊様から教えていただいた [normallineskip] のオプションを指定することで無事に解決することができました。
貴重なお時間を割いてコードをご提示いただき、本当にありがとうございました。

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

\begin{document}

\section*{1. ルビがある場合(行間が広がる)}

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

\newpage
\section*{2. ルビがない場合(正常な行間)}

通常、ルビがない状態では一定の行間でテキストが配置されます。
しかし、ここに「漢字」のようなルビが入ると、その行だけが上に押し広げられ、
前後の行と比較すると、特定の行間だけが広く空いて見えます。

\end{document}
t bz への返信

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

- 大熊 一弘 の投稿
> emathPが原因だと思われます。

emath パッケージでは,
  「行間を一定にする」
ことよりも
  「行の上下にゆとりを持たせる」
を優先しています。
これを解除し,pLaTeX の仕様通りとするには,
emath を読み込む際,ロードオプション
  \usepackage[normallineskip]{emath}
を付加することとしています:

% emath 独自の行間設定の排除
\documentclass[a4paper,10pt, twocolumn]{jarticle}
\usepackage{okumacro}
\usepackage[normallineskip]{emath}% emath 独自の行間設定を排除
\usepackage{emathP}

\begin{document}

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

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

\end{document}
大熊 一弘 への返信

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

- t bz の投稿

ご教示いただいた方法で無事に解決いたしました!
教えていただいた通り、ロードオプションに [normallineskip] を付加することで、ルビがあっても一定の行間を保つことができるようになりました。
的確なアドバイスをいただき、本当にありがとうございました。