先進不敢當﹐一點經驗。
最笨的辦法﹐可以是在 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 中的相關代碼﹐理解它們的作用﹐然後再上手使用。