Re: [問題] 請問有關矩陣的分割/直和

看板LaTeX作者 (Ch'enMeng)時間10年前 (2014/01/09 08:48), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
先進不敢當﹐一點經驗。 最笨的辦法﹐可以是在 array 中套用 matrix, 然後用 \cline 和 \vline 結合來畫線。 不過應該注意﹐array 中﹐相鄰兩列之間的間隔﹐是 2 * \arraycolsep, 所以使用 \vline 畫豎線的時候﹐應該在 \vline 的左右處理這個距離﹐使得上下豎線能夠對齊。 另外的問題是﹐由於 matrix 不具有列格式選項﹐無法為之設定寬度。而矩陣中間的部分 (13 & 14 \\ 18 & 19 這部分)相較上下要更寬﹐這會導致最下面一行的豎線無法和上 面對齊﹐需要處理一下中間一列矩陣中的寬度。 由於這第二個原因﹐代碼變得沒有通用性。如果還有其他類似結構的矩陣﹐必須手工調 整 \usecolwidth 的定義。在純 TeX 下難以編程﹐暫時沒有特別好的方法來解決這個 問題﹐隻能依靠你自己理解代碼﹐繼而才能順利地使用代碼。 測試代碼如下﹕ \documentclass{article} \usepackage{amsmath} \newlength{\ColWidth} \newcommand{\getcolwidth}{\settowidth{\ColWidth}{13}} \newcommand{\usecolwidth}[1]{\getcolwidth\makebox[\ColWidth][c]{#1}} \newcommand{\arrayvline}{\hspace*{\arraycolsep}\vline\hspace*{-\arraycolsep}} \begin{document} \[ \begin{array}{@{}ccc@{}} \begin{matrix} 1 & 2\\ 5 & 7 \end{matrix} \arrayvline & \begin{matrix} \usecolwidth{0} & \usecolwidth{0} \\ \usecolwidth{0} & \usecolwidth{0} \end{matrix} & \begin{matrix} 0 \\ 0 \end{matrix}\\ \cline{1-2} \begin{matrix} 0 & 0 \\ 0 & 0 \end{matrix} \arrayvline & \begin{matrix} 13 & 14\\ 18 & 19 \end{matrix} \arrayvline & \begin{matrix} 0 \\ 0 \end{matrix}\\ \cline{2-3} \begin{matrix} 0 & 0 \end{matrix} & \begin{matrix} \usecolwidth{0} & \usecolwidth{0} \end{matrix} \arrayvline & 25 \end{array} \] \end{document} 注意我這裡使用了 \arrayvline 和 \usecolwidth 封裝了一些細節﹐方便使用。你應該 仔細查看 preamble 中的相關代碼﹐理解它們的作用﹐然後再上手使用。 ---------------------------------- 另外一個辦法﹐是使用 blkarray (short for block array). 不過這個包年份很久了﹐ 和著名的 amsmath 包在某些時候可能會沖突﹐因此應該謹慎使用。而同樣由於年份太 久﹐宏包作者 Carlisle 似乎已經不樂意再修改這個宏包了。 所以雖然有這個辦法﹐我這裡就不講如何使用它來實現你需要的效果了。如果確實有需要 可以在命令行輸入 texdoc blkarray 查看它的文檔﹐學習如何使用。 ※ 引述《fancap (漢子)》之銘言: : 請教各位先進, : 如果要在陣列中的特定某些行與列畫上隔線,例如下面的陣列 : 1 2 | 0 0 0 : 6 7 | 0 0 0 : -------- : 0 0 | 13 14 | 0 : 0 0 | 18 19 | 0 : ------- : 0 0 0 0 | 25 : 要如何打出呢? : (有試過在 array 中使用 \cline 與 \vline,但是隔線都無法對齊。 : 想請問各位高手是否有更有效的方式。) -- 來自萌氣四溢的 M 君~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 183.217.27.145

01/11 08:54, , 1F
非常感謝您的建議!我再試試看
01/11 08:54, 1F
文章代碼(AID): #1IpV7tp6 (LaTeX)
文章代碼(AID): #1IpV7tp6 (LaTeX)