使用 TikZ 注释一般的 Sylvester 矩阵

使用 TikZ 注释一般的 Sylvester 矩阵

我正在尝试注释以下一般西尔维斯特矩阵

西尔维斯特矩阵

右侧括号内标明第一个块为“m 行”,第二个块为“n 行”。我尝试使用以下代码来实现这一点

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing,calc,fit,backgrounds}
\begin{document}

\pgfmathsetmacro{\myscale}{2}
\pgfkeys{tikz/mymatrixbrace/.style={decorate,thick}}

%\[
%R_{f,g} =
\begin{tikzpicture}
    \matrix[matrix of math nodes,
            left delimiter=(,
            right delimiter=),
            %nodes={draw},
            row sep=10pt,
            column sep=10pt] (m) {%
    a_0 & a_1    &&         &         && a_{n-1} & a_n     &        && \null  \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        && a_0     & a_1     &&         &         &        &a_{n-1}& a_{n} \\
    b_0 & b_1    && b_{m-1} & b_m     &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
\null   &        &&         &         && b_{0}   & b_{1}   &        &b_{m-1}& b_{m}  \\
                         };

        \draw[] (m-1-1) -- (m-4-4) -- cycle;
        \draw[] (m-4-11) -- (m-1-8) -- cycle;
        \draw[] (m-5-1) -- (m-13-7) -- cycle;
        \draw[] (m-13-11) -- (m-5-5) -- cycle;
        \draw[dashed] (m-1-7) -- (m-13-7) -- cycle;
        \draw[dotted] (m-1-2) -- (m-1-7) -- cycle;
        \draw[dotted] (m-4-5) -- (m-4-10) -- cycle;
        \draw[dotted] (m-5-2) -- (m-5-4) -- cycle;
        \draw[dotted] (m-13-8) -- (m-13-10) -- cycle;

%    \begin{scope}[every node/.append style={scale=\myscale,transform shape},very thick]
%        \draw[mymatrixbrace] (m.east|-m-1-1.north east) -- node[right=2pt] {$m$ lines} (m.east|-m-4-1.south east);
%        \draw[mymatrixbrace] (m.east|-m-5-1.north east) -- node[right=2pt] {$n$ lines} (m.east|-m-13-1.south east);
%    \end{scope}

\end{tikzpicture}
%\]

\end{document}

(注释代码行被注释掉),部分代码来自这里,但我在使它工作时遇到了问题。

答案1

在此处输入图片描述

我修改了你的距离;我认为矩阵元素之间最好有相对间隔距离。我添加了baseline=0pt让矩阵在方程中正确对齐以及括号的修饰。

代码

\documentclass[11pt, margin=1cm]{standalone} %{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing, calc, fit, backgrounds}
\begin{document}

$
R_{f,g} =
\begin{tikzpicture}[baseline=0pt]
  \matrix[matrix of math nodes,
  left delimiter=(,
  right delimiter=),
  % nodes={draw},
  row sep=1.25ex,
  column sep=2ex,
  nodes in empty cells] (m) {%
    a_0 & a_1    &&         &         && a_{n-1} & a_n     &        && \null  \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        && a_0     & a_1     &&         &         &        &a_{n-1}& a_{n} \\
    b_0 & b_1    && b_{m-1} & b_m     &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        &        &&         &         &&         &         &        &&        \\
        \null
        &        &&         &         && b_{0}   & b_{1}   &        &b_{m-1}& b_{m}  \\
  };
  \draw[] (m-1-1) -- (m-4-4);
  \draw[] (m-4-11) -- (m-1-8);
  \draw[] (m-5-1) -- (m-13-7);
  \draw[] (m-13-11) -- (m-5-5);
  \draw[dashed] (m-1-7) -- (m-13-7);
  \draw[dotted] (m-1-2) -- (m-1-7);
  \draw[dotted] (m-4-5) -- (m-4-10);
  \draw[dotted] (m-5-2) -- (m-5-4);
  \draw[dotted] (m-13-8) -- (m-13-10);

  \draw[decorate, decoration={brace, amplitude=1ex, raise=3em}]
  (m-1-11.north) -- (m-4-11.south)
  node[text=black, midway, right, xshift=3.5em, scale=.9]
  {$m$ rows};    
  \draw[decorate, decoration={brace, amplitude=1ex, raise=3em}]
  (m-5-11.north) -- (m-13-11.south)
  node[text=black, midway, right, xshift=3.5em, scale=.9]
  {$n$ rows};    
\end{tikzpicture}
$
\end{document}       

相关内容