我用來\allowbreak
將長表達式包裝在多行中。由於某種原因,以這種方式斷開的連續數學行總是出現沒有任何行間距。我\setstretch
還沒有發現任何\linespread
會增加間距的東西。有什麼建議麼?
編輯:下面新增的範例。這會產生間距很大的文字段落,但數學表達式的兩行卻黏在一起。我想這是一致的,因為數學表達式的兩個基線之間的距離至少是文字的兩個基線之間的距離。
因此,提出我的問題的更好方法是:在下面的範例中,如何確保數學行不會黏在一起,而是在它們之間有一點垂直空間,而不改變文字行的行間距?
\documentclass{article}
\usepackage{lipsum}
\everymath{\displaystyle\allowbreak}
\linespread{2.0}
\begin{document}
\lipsum[1]
$\frac{1}{c_s^{2}} \partial_{t}{\psi_{1}}
\partial_{t}{\rho_{0}}+\frac{1}{c_s^{2}} \partial_{t}{\rho_{0}}
\partial_{i}{\psi_{1}} v^{(0)}_{i}+\frac{1}{c_s^{2}}
\partial_{t}{\partial_{t}{\psi_{1}}} \rho_{0}+\frac{1}{c_s^{2}}
\partial_{t}{v^{(0)}_{i}} \partial_{i}{\psi_{1}}
\rho_{0}+\frac{1}{c_s^{2}} \partial_{t}{\partial_{i}{\psi_{1}}}
\rho_{0} v^{(0)}_{i}+\frac{1}{c_s^{2}} \partial_{t}{\psi_{1}}
\partial_{i}{\rho_{0}} v^{(0)}_{i}+\frac{1}{c_s^{2}}
\partial_{i}{\partial_{t}{\psi_{1}}} \rho_{0}
v^{(0)}_{i}$
\lipsum[1]
\end{document}
答案1
TeX 將確保基線等距,除非一行中最深的物件與下一行中最高的物件之間的距離小於\lineskiplimit
(預設值 0pt)。嗯,這不是完整的事實,但對於本例來說已經足夠了。
在您的文件中,基線之間的距離設定為 24pt,因為\linespread{2}
.
最深的物體是\frac{1}{c_s^2}
,也是最高的物體。其深度為 9.33168pt,高度為 13.20952pt。
總結這些,我們得到 22.54120pt,這小於基線之間的通常距離,因此不會添加額外的空間,並且基線之間的距離為 24pt。
只是為了做實驗,試試一下\linespread{1.8}\lineskip=30pt
,就會看到
我\noindent
在公式前面添加,以避免與當前問題無關的框過滿。
現在深度和高度的總和大於基線跳躍,因此\lineskip
插入膠水以將它們分開(預設值 1pt)。
與其他軟體不同,TeX 不會透過在行之間插入固定量的膠水來實現行間距:根據上升部分或下降部分的存在,這將導致行間距不同。相反,它會在基線之間保持恆定距離,直到可能為止。
\lineskiplimit
\lineskip
你可以做的是增加:的值
\lineskip=6pt
\lineskiplimit=18pt
你得到
這可能是錯誤的。但文件是你的;調整值以適應。如果您也希望「rutrum」與公式之間的距離更大,請為 賦予更大的值\lineskiplimit
。
問題出在聲明上
\everymath{\displaystyle}
(請注意,它\allowbreak
什麼也不做,因為它只是在每個數學公式的開頭插入一個零懲罰,這是無用的,甚至是糟糕的)。這樣的聲明是破壞文檔外觀的最佳方式之一。
只是為了比較,這裡是沒有可怕的聲明的輸出,它看起來相當不錯(考慮到雙倍間距的糟糕情況)。