толстая линия в среде массива

толстая линия в среде массива

Я использую среду массива, а не табличную, что делает невозможным использование таких команд, как

\specialrule{.1em}{.05em}{.05em}

\Xhline{2\arrayrulewidth}

\noalign {\ifnum 0=`}\fi \hrule height 1pt
    \futurelet \reserved@a \@xhline

для того, чтобы сделать линию толще. Я решил проблему с вертикальными линиями с помощью команды

\newcolumntype{"}{@{\hskip\tabcolsep\vrule width 1pt\hskip\tabcolsep}}

и с горизонтальными линиями, используя

\Xhline{1pt}

Это правильно или есть способ лучше? Большое спасибо

Карло Альберто

решение1

Они все работают в arrayсреде. Вот демо с makecell, boldlineи booktabs. \cmidruleможно даже использовать в xmatrixсредах:

    \documentclass{article}
    \usepackage{array, boldline, makecell, booktabs, amsmath}
    \newcommand\btrule[1]{\specialrule{#1}{0pt}{0pt}}
    \usepackage[svgnames, table]{xcolor}

    \begin{document}

  \[ \begin{array}{l!{\vline width 1pt}c | r }
      \arrayrulecolor{IndianRed} \Xhline{1pt}
      1 & 2 & 3 \\
      \hline
      4 & 5 & 6 \\
      \hline
      7 & 8 & 9 \\
      \Xhline{1pt}
    \end{array}
    \qquad
    \begin{array}{ lV{2.5}c | r }
      \hlineB{2.5}
      1 & 2 & 3 \\
      \hline
      4 & 5 & 6 \\
      \hline
      7 & 8 & 9 \\
      \hlineB{2.5}
    \end{array}
    \qquad
    \begin{array}{ l!{\color{IndianRed}\vline width 1pt}c | r }
      \arrayrulecolor{IndianRed}
      \btrule{1pt}
      1 & 2 & 3 \\
      \arrayrulecolor{black} \hline
      4 & 5 & 6 \\
      \hline
      7 & 8 & 9 \\
      \arrayrulecolor{IndianRed}\btrule{1pt}
    \end{array}
    \qquad
    \begin{bmatrix}
      1 & 2 & 3 \\
       \cmidrule(lr){1-3}
      4 & 5 & 6 \\
       \cmidrule(lr){1-2}
      7 & 8 & 9 \\
    \noalign{\setlength{\aboverulesep{-2ex}}
    \arrayrulecolor{IndianRed}\cmidrule(lr){1-3}
    \end{bmatrix}
\]
\end{document} 

введите описание изображения здесь

решение2

Для информации, вы также можете нарисовать толстые линии (или любое другое правило, которое вы хотите) в массиве со средой {NiceArray}. nicematrixЭта среда похожа на среду {array}(из array), но создает узлы PGF/Tikz под ячейками, строками и столбцами. Вы можете использовать Tikz, чтобы нарисовать любое правило, которое вы хотите, с помощью Tikz после построения массива.

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

$\begin{NiceArray}{ccccc}
1 & 2 & 10 & 14 & 15 \\
0 & 2 & 10 & 14 & 15 \\
0 & 0 & 10 & 14 & 15 \\
0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 \\
\CodeAfter 
  \tikz \draw [thick] (2-|1) -- (2-|2) |- (3-|3) |- (4-|6) ;
\end{NiceArray}$

\end{document}

Вывод кода выше

Связанный контент