Tikz 행렬을 배열처럼 보이도록 하려면 어떻게 해야 합니까?

Tikz 행렬을 배열처럼 보이도록 하려면 어떻게 해야 합니까?

다음 두 가지 행렬을 고려하십시오.

여기에 이미지 설명을 입력하세요

왼쪽의 행렬은 코드로 렌더링됩니다.

\left[
  \begin{array}{rrrr}
    1  & -32  & 0  & 15 \\
    16 & -138 & -3 & 5  \\
    4  & 14   & 11 & 19
  \end{array}
\right]

왼쪽에 있는 것은 다음과 같이 주어진다:

\begin{tikzpicture}
  \matrix[
  , matrix of math nodes
  , left delimiter = {[}
  , right delimiter = {]}
  ] (m)
  {
    1  & -32  & 0  & 15 \\
    16 & -138 & -3 & 5  \\
    4  & 14   & 11 & 19 \\
  };
\end{tikzpicture}

오른쪽에 있는 것이 왼쪽에 있는 것과 같게 보이도록 하고 싶습니다. 몇 가지 명백한 차이점은 다음과 같습니다.

  1. 왼쪽 행렬의 열은 오른쪽 정렬됩니다.
  2. 공백은 두 행렬에서 다르게 분포됩니다.

오른쪽 행렬을 왼쪽 행렬과 더 비슷하게 만들려면 어떻게 해야 하나요?

답변1

당신은 할 수 있습니다eqparbox노드의 너비를 동일하게 만드는 데 사용, 내용을 올바르게 정렬합니다. 나머지는 일부 키를 변경하여 수행할 수 있습니다. 아직 수행하지 않았다면 nicematrix훌륭하고 잘 문서화된 여러 옵션을 제공하는 패키지를 살펴보십시오.

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usepackage{eqparbox}
\newbox\eqnodebox
\tikzset{r/.style={execute at begin
    node={\setbox\eqnodebox=\hbox\bgroup$},
    execute at end node={$\egroup\eqmakebox[#1-\tikzmatrixname-\the\pgfmatrixcurrentcolumn][r]{\copy\eqnodebox}}},
    r/.default=R}
\begin{document}
\begin{tikzpicture}
  \matrix[matrix of nodes,cells={nodes={r,inner sep=2pt}},
  inner xsep=0pt,inner ysep=1pt,%<- controls the distance and height of the delimiters
  column sep=1.5pt,
  left delimiter = {[},right delimiter = {]}] (m)
  {
    1  & -32  & 0  & 15 \\
    16 & -138 & -3 & 5  \\
    4  & 14   & 11 & 19 \\
  };
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보