• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Latexで行間幅の取り扱いについて)

Latexで行間幅の取り扱いについて

このQ&Aのポイント
  • Latexで行間幅の取り扱いについて宜しくお願い致します。
  • \begin{flushleft}や\begin{eqnarray*}の直前や\end{flushleft}や\end{eqnarray*}の直後や$$$$で括った数式の直前・直後の行間が開きすぎます。通常の文章中での\(改行)と同じ行間幅にしたいのですがどうすればいいのでしょうか?
  • \vspace{-1cm}とかを逐一挿入して行間を詰めるのに膨大な手間がかかってしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.2

まず。。eqnarrayや$$の前後には空白があくのが TeX/LaTeXの仕様です. 写植やMacのように「普通の改行」の動きはしません. この空白量は 通常の場合は \abovedisplayskip/belowdisplayskipおよび \abovedisplayshortskip/\belowdisplayshortskip の四つのパラメータで指定されます. これらを0ptに指定すれば,まあ,行間があいてないように見えます. 決してマイナスにしてはいけません. マイナスにした日には,今度は本文と別行数式が重なるのを直すのに 苦労することになります. shortの有無が関係するのは, 別行数式の前の行の終端と 別行数式の先頭の「横位置の差」が2emを超えないときはshortが適用されます. ただし,上記のことは,fleqnオプションを使用しないときは fleqnオプション使用時は $$の挙動は変わりませんが,eqnarrayなどの上下の空きは \topsepで制御されます. この\topsepはうかつに値を変えると, 場合によっては箇条書き系環境の体裁も変わります. \topsepは箇条書き系環境の上下の空きを決定している パラメータのひとつでもあります. ついでにいうと,jsclassesを使ってるように見えますが(jsartcle.clsか?), この場合,10pt以外のオプションを使うと 1cmとかいうふうに寸法を直接指定しても1cmにはなりません 1cmをあけたければ1truecmのように「true」を単位につけましょう. 話をもどして, かりに上下アキを0ptにしても 別行数式の高さは普通の文章より大きいので 絶対に「行送りの倍数」にはできません. となると,ページを生成するにはかならずどこかで, 帳尻あわせをしなければいけません. この縦方向の帳尻あわせをどこでするかという問題が発生して 処理系のほうで調整されるかもしれません (これは\flashbottom/\raggedbottomの設定に依存). くわえて,大きな数式,それこそ行列があった場合に, 通常の行間では重なるので,行間の調整が入ります. この調整のパラメータは \lineskip/\lineskiplimitですが, これらの値とfleqnなどの設定の組み合わせによっては 数式および行間は通常のものとはかわります, 大雑把にいえば,前の行の下端と次の上の上端の間が \lineskiplimit未満のときに,行間に\lineskipを加えて それが\lineskiplimitを超えればOK,こえなければ加算を繰り返します. #この行間の機構については #TeX by Topicという書籍に詳しくて #この本はWebで無料公開されてるはずです. これにくわえて,人間の主観的な問題がでてきます 普通の行間であっても,別行数式が小さい場合, 行間があいてるようにみえるんですよね あああああああああ\\ $a_1+a_2=a3$\\ いいいいいいいいい なんて場合,数式の上が広いようにみえませんか? ということで。。。。現実的な対策ですが eqnarrayを書き直してしまうのが一番簡単なんですが, それができない場合は,まずはパラメータを TeXの動作にあわせて調整するということです. ただし,パラメータはたくさんありますので そこのバランスをとることが必要です. それから,箇条書きの\itemの直後に別行数式がある場合, \item \begin{eqnarray} ... \end{eqnarray} みたいなときに (1) .... (同じ行に別行数式) とするのは,すごく難しいのでお勧めしませんし, じつは英文の数式組版としては不恰好と思われます.

Dominika
質問者

お礼

ご回答誠に有難うございます。 行間詰めとはかなり複雑なのですね。 今,Latexの入門書を購入してご回答を参考に地道に練習しております。ちょっと時間がかかりそうです。 また,何か有りましたら投稿させていただきたいと思います。

その他の回答 (1)

  • Tora_777
  • ベストアンサー率73% (28/38)
回答No.1

\abovedisplayskip、\belowdisplayskipを用いて調整できるのですが、(1)などは、enumerate.styを利用された方がいいかと思います。後で、途中に、箇条書きを入れたとき自動で調整してくれます。 \Cが定義されていないというエラーが出ましたが、下記のようにされたらいかがでしょうか。 eqnarray*環境は&を2回タイプしなきゃいけない、無駄な空白が空くので、align環境にしました。align環境で途中に文章を挟むときに、\intertextを利用できるのですが、mathtools.styを利用すると前後の空白を少なくすることができます。\allowdisplaybreaksとかもあります。 \\は入れる必要が無いですね。 \documentclass{jarticle} \usepackage{enumerate} \usepackage{amsmath} \begin{document} \abovedisplayskip=-5pt \belowdisplayskip=-5pt A standard result from linear algebra and matrix theory states that for any $n\times n$ nonsingular matrix $A$. \begin{enumerate}[(1)] \item $$ (C A)^T = |A|A^{-1}. $$ where $A^{-1}$ is the inverse of $A$. \item $$ |C A| = |A|^{n-1}. $$ \item Let $A \in M$ and $c\in R$. Then $$ C cA=c^{n-1}C A. $$ \item $$ C^2 A = |A|^{n-2} A. $$ \item where $egvl(C A)$ stands for of $C A.$ \item Let $A \in M.$ Then $$ AC A=(C A)A=|A|I. $$ \end{enumerate} \begin{enumerate}[(1)] \item For any $A \in M$ and any $c \in R,$ \begin{align*} AC A &= a_{ik}(C A)_{ij} &= |A|I. \end{align*} Thus $$ C A =|A|A^{-1}. $$ \end{enumerate} \end{document}

Dominika
質問者

お礼

ご回答誠に有難うございます。 行間詰めとはかなり複雑なのですね。 今,Latexの入門書を購入してご回答を参考に地道に練習しております。ちょっと時間がかかりそうです。 また,何か有りましたら投稿させていただきたいと思います。

関連するQ&A

専門家に質問してみよう