
Betrachten Sie die folgenden beiden Matrizen:
Die Matrix links wird mit dem Code gerendert
\left[
\begin{array}{rrrr}
1 & -32 & 0 & 15 \\
16 & -138 & -3 & 5 \\
4 & 14 & 11 & 19
\end{array}
\right]
Die linke Seite ist gegeben durch:
\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}
Ich möchte, dass das rechte Bild genauso aussieht wie das linke. Einige offensichtliche Unterschiede sind:
- Die Spalten der Matrix auf der linken Seite sind rechtsbündig.
- Die Leerzeichen sind in den beiden Matrizen unterschiedlich verteilt.
Was kann ich tun, damit die Matrix auf der rechten Seite mehr wie die Matrix auf der linken Seite aussieht?
Antwort1
Du kannstverwenden eqparbox
, um die Knoten gleich breit zu machen, und den Inhalt beispielsweise richtig ausrichten. Der Rest kann durch Ändern einiger Schlüssel erledigt werden. Wenn Sie dies noch nicht getan haben, sehen Sie sich das nicematrix
Paket an, das eine Reihe netter und gut dokumentierter Optionen bietet.
\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}