# Sub-matrices within a matrix

How can I draw the following type of matrix without changing the horizontal alignment of the column entries:

|   c11 c12 c13   c14   c15 c16   c17 | c18 c19 | |
|   c21 c22 c23   c24 | c25 c26 | c27   c28 c29   |
|   c31 c32 c33   c34 | c35 c36 | c37   c38 c39   |
| | c41 c42 c43 | c44   c45 c46   c47   c48 c49   |


Remark: There are three sub-matrices within the main matrix:

submatrix 1: c18 to c19
submatrix 2: c25 to c36
submatrix 3: c41 to c43

where | shows as the large-sized parentheses ( and ).

This problem is different from matrix in a matrix.

-

# Remarks

I hope, I got your explanation right.

Using a specific \tikzmark and the calligraphy TikZ library by Andrew Stacey you can achieve the following output. You will need to rerun latex several times to get the positioning right.

# Implementation

\documentclass{standalone}
\usepackage{amsmath,tikz}
\usetikzlibrary{decorations,calligraphy}
\newcommand\tikzmark[2]{\tikz[remember picture,baseline=(#1.base)]{\node[inner sep=0pt] (#1) {#2};}}
\begin{document}
$\begin{pmatrix} c11 & c12 & c13 & c14 & c15 & c16 & c17 & (c18 & c19) \\ c12 & c22 & c23 & c24 & \tikzmark{c25}{$c25$} & \tikzmark{c26}{$c26$} & c27 & c28 & c29 \\ c13 & c32 & c33 & c34 & \tikzmark{c35}{$c35$} & \tikzmark{c36}{$c36$} & c37 & c38 & c39 \\ (c14 & c42 & c43) & c44 & c45 & c46 & c47 & c48 & c49 \\ \end{pmatrix}$
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decorate,decoration={calligraphic straight parenthesis}] (c35.south west) -- (c25.north west);
\draw[thick,decorate,decoration={calligraphic straight parenthesis}] (c26.north east) -- (c36.south east);
\end{tikzpicture}
\end{document}


# Output

Using the calc library you can compensate the bad spacing for the TikZ braces by adding an offset of .2em as in

\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c35.south west)+(-.2em,0)$) -- ($(c25.north west)+(-.2em,0)$);
\draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c26.north east)+(.2em,0)$) -- ($(c36.south east)+(.2em,0)$);
\end{tikzpicture}


which produces

On behalf of Christopher Creutzig's comment, here another solution (still using tikzmark) which doesn't involve typing parentheses inside the matrix.

\documentclass{standalone}
\usepackage{amsmath,tikz}
\usetikzlibrary{calc,decorations,calligraphy}
\newcommand\tikzmark[2]{\tikz[remember picture,baseline=(#1.base)]{\node[inner sep=0pt] (#1) {#2};}}
\begin{document}
$\begin{pmatrix} c11 & c12 & c13 & c14 & c15 & c16 & c17 & \tikzmark{c18}{$c18$} & \tikzmark{c19}{$c19$} \\ c12 & c22 & c23 & c24 & \tikzmark{c25}{$c25$} & \tikzmark{c26}{$c26$} & c27 & c28 & c29 \\ c13 & c32 & c33 & c34 & \tikzmark{c35}{$c35$} & \tikzmark{c36}{$c36$} & c37 & c38 & c39 \\ \tikzmark{c14}{$c14$} & c42 & \tikzmark{c43}{$c43$} & c44 & c45 & c46 & c47 & c48 & c49 \\ \end{pmatrix}$
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c35.south west)+(-.2em,0)$) -- ($(c25.north west)+(-.2em,0)$);
\draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c26.north east)+(.2em,0)$) -- ($(c36.south east)+(.2em,0)$);
\node[left=.2em] at (c14) {$($};
\node[left=.2em] at (c18) {$($};
\node[right=.2em] at (c19) {$)$};
\node[right=.2em] at (c43) {$)$};
\end{tikzpicture}
\end{document}


-
You have c14 and c18 shifted right and c43 and c19 shifted left. That probably calls for \llap and \rlap. –  Christopher Creutzig Dec 27 '13 at 18:47
\documentclass{article}
$\left(\begin{array}{@{\hspace*{1ex}}*{9}{c}@{\hspace*{1ex}}} c_{11} & c_{12} & c_{13} & c_{14} & c_{15} & c_{16} & c_{17} & \llap{\bigl(}c_{18} & c_{19}\rlap{\bigr)} \\ c_{21} & c_{22} & c_{23} & c_{24} & \llap{\raisebox{\dimexpr\ht\strutbox-\height}[0pt][0pt]{\biggl(}}c_{25} & c_{26}\rlap{\raisebox{\dimexpr\ht\strutbox-\height}[0pt][0pt]{\biggr)}} & c_{27} & c_{28} & c_{29} \\ c_{31} & c_{32} & c_{33} & c_{34} & c_{35} & c_{36} & c_{37} & c_{38} & c_{39} \\ \llap{\bigl(}c_{41} & c_{42} & c_{43}\rlap{\bigr)} & c_{44} & c_{45} & c_{46} & c_{47} & c_{48} & c_{49} \end{array}\right)$

Overlapping allows to maintain the horizontal spacing, while brackets are resized using their \big* equivalents.