包括“tikzpicture”的方程式

包括“tikzpicture”的方程式

使用以下代码

\documentclass[12pt,a4paper]{report}
\usepackage{amsfonts,amsmath,amssymb,graphicx,amsthm,xcolor,tikz}
\usetikzlibrary{calc,matrix}

        \begin{document}
\begin{tikzpicture}[
strip/.style = {
    draw=#1,%color
    line width=1em, opacity=0.2,
    shorten <=-2mm,shorten >=-2mm,
                            },
                    ]
\matrix (mtrx)  [matrix of math nodes,
                 column sep=1em,
                 nodes={text height=1ex,text width=2ex}]
{
|[red]|+
    & |[red]|+
          & \color{red}+\color{blue}-
                & |[blue]|-
                      & |[blue]|-   \\[3.3mm,between origins]
a_1 & b_1 & c_1 & a_1 & a_2         \\
a_2 & b_2 & c_2 & a_2 & b_2         \\
a_3 & b_3 & c_3 & a_3 & b_3         \\
};
\draw[thick] (mtrx-2-1.north) -| (mtrx-4-1.south west)
                              -- (mtrx-4-1.south);
\draw[thick] (mtrx-2-3.north) -| (mtrx-4-3.south east)
                              -- (mtrx-4-3.south);
\path[draw,strip=blue]
    (mtrx-4-1.center) edge (mtrx-2-3.center)
    (mtrx-4-2.center) edge (mtrx-2-4.center)
    (mtrx-4-3.center)  --  (mtrx-2-5.center);
\path[draw,strip=red]
    (mtrx-2-1.center) edge (mtrx-4-3.center)
    (mtrx-2-2.center) edge (mtrx-4-4.center)
    (mtrx-2-3.center)  --  (mtrx-4-5.center);
\end{tikzpicture}
    \end{document}

我明白了

在此处输入图片描述

但是我想用 替换[]||改变减号的位置-。我还想将它们添加到等式中,如图所示

在此处输入图片描述

我尝试过,\begin{align*} .. & = \\ &= \end{align*}但是没有用。

答案1

括号是手动绘制的,因此您只需修改(简化)它们的绘制方式即可。例如\draw[thick] (mtrx-4-1.south west) -- (mtrx-2-1.north west);——从一个单元格的左下角到另一个单元格的左上角绘制一条线。

要移动减号,实际上只需将代码中的减号移动到矩阵末尾的新行即可。

还请注意添加的baseline键,如在对齐或聚集环境中使用 tikzpicture 矩阵,确实获得正确的垂直对齐。

最后,align*环境与 TikZ 矩阵发生冲突,因为对于两者而言,&字符具有特殊含义。要解决此问题,您可以使用 告诉 TikZ 使用其他内容作为列分隔符ampersand replacement。通常使用\&,但您也可以使用其他宏。例如,在下面的示例中,我将其添加ampersand replacement=\&到选项中,并在矩阵中\matrix使用\&a_1 \& b_1 \& c_1 \& a_1 \& a_2 \\

在此处输入图片描述

\documentclass[12pt,a4paper]{report}
\usepackage{amsfonts,amsmath,amssymb,amsthm,tikz}
\usetikzlibrary{calc,matrix}

\begin{document}
\begin{align*}
D &=
\begin{tikzpicture}[
baseline=-\the\dimexpr\fontdimen22\textfont2\relax,
strip/.style = {
    draw=#1,%color
    line width=1em, opacity=0.2,
    shorten <=-2mm,shorten >=-2mm,
                            },
                    ]
\matrix (mtrx)  [matrix of math nodes,
                 column sep=1em,
                 nodes={text height=1ex,text width=2ex},
                 ampersand replacement=\&]
{
|[red]|+  \& |[red]|+  \& |[red]| +
 \\[3.3mm,between origins]
a_1 \& b_1 \& c_1 \& a_1 \& a_2         \\
a_2 \& b_2 \& c_2 \& a_2 \& b_2         \\
a_3 \& b_3 \& c_3 \& a_3 \& b_3         \\
|[blue]|- \& |[blue]|- \& |[blue]|- \\
};
\draw[thick]  (mtrx-4-1.south west) -- (mtrx-2-1.north west);
\draw[thick] (mtrx-4-3.south east)  -- (mtrx-2-3.north east);
\path[draw,strip=blue]
    (mtrx-4-1.center) edge (mtrx-2-3.center)
    (mtrx-4-2.center) edge (mtrx-2-4.center)
    (mtrx-4-3.center)  --  (mtrx-2-5.center);
\path[draw,strip=red]
    (mtrx-2-1.center) edge (mtrx-4-3.center)
    (mtrx-2-2.center) edge (mtrx-4-4.center)
    (mtrx-2-3.center)  --  (mtrx-4-5.center);
\end{tikzpicture} \\
 &= a+b+c\dots
\end{align*}
\end{document}

相关内容