Tikz 中的矩阵以中心数字(尤其是负数)表示

Tikz 中的矩阵以中心数字(尤其是负数)表示

我的矩阵中的负数存在以下问题:

\begin{tikzpicture}[>=latex]
\matrix (m) [matrix of math nodes,
left delimiter=(,right delimiter=),
inner ysep=0pt, column sep=0.8em, row sep = 0.65em,
nodes={inner sep=0.3em,text width=0.85em,align=center}
]
{
    1 & 2 & 1 &  0\\
    0 & -2 & 1 & 0\\
    0 & 0 & 0 & 0\\
};
\path ($(m-1-3.north east)+(0.3em,0)$) edge[thick] ($(m-3-3.south east -| m-1-3.north east)+(0.3em,0)$);
\end{tikzpicture} 

我尝试了 anchor = center 以及 align = center,但负数看起来仍然很别扭。它没有居中。

我遗漏了哪个选项?谢谢你的帮助!

答案1

这里的问题不是文本对齐,你在这一侧所做的是正确的。问题来自文本宽度太小,无法容纳 -2。减少内部分隔符并使用更大的文本宽度:

中心数字矩阵

\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{matrix,calc}

\begin{document}

    \begin{tikzpicture}[>=latex]
        \matrix (m) [matrix of math nodes,
        left delimiter=(,right delimiter=),
        inner ysep=0pt, column sep=0.8em, row sep = 0.65em,
        nodes={inner sep=0.1em,outer sep=0,text width=1.2em,align=center}
        ]
        {
            1 & 2 & 1 &  0\\
            0 & -2 & 1 & 0\\
            0 & 0 & 0 & 0\\
        };
        \path ($(m-1-3.north east)+(0.3em,0)$) edge[thick] ($(m-3-3.south east -| m-1-3.north east)+(0.3em,0)$);
    \end{tikzpicture}

\end{document}

如果您想要获得更宽或更高的矩阵,也可以分别使用inner ysep和。inner xsep

答案2

你可以找到答案这里

在此处输入图片描述

照片来自Tikz PGF 手册第 143 页。

尝试将您的代码和此代码结合起来。

此致

相关内容