アプリ版:「スタンプのみでお礼する」機能のリリースについて

Texに関する質問です。

数学の文章を打っています。
文章中に=が3つ程度入った数式(=を3つ程度使って式をつないでいるので、必然的に数式が比較的長くなる)、を挿入したいのですが、改行が思い通りの場所でならず、困っています。具体的には、数式を挿入した行において、数式の一部分が右側に大きくはみ出した後に改行がなされます。

$$で囲って、文章中に数式を挿入しているのでその様なことが起こると思われるのですが、作っている文章の文脈の関係から、それらの数式を\begin{align*}~\end{align*}の中に入れて、改行を設定することで修正することは、避けたいと考えています。

また、小手先の方法で、無理矢理その部分だけ修正する方法も、できれば避けたいと考えています。(同じような部分が数カ所あるので。)

そのような状況で、文章中の3つ程度の=で結ばれた、比較的長い数式をうまく配置する、何かよい方法はないでしょうか?(数式中の=の場所で、各行の右側部分に大きくはみ出さない状況で、改行されるのが、最も望ましい状況であると考えています。)
もしもご存じの方がおられれば、お教え頂ければ幸いです。

A 回答 (3件)

かなり難しいのじゃないかと思います.



LaTeX では二項演算子(+,-,など)や関係演算子(=,>,など)の後は改行位置候補になっているので,
二項演算子や関係演算子が密にあると文中の式でも普通にうまく改行してくれます.
Knotopolog さんの例で,うまくいくのはそのためです.
ところが,何かの都合で { } でグルーピングされたりすると,
グルーピングの内部は改行位置候補になりませんので長い式ですと右側にはみ出しちゃいます.
たとえば,Knotopolog さんの例で {a+b+・・・+p} = {q-r-・・・-z} などとすると,
(少なくとも私のシステムでは)右側にはみ出してしまいます.

等号(=)がグルーピングの中に入っていなければ等号の後は改行位置候補になっていると思うのですが,
そこでうまく改行されないのは前の行があまりに間延びしてしまうとか,
そういう理由によるものかもしれません.

どうも小手先でなくて簡単にやるのは難しそうな気がします.
最後の仕上げの時に実際の出力と式の改行位置候補をよく見て適宜
\linebreak など入れるより仕方がないのではと思います.
ただし,\linebreak はグルーピング中では効かないようです.
また,\sloppy もグルーピング内には効かないようです.

Tacosan さんの言われるように,文中に長い式はやめた方がよいと思います.
うまく改行できてもそもそも読みにくいですよね.
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/12/09 14:12

コンパイル・テストをしてみましたが,$$で囲って文章中に数式を入れても,指定した行幅で確実に改行されます.


たとえば,テストとして,

あああああああああああああ,いいいいいいいいいいいいいいい,
ううううううううううううううううううう.
えええええええ,おおおおおおおおおおおおおおお,
$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/

以上です.
    • good
    • 0
この回答へのお礼

丁寧にお教え頂き有り難うございます。

大変参考になりました。

お礼日時:2014/12/09 14:13

\sloppy が数式に効くならそれで何とかなるかもしれん.



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

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

お礼日時:2014/12/09 14:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています