矩阵 \llbracket, \rrbracket 和 \llparenthesis,\rrparenthesis 所有可能的代码是什么?

矩阵 \llbracket, \rrbracket 和 \llparenthesis,\rrparenthesis 所有可能的代码是什么?

1.我对矩阵感兴趣:

在此处输入图片描述

为了制作这个矩阵,我使用了以下代码(完整文档):

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{stmaryrd}
\newcommand{\bbrack}[1]{
\left\llbracket \begin{matrix} #1 \end{matrix} \right\rrbracket}
 \newenvironment{bbsmallmatrix}{
\left\llbracket\begin{smallmatrix}}{
\end{smallmatrix}\right\rrbracket}
 \begin{document}
\begin{equation} 
\bbrack{ A\\ B}
\end{equation}
\end{document}

还有哪些其他可能的代码可以构成相同的矩阵?

2.我想制作与之前相同风格的矩阵,但使用\llparenthesis\rrparenthesis。制作此矩阵的所有可能代码有哪些?

答案1

没有单一的方法可以做到这一点。我可以bbmatrix根据内容进行提议amsmath,并ppmatrix通过测量内容来构建,以便将括号推近彼此。

\documentclass{article}
\usepackage{amsmath,stmaryrd}

\makeatletter
\newenvironment{bbmatrix}
  {\left\llbracket\env@matrix}
  {\endmatrix\right\rrbracket}
\makeatother

\newlength{\ppmatrixdim}
\newlength{\ppmatrixdimtwo}
\newlength{\ppmatrixdimthree}
\newsavebox{\ppmatrixbox}
\AtBeginDocument{%
  \settoheight{\ppmatrixdimtwo}{$\begin{matrix} 0 \\ 0 \end{matrix}$}%
  \settoheight{\ppmatrixdimthree}{$\begin{matrix} 0 \\ 0 \\ 0 \end{matrix}$}%
}
\ExplSyntaxOn

\muskip_new:N \l_alezig_ppmatrix_muskip

\NewDocumentEnvironment{ppmatrix}{b}
 {
  \settoheight{\ppmatrixdim}{$\begin{matrix} #1 \end{matrix}$}
  \bool_case:nF
   {
    { \dim_compare_p:n { \ppmatrixdim < \ppmatrixdimtwo } }
      { \muskip_set:Nn \l_alezig_ppmatrix_muskip { -3mu } }
    { \dim_compare_p:n { \ppmatrixdim < \ppmatrixdimthree } }
      { \muskip_set:Nn \l_alezig_ppmatrix_muskip { -7mu } }
   }
   {
    \muskip_set:Nn \l_alezig_ppmatrix_muskip { -9mu }
   }
  \left(\mspace{\l_alezig_ppmatrix_muskip}\left(
  \begin{matrix} #1 \end{matrix}
  \right)\mspace{\l_alezig_ppmatrix_muskip}\right)
 }{}

\ExplSyntaxOff

\begin{document}

\begin{gather*}
\begin{bbmatrix} a \end{bbmatrix} \\
\begin{bbmatrix} a \\ b \end{bbmatrix} \\
\begin{bbmatrix} a \\ b \\ c \end{bbmatrix} \\
\begin{ppmatrix} a \end{ppmatrix} \\
\begin{ppmatrix} a \\ b \end{ppmatrix} \\
\begin{ppmatrix} a \\ b \\ c \end{ppmatrix} \\
\begin{ppmatrix} a \\ b \\ c \\ d \end{ppmatrix}
\end{gather*}

\end{document}

在此处输入图片描述

您可以尝试一下小版本。

答案2

以下是您可以做的事情nicematrix(但可能过度使用)。

\documentclass{article}
\usepackage{nicematrix}
\usepackage{stmaryrd}

\begin{document}

$\begin{NiceArrayWithDelims}{\llbracket}{\rrbracket}{c}
a \\ b \\ c 
\end{NiceArrayWithDelims}$

\bigskip
$\begin{NiceArray}{((c))}  
a \\ b \\ c 
\end{NiceArray}$

\end{document}

上述代码的输出

相关内容