我有这段代码,它输出一个块矩阵:
\documentclass[letterpaper,12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[spanish,es-tabla]{babel}
\usepackage{amsmath, nccmath, amsthm}
\usepackage{arydshln}
\newcommand{\biga}{\mbox{\normalfont\Large\bfseries $A_i$}}
\newcommand{\rvline}{\hspace*{-\arraycolsep}\vline\hspace*{-\arraycolsep}}
\begin{document}
\[
\begin{pmatrix}
\begin{matrix}
1 \\
1 \\
1
\end{matrix}
& \rvline
& \begin{matrix}
\begin{matrix}
a & b \\
\hline
\end{matrix}
& \rvline & a \\
\biga & \rvline &
\begin{matrix}
a \\
c
\end{matrix}
\end{matrix}
\end{pmatrix}
\]
\end{document}
我想用它做两件事。首先,
\newcommand{\biga}{\mbox{\normalfont\Large\bfseries $A_i$}}
以这样的方式进行改变,即i
每次使用时,我都可以将 $A_i$ 中的数字更改为不同的数字。- 将线条改为虚线。
我已经尝试了很多事情。
谢谢
答案1
以下是使用 来实现这一{pNiceMatrix}
目的的一种方法nicematrix
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\NewDocumentCommand{\MyMatrix}{m}
{
\begin{pNiceMatrix}
1 & a & b & a \\
1 & \Block{2-2}<\Large>{A_{#1}} & & a \\
1 & & & c
\CodeAfter
\tikz \draw [dotted] (1-|2) -- (4-|2)
(1-|4) -- (4-|4)
(2-|2) -- (2-|4) ;
\end{pNiceMatrix}
}
\begin{document}
$\MyMatrix{i}$\qquad $\MyMatrix{1}$
\end{document}
解释
该语法(i-|j)
指定(潜在的)水平线号i
和(潜在的)垂直线号相交的点j
。
\draw (point1) -- (point2) ;
是 Tikz 在两点之间画线的指令。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
$\begin{NiceMatrix}
1 & a & b & a \\
1 & \Block{2-2}<\Large>{A_1} & & a \\
1 & & & c
\CodeAfter
\tikz
\draw
(2-|2) circle (0.1mm) node [left] {\tiny \color{red} (2-$|$2)}
-- (2-|4) circle (0.1mm) node [right] {\tiny \color{red} (2-$|$4)} ;
\end{NiceMatrix}$
\end{document}
答案2
更改 \newcommand{\biga}{\mbox{\normalfont\Large\bfseries $A_i$}} ,以便每次使用时都可以将 $A_i$ 中的 i 更改为不同的数字。
\newcommand{\biga}[1][i]{\mbox{\normalfont\Large\bfseries $A_{#1}$}}
\newcommand 的一个可选附加参数,默认为“i”
默认用法:\biga
自定义索引:\biga[x]
无索引:\biga[]