Agregar líneas verticales alrededor de vectores de fila en matrices de bloques

Agregar líneas verticales alrededor de vectores de fila en matrices de bloques

Me gustaría producir una matriz de bloques de 3x3 con el diseño que se muestra en la figura de la izquierda a continuación. La matriz está dividida por un vector de fila d-e-fy un vector de columna b-e-h(por lo que erepresenta una submatriz de 1x1). Me gustaría agregar dos líneas horizontales y dos verticales para separar los 9 bloques (4 matrices, 4 vectores, 1 escalar).

Estoy usando los NiceArraycomandos delnicematrixpaquete, que funcionan según lo previsto si uso bloques de dos filas (consulte la matriz de la izquierda a continuación). Sin embargo, cuando intento componer el vector de fila d-e-fusando bloques de una fila (es decir, cambiando \Block{2-2}{d}a \Block{1-2}{d}, etc.), las líneas verticales se rompen (consulte el ejemplo de la derecha). Agregar/eliminar \hlinecomandos no tiene ningún efecto en las líneas verticales. Estoy usando TeX Live 2019 con nicematrixla versión 3.7.

¿Hay alguna manera de mantener líneas verticales alrededor de la submatriz esin usar bloques de dos filas?

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{nicematrix}
\begin{document}

\[
\begin{pNiceArray}{cc|c|cc}[margin]
    \Block{2-2}{a} & & \Block{2-1}{b} & \Block{2-2}{c} & \\
                   & &                &                & \\\hline
    \Block{2-2}{d} & & \Block{2-1}{e} & \Block{2-2}{f} & \\
                   & &                &                & \\\hline
    \Block{2-2}{g} & & \Block{2-1}{h} & \Block{2-2}{i} & \\
                   & &                &                & \\
\end{pNiceArray}
\quad
\begin{pNiceArray}{cc|c|cc}[margin]
    \Block{2-2}{a} & & \Block{2-1}{b} & \Block{2-2}{c} & \\
                   & &                &                & \\
    \Block{1-2}{d} & & \Block{1-1}{e} & \Block{1-2}{f} & \\\hline
    \Block{2-2}{g} & & \Block{2-1}{h} & \Block{2-2}{i} & \\
                   & &                &                & \\
\end{pNiceArray}
\]

\end{document}

Actualización: en última instancia, me gustaría sustituir a... icon fórmulas que representen las submatrices, por ejemplo A_{00}, a_{01}^\mathsf{T}, etc. También me gustaría ilustrar eso ay ison matrices cuadradas pero cy gno son necesariamente cuadradas.

A continuación se muestra un resultado de ejemplo con valores realistas:

\documentclass{article}
\usepackage{nicematrix}
\begin{document}

\setlength{\extrarowheight}{1mm}
\setlength{\arraycolsep}{8pt}
\[
\begin{pNiceArray}{ccc|c|ccccc}[margin]
    \Block{3-3}{A_{00}} & & & \Block{3-1}{a_{01}} & \Block{3-4}{A_{20}^\mathsf{T}} & & & \\
     & & & & & & & \\
     & & & & & & & \\ \hline
     % I'd like to use the following line but it doesn't work as expected:
     %\Block{1-3}{a_{01}^\mathsf{T}} & & & \Block{1-1}{0} & \Block{1-4}{a_{21}^\mathsf{T}} & & & \\
     % two-row blocks are fine:
     \Block{2-3}{a_{01}^\mathsf{T}} & & & \Block{2-1}{0} & \Block{2-4}{a_{21}^\mathsf{T}} & & & \\
     & & & & & & & \\ \hline
     \Block{4-3}{A_{20}} & & & \Block{4-1}{a_{21}} & \Block{4-4}{A_{22}} & & & \\
     & & & & & & & \\
     & & & & & & & \\
     & & & & & & & \\
\end{pNiceArray}
\]

\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

Similar a lo sugerido @leandriis en su comentario. Tus bloques se simulan con más espacio alrededor de la submatriz:

Editar:

Teniendo en cuenta el contenido de la matriz como lo proporcionó en la pregunta editada

\documentclass{article}
\usepackage{array,
            makecell}    % new

\begin{document}
\[\setcellgapes{3pt}
  \makegapedcells
\left(
\begin{array}{ccc|c|ccc}
    &           &&          &&              &   \\
    & A_{00}    && a_{01}   &&   A_{20}^T   &   \\
    &           &&          &&              &   \\   \hline
    & a_{01}^T  && 0        &&  f           &   \\   \hline
    &           &&          &&              &   \\
    & A_{20}    && a_{21}   &&  A_{22}^T    &   \\
    &           &&          &&              &   \\
\end{array}\right)
\]
\end{document}

Nota: se agregan filas y columnas vacías para enfatizar dónde la submatriz de dimensión es mayor que 1 x 1. Si esto no es necesario, simplemente elimínelos.

ingrese la descripción de la imagen aquí

Respuesta2

Resulta que se trata de un error en la versión actual del nicematrixpaquete. Esto se solucionó en la versión 3.8 (2020-01-02) y está disponible en CTAN.

Si por alguna razón está atascado con una versión anterior, el error se puede solucionar agregando \vlineal final de las celdas afectadas. Aplicar esto en el ejemplo de trabajo mínimo da el resultado deseado:

\documentclass{article}
\usepackage{nicematrix}
\begin{document}

\setlength{\extrarowheight}{1mm}
\setlength{\arraycolsep}{8pt}
\[
\begin{pNiceArray}{ccc|c|ccccc}[margin]
    \Block{3-3}{A_{00}} & & & \Block{3-1}{a_{01}} & \Block{3-4}{A_{20}^\mathsf{T}} & & & \\
    & & & & & & & \\
    & & & & & & & \\ \hline
    \Block{1-3}{a_{01}^\mathsf{T}} & & \vline & \Block{1-1}{0} \vline & \Block{1-4}{a_{21}^\mathsf{T}} & & & \\\hline
    \Block{4-3}{A_{20}} & & & \Block{4-1}{a_{21}} & \Block{4-4}{A_{22}} & & & \\
    & & & & & & & \\
    & & & & & & & \\
    & & & & & & & \\
\end{pNiceArray}
\]

\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

Una solución variante:

\documentclass{article}
\usepackage{amsmath} %

\begin{document}


\[ \renewcommand{\arraystretch}{1.4}
  \left[\,\:\begin{matrix}
     a & \vrule & b & \vrule & c \\
    \hline
     d & \vrule & e & \vrule & f \\
    \hline
     g & \vrule & h &\vrule & i
    \end{matrix}
\,\: \right]
\]

\end{document} 

ingrese la descripción de la imagen aquí

información relacionada