• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Texに関する質問(文章中の数式について))

TeXに関する質問(数式の改行方法について)

このQ&Aのポイント
  • Texに関する質問です。数式の改行方法についてアドバイスを頂きたいです。
  • 数式を文章に挿入する際に改行が思い通りにならず困っています。
  • 数式を挿入した行で右側の一部がはみ出した後に改行が行われてしまいます。適切な改行方法があれば教えてください。

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

  • ベストアンサー
  • siegmund
  • ベストアンサー率64% (701/1090)
回答No.3

かなり難しいのじゃないかと思います. LaTeX では二項演算子(+,-,など)や関係演算子(=,>,など)の後は改行位置候補になっているので, 二項演算子や関係演算子が密にあると文中の式でも普通にうまく改行してくれます. Knotopolog さんの例で,うまくいくのはそのためです. ところが,何かの都合で { } でグルーピングされたりすると, グルーピングの内部は改行位置候補になりませんので長い式ですと右側にはみ出しちゃいます. たとえば,Knotopolog さんの例で {a+b+・・・+p} = {q-r-・・・-z} などとすると, (少なくとも私のシステムでは)右側にはみ出してしまいます. 等号(=)がグルーピングの中に入っていなければ等号の後は改行位置候補になっていると思うのですが, そこでうまく改行されないのは前の行があまりに間延びしてしまうとか, そういう理由によるものかもしれません. どうも小手先でなくて簡単にやるのは難しそうな気がします. 最後の仕上げの時に実際の出力と式の改行位置候補をよく見て適宜 \linebreak など入れるより仕方がないのではと思います. ただし,\linebreak はグルーピング中では効かないようです. また,\sloppy もグルーピング内には効かないようです. Tacosan さんの言われるように,文中に長い式はやめた方がよいと思います. うまく改行できてもそもそも読みにくいですよね.

graphman2
質問者

お礼

大変丁寧にお教え頂き有り難うございました。 非常に勉強になりました。

その他の回答 (2)

  • Knotopolog
  • ベストアンサー率50% (564/1107)
回答No.2

コンパイル・テストをしてみましたが,$$で囲って文章中に数式を入れても,指定した行幅で確実に改行されます. たとえば,テストとして, あああああああああああああ,いいいいいいいいいいいいいいい, ううううううううううううううううううう. えええええええ,おおおおおおおおおおおおおおお, $a+b+c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ m+ n+ o+ p= q- r -s -t -u -v -w -x -y -z =A +B -C -D -E -F -G -H -I -J= K+ L+ M+ N+ O+ P+ Q+ R+ S+ T+ U+ V+ W+ X+ Y+ Z$ かかかかかかかかかかかかかか,きききききききききききき ききききききききききききき.くくくくくくくくくくくくくくくくくくく, $a+b+c+ d+ e+ f+ g+ h+ i+ j=v+ k+ l+ m+ n+ o+ p- q- r -s -t -u -v -w -x -y -z -A +B -C -D -E -F -G -H -I -J= K+ L+ M+ N+ O+ P+ Q+ R+ S= T+ U+ V+ W+ X+ Y+ Z$ けけけけけけけけけけけけけけけけ,ここここここここここここここここここここ. を TeX でコンパイルすると,数式は,右へはみ出しません. 因みに,私のプリアンブルは,以下の通りです. \documentclass[a4paper,12pt]{jarticle}%% \topmargin=-15mm %% 紙上端+1inch+topmargin=ヘッダ上端 \headheight = 3mm %% ヘッダ幅(ヘッダ上端からヘッダ下端まで)3mm \headsep = 4mm %% ヘッダ下端から本文上端まで.4mm \topskip =10mm %% 1ページ目の skip \oddsidemargin =-7mm%% 奇数ページ左余白 \evensidemargin=-7mm%% 偶数ページ左余白 % \textwidth =180mm%% A4紙 \textheight=256mm%% A4紙 \usepackage{amsmath,amssymb,amsfonts}%      (以下,style ファイル省略) \begin{document}% \abovedisplayskip=1zh%% 和文の次にくる長い数式との行間隔を1zhに設定. \belowdisplayskip=1zh%% 長い和文の次にくる数式との行間隔を1zhに設定. \abovedisplayshortskip=0.5zh%% 短い和文の次にくる数式との行間隔. \belowdisplayshortskip=1zh%% 数式の次にくる和文(短い)との行間隔. \allowdisplaybreaks%% どこの \\ で改ページしてもよい. \begin{align} <数式> \end{align} など. ここへ,文章および数式を挿入. \end{document}% 質問者さんは,文章全体の幅をどの様に決めて(制限して)いますか? もし,どうしても,うまくゆかない場合は,下記のサイトへ質問してみて下さい. TeX の専門家が競って解答してくれます. TeX Q&A ● http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/ 以上です.

graphman2
質問者

お礼

丁寧にお教え頂き有り難うございます。 大変参考になりました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

\sloppy が数式に効くならそれで何とかなるかもしれん. ただ, はっきり言って「小手先の方法」ではある. 「=が3つ程度入った」で「比較的長くなる」数式, しかも「TeX が『てきとうな改行位置』を見つけられない」ような状況では「インラインで数式を書く」ことから検討し直した方がいいような気もする. TeXブック的には「(数式を含めて) 文章そのものを直すべし」, かな.

graphman2
質問者

お礼

お教え頂き有り難うございます。 文章全体の修正も含めて、もう一度考えてみたいと思います。

関連するQ&A