如何自定义 kbordermatrix

如何自定义 kbordermatrix

对于下面给出的矩阵,我想添加以下两个特征:

  1. 位于文本“第 j 列”下方中央的向下箭头。
  2. 突出显示条目 a_{ij}。

我怎样才能实现这个目标?

\documentclass{article}
\usepackage{kbordermatrix}
\begin{document}
    \[
    \kbordermatrix{{}&{}&{}& \mbox{Column $j$} &{}&{} \\
    {} & a_{11} & \cdots & a_{1j} & \cdots & a_{1n} \\
    {} & \vdots & {} & \vdots & {} & \vdots \\
    \mbox{Row $i \rightarrow$ }   & a_{i1} & \cdots & a_{ij} & \cdots & a_{in} \\
    {} & \vdots & {} & \vdots & {} & \vdots \\
    {} & a_{m1} & \cdots & a_{mj} & \cdots & a_{mn}
    }
    \]
\end{document}

您可能会发现 kbordermatrix.sty这里在“杂项”下。

答案1

以下是两种解决方案:

  • 使用该stackengine包,您将获得与周围文本相同大小的“注释”(用于列和行)。
  • 使用substack命令,它将\scriptsize默认;我将其更改为footnotesize

\hl我还有一个基于命令的易于自定义的突出显示命令\colorbox。它使用hlcolour表示文本,hlbgcolour使用 表示框的背景;您可以使用命令随意更改它们\colorlet

\documentclass{article}
\usepackage{amsmath}
\usepackage[x11names]{xcolor}
\usepackage{kbordermatrix}
\usepackage{stackengine}
\setstackEOL{\\}
\colorlet{hlbgcolour}{Thistle3!50!}
\colorlet{hlcolour}{VioletRed4}
\newcommand\hl[1]{\setlength\fboxsep{1.5pt}\colorbox{hlbgcolour}{\color{hlcolour}$#1 $}}

\begin{document}

\[
  \kbordermatrix{{}&{}&{}& \smash{\Shortstack{Column $ j $\\$ \downarrow $}} &{}&{} \\
    {} & a_{11} & \cdots & a_{1j} & \cdots & a_{1n} \\
    {} & \vdots & {} & \vdots & {} & \vdots \\
    \mbox{Row $i \rightarrow$ } & a_{i1} & \cdots & \hl{a_{ij}} & \cdots & a_{in} \\
    {} & \vdots & {} & \vdots & {} & \vdots \\
    {} & a_{m1} & \cdots & a_{mj} & \cdots & a_{mn}
  }
\]
\vskip4ex
\[
  \kbordermatrix{{}&{}&{}& \substack{\text{\footnotesize Column } j\\\downarrow} &{}&{} \\
    {} & a_{11} & \cdots & a_{1j} & \cdots & a_{1n} \\
    {} & \vdots & {} & \vdots & {} & \vdots \\
    \mbox{\everymath{\textstyle}\footnotesize Row $i \rightarrow$ } & a_{i1} & \cdots & \hl{a_{ij}} & \cdots & a_{in} \\
    {} & \vdots & {} & \vdots & {} & \vdots \\
    {} & a_{m1} & \cdots & a_{mj} & \cdots & a_{mn}
  }
\]

\end{document} 

在此处输入图片描述

答案2

你不需要kbordermatrix

\documentclass{article}
\usepackage{blkarray,mathtools}
\begin{document}

\[
\begin{blockarray}{r@{} *{5}{c}}
&&& \mathclap{\text{Column $j$}} \\
&&& \downarrow \\
\begin{block}{r@{}[*{5}{c}]}
 & a_{11} & \cdots & a_{1j} & \cdots & a_{1n} \\
 & \vdots & {} & \vdots & {} & \vdots \\
\text{Row $i \rightarrow{}$ }   & a_{i1} & \cdots & a_{ij} & \cdots & a_{in} \\
 & \vdots & {} & \vdots & {} & \vdots \\
 & \,a_{m1}\, & \cdots & a_{mj} & \cdots & \,a_{mn}\, \\
\end{block}
\end{blockarray}
\]
\end{document}

在此处输入图片描述

答案3

使用({bNiceMatrix}nicematrix需要多次编译)。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\[
\begin{bNiceMatrix}[renew-dots,xdots/shorten=6pt,first-row,first-col]
   & \Block{1-*}{\text{Column $j$} \\ \downarrow } \\
    & a_{11} & \cdots & a_{1j} & \cdots & a_{1n} \\
    & \vdots & {} & \vdots & {} & \vdots \\
   \text{Row $i \rightarrow$ }   & a_{i1} & \cdots & a_{ij} & \cdots & a_{in} \\
    & \vdots & {} & \vdots & {} & \vdots \\
    & \,a_{m1}\, & \cdots & a_{mj} & \cdots & \,a_{mn}\, \\
\end{bNiceMatrix}
\]

\end{document}

上述代码的输出

相关内容