TikZ: Align array of matrices
Clash Royale CLAN TAG#URR8PPP
The following code:
documentclass[tikz,border=1mm]standalone
usepackagetikz
usetikzlibrarymatrix, positioning
tikzset
matrixstyle/.style=
matrix of nodes,
nodes=
draw
begindocument
begintikzpicture
matrix (M) [matrixstyle]
.1 & .1 \
.1 & .1 \
;
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
matrix (M11) [matrixstyle]
.1 & .0 \
.5 & .0 \
;
matrix (M12) [matrixstyle, right = 0cm of M11]
.2 & .0 \
.3 & .9 \
;
matrix (M21) [matrixstyle, below = 0cm of M11]
.0 & .0 \
.0 & .2 \
;
matrix (M22) [matrixstyle, right = 0cm of M21]
.3 & .0 \
.3 & .9 \
;
endscope
matrix (N) [matrixstyle, left = 1cm of MA.west]
.2 & .2 \
.2 & .2 \
;
endtikzpicture
enddocument
produces the following output:
The output should show six matrices. Four in the middle. And one matrix each on the right and left side of the matrix array. However, I did not manage to place the matrix M to the right of the matrix array MA. The error is probably in the following line
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
What is the right way to do it? Why does my approach not work?
tikz-pgf
add a comment |
The following code:
documentclass[tikz,border=1mm]standalone
usepackagetikz
usetikzlibrarymatrix, positioning
tikzset
matrixstyle/.style=
matrix of nodes,
nodes=
draw
begindocument
begintikzpicture
matrix (M) [matrixstyle]
.1 & .1 \
.1 & .1 \
;
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
matrix (M11) [matrixstyle]
.1 & .0 \
.5 & .0 \
;
matrix (M12) [matrixstyle, right = 0cm of M11]
.2 & .0 \
.3 & .9 \
;
matrix (M21) [matrixstyle, below = 0cm of M11]
.0 & .0 \
.0 & .2 \
;
matrix (M22) [matrixstyle, right = 0cm of M21]
.3 & .0 \
.3 & .9 \
;
endscope
matrix (N) [matrixstyle, left = 1cm of MA.west]
.2 & .2 \
.2 & .2 \
;
endtikzpicture
enddocument
produces the following output:
The output should show six matrices. Four in the middle. And one matrix each on the right and left side of the matrix array. However, I did not manage to place the matrix M to the right of the matrix array MA. The error is probably in the following line
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
What is the right way to do it? Why does my approach not work?
tikz-pgf
add a comment |
The following code:
documentclass[tikz,border=1mm]standalone
usepackagetikz
usetikzlibrarymatrix, positioning
tikzset
matrixstyle/.style=
matrix of nodes,
nodes=
draw
begindocument
begintikzpicture
matrix (M) [matrixstyle]
.1 & .1 \
.1 & .1 \
;
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
matrix (M11) [matrixstyle]
.1 & .0 \
.5 & .0 \
;
matrix (M12) [matrixstyle, right = 0cm of M11]
.2 & .0 \
.3 & .9 \
;
matrix (M21) [matrixstyle, below = 0cm of M11]
.0 & .0 \
.0 & .2 \
;
matrix (M22) [matrixstyle, right = 0cm of M21]
.3 & .0 \
.3 & .9 \
;
endscope
matrix (N) [matrixstyle, left = 1cm of MA.west]
.2 & .2 \
.2 & .2 \
;
endtikzpicture
enddocument
produces the following output:
The output should show six matrices. Four in the middle. And one matrix each on the right and left side of the matrix array. However, I did not manage to place the matrix M to the right of the matrix array MA. The error is probably in the following line
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
What is the right way to do it? Why does my approach not work?
tikz-pgf
The following code:
documentclass[tikz,border=1mm]standalone
usepackagetikz
usetikzlibrarymatrix, positioning
tikzset
matrixstyle/.style=
matrix of nodes,
nodes=
draw
begindocument
begintikzpicture
matrix (M) [matrixstyle]
.1 & .1 \
.1 & .1 \
;
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
matrix (M11) [matrixstyle]
.1 & .0 \
.5 & .0 \
;
matrix (M12) [matrixstyle, right = 0cm of M11]
.2 & .0 \
.3 & .9 \
;
matrix (M21) [matrixstyle, below = 0cm of M11]
.0 & .0 \
.0 & .2 \
;
matrix (M22) [matrixstyle, right = 0cm of M21]
.3 & .0 \
.3 & .9 \
;
endscope
matrix (N) [matrixstyle, left = 1cm of MA.west]
.2 & .2 \
.2 & .2 \
;
endtikzpicture
enddocument
produces the following output:
The output should show six matrices. Four in the middle. And one matrix each on the right and left side of the matrix array. However, I did not manage to place the matrix M to the right of the matrix array MA. The error is probably in the following line
beginscope [local bounding box=MA, shift=(M.west), left = 0cm of M.west]
What is the right way to do it? Why does my approach not work?
tikz-pgf
tikz-pgf
edited Jan 11 at 18:35
Bernard
168k771195
168k771195
asked Jan 11 at 18:27
SamuelSamuel
537211
537211
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
like this?
matrices you can consider as nodes, so their positioning is with positioning
library is straightforward:
documentclass[tikz,border=1mm]standalone
usetikzlibrarymatrix, positioning
begindocument
begintikzpicture[
node distance = 1mm and 2mm,
every matrix/.style = matrix of nodes,
nodes=draw,
column sep=-pgflinewidth,
row sep=-pgflinewidth
]
matrix (m1)
.2 & .2 \
.2 & .2 \
;
matrix (m11) [above right=of m1.east]
.1 & .0 \
.5 & .0 \
;
matrix (m12) [right=of m11]
.1 & .1 \
.1 & .1 \
;
matrix (m21) [below right= of m1.east]
.0 & .0 \
.0 & .2 \
;
matrix (m22) [right = of m21]
.3 & .0 \
.3 & .9 \
;
matrix (m2) [right = of m1 -| m12.east]
.2 & .0 \
.3 & .9 \
;
endtikzpicture
enddocument
What doesright = of m1 -| m12.east
mean? Especially the-|
part.
– Samuel
Jan 12 at 16:21
Is it possible to define the four matrices in the middle as a single object that can be moved and resized? I want to resize the four matrices in the middle to have the same size as the matrices on the left and on the right.
– Samuel
Jan 12 at 16:27
@Samuel, this is new question in which you need to show (by sketch), how you like scale and shift a group of matrices. probably solution require a different solution as is shown in both answers. i think, that both answers perfectly solve the problem described in this question, therefore it is time, that you accept one of them.
– Zarko
Jan 13 at 0:21
add a comment |
Although not exactly the same, something very similar can be done with some tabular
and without TiKZ
.
documentclassarticle
newcommandmytab[4]%
begintabular[c]c
hline
#1\hline
#3\hline
endtabular
begindocument
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
EDIT: or even better with ytableau
package
documentclassarticle
usepackageytableau
newcommandmytab[4]%
beginytableau
#1\
#3\
endytableau
begindocument
ytableausetupcentertableaux
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f469745%2ftikz-align-array-of-matrices%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
like this?
matrices you can consider as nodes, so their positioning is with positioning
library is straightforward:
documentclass[tikz,border=1mm]standalone
usetikzlibrarymatrix, positioning
begindocument
begintikzpicture[
node distance = 1mm and 2mm,
every matrix/.style = matrix of nodes,
nodes=draw,
column sep=-pgflinewidth,
row sep=-pgflinewidth
]
matrix (m1)
.2 & .2 \
.2 & .2 \
;
matrix (m11) [above right=of m1.east]
.1 & .0 \
.5 & .0 \
;
matrix (m12) [right=of m11]
.1 & .1 \
.1 & .1 \
;
matrix (m21) [below right= of m1.east]
.0 & .0 \
.0 & .2 \
;
matrix (m22) [right = of m21]
.3 & .0 \
.3 & .9 \
;
matrix (m2) [right = of m1 -| m12.east]
.2 & .0 \
.3 & .9 \
;
endtikzpicture
enddocument
What doesright = of m1 -| m12.east
mean? Especially the-|
part.
– Samuel
Jan 12 at 16:21
Is it possible to define the four matrices in the middle as a single object that can be moved and resized? I want to resize the four matrices in the middle to have the same size as the matrices on the left and on the right.
– Samuel
Jan 12 at 16:27
@Samuel, this is new question in which you need to show (by sketch), how you like scale and shift a group of matrices. probably solution require a different solution as is shown in both answers. i think, that both answers perfectly solve the problem described in this question, therefore it is time, that you accept one of them.
– Zarko
Jan 13 at 0:21
add a comment |
like this?
matrices you can consider as nodes, so their positioning is with positioning
library is straightforward:
documentclass[tikz,border=1mm]standalone
usetikzlibrarymatrix, positioning
begindocument
begintikzpicture[
node distance = 1mm and 2mm,
every matrix/.style = matrix of nodes,
nodes=draw,
column sep=-pgflinewidth,
row sep=-pgflinewidth
]
matrix (m1)
.2 & .2 \
.2 & .2 \
;
matrix (m11) [above right=of m1.east]
.1 & .0 \
.5 & .0 \
;
matrix (m12) [right=of m11]
.1 & .1 \
.1 & .1 \
;
matrix (m21) [below right= of m1.east]
.0 & .0 \
.0 & .2 \
;
matrix (m22) [right = of m21]
.3 & .0 \
.3 & .9 \
;
matrix (m2) [right = of m1 -| m12.east]
.2 & .0 \
.3 & .9 \
;
endtikzpicture
enddocument
What doesright = of m1 -| m12.east
mean? Especially the-|
part.
– Samuel
Jan 12 at 16:21
Is it possible to define the four matrices in the middle as a single object that can be moved and resized? I want to resize the four matrices in the middle to have the same size as the matrices on the left and on the right.
– Samuel
Jan 12 at 16:27
@Samuel, this is new question in which you need to show (by sketch), how you like scale and shift a group of matrices. probably solution require a different solution as is shown in both answers. i think, that both answers perfectly solve the problem described in this question, therefore it is time, that you accept one of them.
– Zarko
Jan 13 at 0:21
add a comment |
like this?
matrices you can consider as nodes, so their positioning is with positioning
library is straightforward:
documentclass[tikz,border=1mm]standalone
usetikzlibrarymatrix, positioning
begindocument
begintikzpicture[
node distance = 1mm and 2mm,
every matrix/.style = matrix of nodes,
nodes=draw,
column sep=-pgflinewidth,
row sep=-pgflinewidth
]
matrix (m1)
.2 & .2 \
.2 & .2 \
;
matrix (m11) [above right=of m1.east]
.1 & .0 \
.5 & .0 \
;
matrix (m12) [right=of m11]
.1 & .1 \
.1 & .1 \
;
matrix (m21) [below right= of m1.east]
.0 & .0 \
.0 & .2 \
;
matrix (m22) [right = of m21]
.3 & .0 \
.3 & .9 \
;
matrix (m2) [right = of m1 -| m12.east]
.2 & .0 \
.3 & .9 \
;
endtikzpicture
enddocument
like this?
matrices you can consider as nodes, so their positioning is with positioning
library is straightforward:
documentclass[tikz,border=1mm]standalone
usetikzlibrarymatrix, positioning
begindocument
begintikzpicture[
node distance = 1mm and 2mm,
every matrix/.style = matrix of nodes,
nodes=draw,
column sep=-pgflinewidth,
row sep=-pgflinewidth
]
matrix (m1)
.2 & .2 \
.2 & .2 \
;
matrix (m11) [above right=of m1.east]
.1 & .0 \
.5 & .0 \
;
matrix (m12) [right=of m11]
.1 & .1 \
.1 & .1 \
;
matrix (m21) [below right= of m1.east]
.0 & .0 \
.0 & .2 \
;
matrix (m22) [right = of m21]
.3 & .0 \
.3 & .9 \
;
matrix (m2) [right = of m1 -| m12.east]
.2 & .0 \
.3 & .9 \
;
endtikzpicture
enddocument
edited Jan 11 at 19:00
answered Jan 11 at 18:43
ZarkoZarko
123k865161
123k865161
What doesright = of m1 -| m12.east
mean? Especially the-|
part.
– Samuel
Jan 12 at 16:21
Is it possible to define the four matrices in the middle as a single object that can be moved and resized? I want to resize the four matrices in the middle to have the same size as the matrices on the left and on the right.
– Samuel
Jan 12 at 16:27
@Samuel, this is new question in which you need to show (by sketch), how you like scale and shift a group of matrices. probably solution require a different solution as is shown in both answers. i think, that both answers perfectly solve the problem described in this question, therefore it is time, that you accept one of them.
– Zarko
Jan 13 at 0:21
add a comment |
What doesright = of m1 -| m12.east
mean? Especially the-|
part.
– Samuel
Jan 12 at 16:21
Is it possible to define the four matrices in the middle as a single object that can be moved and resized? I want to resize the four matrices in the middle to have the same size as the matrices on the left and on the right.
– Samuel
Jan 12 at 16:27
@Samuel, this is new question in which you need to show (by sketch), how you like scale and shift a group of matrices. probably solution require a different solution as is shown in both answers. i think, that both answers perfectly solve the problem described in this question, therefore it is time, that you accept one of them.
– Zarko
Jan 13 at 0:21
What does
right = of m1 -| m12.east
mean? Especially the -|
part.– Samuel
Jan 12 at 16:21
What does
right = of m1 -| m12.east
mean? Especially the -|
part.– Samuel
Jan 12 at 16:21
Is it possible to define the four matrices in the middle as a single object that can be moved and resized? I want to resize the four matrices in the middle to have the same size as the matrices on the left and on the right.
– Samuel
Jan 12 at 16:27
Is it possible to define the four matrices in the middle as a single object that can be moved and resized? I want to resize the four matrices in the middle to have the same size as the matrices on the left and on the right.
– Samuel
Jan 12 at 16:27
@Samuel, this is new question in which you need to show (by sketch), how you like scale and shift a group of matrices. probably solution require a different solution as is shown in both answers. i think, that both answers perfectly solve the problem described in this question, therefore it is time, that you accept one of them.
– Zarko
Jan 13 at 0:21
@Samuel, this is new question in which you need to show (by sketch), how you like scale and shift a group of matrices. probably solution require a different solution as is shown in both answers. i think, that both answers perfectly solve the problem described in this question, therefore it is time, that you accept one of them.
– Zarko
Jan 13 at 0:21
add a comment |
Although not exactly the same, something very similar can be done with some tabular
and without TiKZ
.
documentclassarticle
newcommandmytab[4]%
begintabular[c]c
hline
#1\hline
#3\hline
endtabular
begindocument
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
EDIT: or even better with ytableau
package
documentclassarticle
usepackageytableau
newcommandmytab[4]%
beginytableau
#1\
#3\
endytableau
begindocument
ytableausetupcentertableaux
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
add a comment |
Although not exactly the same, something very similar can be done with some tabular
and without TiKZ
.
documentclassarticle
newcommandmytab[4]%
begintabular[c]c
hline
#1\hline
#3\hline
endtabular
begindocument
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
EDIT: or even better with ytableau
package
documentclassarticle
usepackageytableau
newcommandmytab[4]%
beginytableau
#1\
#3\
endytableau
begindocument
ytableausetupcentertableaux
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
add a comment |
Although not exactly the same, something very similar can be done with some tabular
and without TiKZ
.
documentclassarticle
newcommandmytab[4]%
begintabular[c]c
hline
#1\hline
#3\hline
endtabular
begindocument
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
EDIT: or even better with ytableau
package
documentclassarticle
usepackageytableau
newcommandmytab[4]%
beginytableau
#1\
#3\
endytableau
begindocument
ytableausetupcentertableaux
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
Although not exactly the same, something very similar can be done with some tabular
and without TiKZ
.
documentclassarticle
newcommandmytab[4]%
begintabular[c]c
hline
#1\hline
#3\hline
endtabular
begindocument
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
EDIT: or even better with ytableau
package
documentclassarticle
usepackageytableau
newcommandmytab[4]%
beginytableau
#1\
#3\
endytableau
begindocument
ytableausetupcentertableaux
mytab.2.2.2.2
begintabular[c]cccc
mytab.1.0.5.2 & mytab.1.1.1.1
\[.5cm]
mytab.0.0.0.2 & mytab.3.0.3.9
endtabular
mytab.2.0.3.9
enddocument
edited Jan 11 at 19:44
answered Jan 11 at 19:22
IgnasiIgnasi
92.7k4166308
92.7k4166308
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f469745%2ftikz-align-array-of-matrices%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown