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}
您可以尝试一下小版本。