LaTeX 輸入矩陣裡面的元素時,使用 dfrac 後,發現字母有重疊怎麼辦?
在latex裡面輸入一個元素帶分式的矩陣,代碼如下:
[
A=egin{bmatrix}A^{2} dfrac{B}{2} dfrac{D}{2}\
dfrac{B}{2} C^{2} dfrac{E}{2}\
dfrac{D}{2} dfrac{E}{2} F
end{bmatrix}
]
顯示出來的矩陣,有的地方上面元素的分母與下面元素的分子有重疊,怎麼怎麼解決?
如圖所示,上面的矩陣是直接使用frac得到的,但是我覺得效果不好看,下面那個就是有重疊的。
忽然看到這個老問題又被頂上來了。首先,盡量使用阿玲的解決方式,即通過改變記法來避免矩陣中出現過於肥大的分式。或者說,接受 frac 在 extstyle 下比較小的樣子。
當然,有些場合就是覺得 dfrac 的大小更合適,也未嘗不可。那就需要專門調整間距。
在多數情況,手工行末用 \[.5ex] 增加一點額外間距就可以了,這樣不會有過多的額外影響,效果也好。
原理上,Hendrik Vogt 的解釋比較詳細:
math mode - Using display style fraction in a matrix environment可以看到,直接修改 arraystretch 會造成上下間距對不齊的情況,特別是 arraystretch 比較大的時候。所以 arraystretch 雖然在修改表格/矩陣間距時用得比較多,在這裡還是有些不大好。另一個可能的宏包解是使用 makecell 宏包的 makegapedcells。這個宏是在表格/矩陣的內容增加額外間距。所以可以這樣用:documentclass{article}
usepackage{amsmath}
usepackage{makecell}
makegapedcells
setcellgapes{0pt}
egin{document}
[
setcellgapes{.5ex}
A=egin{bmatrix}A^{2} dfrac{B}{2} dfrac{D}{2}\
dfrac{B}{2} C^{2} dfrac{E}{2}\
dfrac{D}{2} dfrac{E}{2} F
end{bmatrix}
]
end{document}
makecell 宏包的這個功能借鑒自 tabls 宏包,所以用 tabls 宏包也可以。不過我覺得 makecell 的語法舒服一點。
還有一個思路是改造 dfrac。也就是前面鏈接中 morbusg 的做法。可以這樣定義一個 mfrac 來處理:
ewcommandmfrac[2]{dfrac{#1smash[b]{strut}}{#2smash[t]{strut}}}
謝邀。我找到了一個一個網頁也許可以解答題主的問題:
Vertical spacing between fractions in matrix environment在導言添加
makeatletter
enewcommand*env@matrix[1][arraystretch]{%
edefarraystretch{#1}%
hskip -arraycolsep
let@ifnextchar
ew@ifnextchar
array{*c@MaxMatrixCols c}}
makeatother
然後使用
egin{pmatrix}[2]
推薦閱讀:
※LaTeX 使用 listings 宏包插入代碼時,如何將代碼的字體設定為 Monaco?
※xelatex編譯加粗楷體為什麼會失敗?
※TeXLive如何查看一個宏包的目錄結構(TDS)?
※如何在LaTex或Word中表示卓里奇《數學分析》基的符號?
※如何快速查看 LaTeX 的宏命令的實現?
TAG:LaTeX |