Matrix with uneven element lengths Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)Separating matrix elements by linesMatrix with uneven element lengths with added rows/columnsAutomatically find which nodes are closest, to aid drawing lines within a TikZ matrixSummation of matrix elements / table cellsLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?TikZ/ERD: node (=Entity) label on the insideTikZ: Drawing an arc from an intersection to an intersectionAdjusting edge alignment and positioning of fitted nodeLine up nested tikz enviroments or how to get rid of themAutomatically find which nodes are closest, to aid drawing lines within a TikZ matrix
Using audio cues to encourage good posture
Did Deadpool rescue all of the X-Force?
How can I reduce the gap between left and right of cdot with a macro?
Can a new player join a group only when a new campaign starts?
Denied boarding although I have proper visa and documentation. To whom should I make a complaint?
Is there hard evidence that the grant peer review system performs significantly better than random?
What is the topology associated with the algebras for the ultrafilter monad?
Is it ethical to give a final exam after the professor has quit before teaching the remaining chapters of the course?
Hangman Game with C++
Do any jurisdictions seriously consider reclassifying social media websites as publishers?
Is it possible for SQL statements to execute concurrently within a single session in SQL Server?
How would a mousetrap for use in space work?
Why is the AVR GCC compiler using a full `CALL` even though I have set the `-mshort-calls` flag?
Is it fair for a professor to grade us on the possession of past papers?
What is a fractional matching?
Most bit efficient text communication method?
Illegal assignment from sObject to Id
Chinese Seal on silk painting - what does it mean?
How to tell that you are a giant?
How does the math work when buying airline miles?
What is the difference between globalisation and imperialism?
Do I really need to have a message in a novel to appeal to readers?
How do I use the new nonlinear finite element in Mathematica 12 for this equation?
How fail-safe is nr as stop bytes?
Matrix with uneven element lengths
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)Separating matrix elements by linesMatrix with uneven element lengths with added rows/columnsAutomatically find which nodes are closest, to aid drawing lines within a TikZ matrixSummation of matrix elements / table cellsLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?TikZ/ERD: node (=Entity) label on the insideTikZ: Drawing an arc from an intersection to an intersectionAdjusting edge alignment and positioning of fitted nodeLine up nested tikz enviroments or how to get rid of themAutomatically find which nodes are closest, to aid drawing lines within a TikZ matrix
From the answer to this question
When editing the elements of the matrix to become uneven in length, the display of the matrix becomes disturbed. How can this be solved
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usepackagepgfplots
usetikzlibraryarrows, arrows.meta, positioning, calc, intersections, decorations.pathreplacing, decorations.pathmorphing, decorations.markings, shapes, shapes.misc, shapes.symbols, shapes.geometric, patterns, backgrounds, trees, shadows, fit,matrix
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
foreach i in 1,...,6
draw ($(x-1-i.north west)+(-5pt,5pt)$) -- ($(x-5-i.south west)+(-5pt,-5pt)$);%vertical lines
foreach i in 1,...,5
draw ($(x-i-1.south west)+(-5pt,-5pt)$) -- ($(x-i-6.south east)+(5pt,-5pt)$);%horizontal lines
draw ($(x-1-1.north west)+(-5pt,5pt)$) -| ($(x-5-6.south east)+(5pt,-5pt)$);%upper and right borders
endtikzpicture
endframe
enddocument
tikz-pgf beamer tikz-matrix
add a comment |
From the answer to this question
When editing the elements of the matrix to become uneven in length, the display of the matrix becomes disturbed. How can this be solved
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usepackagepgfplots
usetikzlibraryarrows, arrows.meta, positioning, calc, intersections, decorations.pathreplacing, decorations.pathmorphing, decorations.markings, shapes, shapes.misc, shapes.symbols, shapes.geometric, patterns, backgrounds, trees, shadows, fit,matrix
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
foreach i in 1,...,6
draw ($(x-1-i.north west)+(-5pt,5pt)$) -- ($(x-5-i.south west)+(-5pt,-5pt)$);%vertical lines
foreach i in 1,...,5
draw ($(x-i-1.south west)+(-5pt,-5pt)$) -- ($(x-i-6.south east)+(5pt,-5pt)$);%horizontal lines
draw ($(x-1-1.north west)+(-5pt,5pt)$) -| ($(x-5-6.south east)+(5pt,-5pt)$);%upper and right borders
endtikzpicture
endframe
enddocument
tikz-pgf beamer tikz-matrix
marmot's code [tex.stackexchange.com/a/484608/31034] runs well for me.
– ferahfeza
Apr 14 at 9:40
@ferahfezaWhenthe matrix elements are lengthy, they are displayed beyond borders
– Hany
Apr 14 at 10:17
@ferahfezaPlease refer to this image when applying marmot`s code i.stack.imgur.com/aC1bQ.jpg
– Hany
Apr 14 at 10:23
@Hany The border is not a feature of the matrix. It is added manually. In this case, you have to find another way to draw the borders.
– JouleV
Apr 14 at 13:49
One can certainly add lines by fitting the nodes on both sides and drawing lines in the middle between these fits, see tex.stackexchange.com/a/443198/121799.
– marmot
Apr 14 at 14:25
add a comment |
From the answer to this question
When editing the elements of the matrix to become uneven in length, the display of the matrix becomes disturbed. How can this be solved
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usepackagepgfplots
usetikzlibraryarrows, arrows.meta, positioning, calc, intersections, decorations.pathreplacing, decorations.pathmorphing, decorations.markings, shapes, shapes.misc, shapes.symbols, shapes.geometric, patterns, backgrounds, trees, shadows, fit,matrix
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
foreach i in 1,...,6
draw ($(x-1-i.north west)+(-5pt,5pt)$) -- ($(x-5-i.south west)+(-5pt,-5pt)$);%vertical lines
foreach i in 1,...,5
draw ($(x-i-1.south west)+(-5pt,-5pt)$) -- ($(x-i-6.south east)+(5pt,-5pt)$);%horizontal lines
draw ($(x-1-1.north west)+(-5pt,5pt)$) -| ($(x-5-6.south east)+(5pt,-5pt)$);%upper and right borders
endtikzpicture
endframe
enddocument
tikz-pgf beamer tikz-matrix
From the answer to this question
When editing the elements of the matrix to become uneven in length, the display of the matrix becomes disturbed. How can this be solved
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usepackagepgfplots
usetikzlibraryarrows, arrows.meta, positioning, calc, intersections, decorations.pathreplacing, decorations.pathmorphing, decorations.markings, shapes, shapes.misc, shapes.symbols, shapes.geometric, patterns, backgrounds, trees, shadows, fit,matrix
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
foreach i in 1,...,6
draw ($(x-1-i.north west)+(-5pt,5pt)$) -- ($(x-5-i.south west)+(-5pt,-5pt)$);%vertical lines
foreach i in 1,...,5
draw ($(x-i-1.south west)+(-5pt,-5pt)$) -- ($(x-i-6.south east)+(5pt,-5pt)$);%horizontal lines
draw ($(x-1-1.north west)+(-5pt,5pt)$) -| ($(x-5-6.south east)+(5pt,-5pt)$);%upper and right borders
endtikzpicture
endframe
enddocument
tikz-pgf beamer tikz-matrix
tikz-pgf beamer tikz-matrix
asked Apr 14 at 9:09
HanyHany
1,366418
1,366418
marmot's code [tex.stackexchange.com/a/484608/31034] runs well for me.
– ferahfeza
Apr 14 at 9:40
@ferahfezaWhenthe matrix elements are lengthy, they are displayed beyond borders
– Hany
Apr 14 at 10:17
@ferahfezaPlease refer to this image when applying marmot`s code i.stack.imgur.com/aC1bQ.jpg
– Hany
Apr 14 at 10:23
@Hany The border is not a feature of the matrix. It is added manually. In this case, you have to find another way to draw the borders.
– JouleV
Apr 14 at 13:49
One can certainly add lines by fitting the nodes on both sides and drawing lines in the middle between these fits, see tex.stackexchange.com/a/443198/121799.
– marmot
Apr 14 at 14:25
add a comment |
marmot's code [tex.stackexchange.com/a/484608/31034] runs well for me.
– ferahfeza
Apr 14 at 9:40
@ferahfezaWhenthe matrix elements are lengthy, they are displayed beyond borders
– Hany
Apr 14 at 10:17
@ferahfezaPlease refer to this image when applying marmot`s code i.stack.imgur.com/aC1bQ.jpg
– Hany
Apr 14 at 10:23
@Hany The border is not a feature of the matrix. It is added manually. In this case, you have to find another way to draw the borders.
– JouleV
Apr 14 at 13:49
One can certainly add lines by fitting the nodes on both sides and drawing lines in the middle between these fits, see tex.stackexchange.com/a/443198/121799.
– marmot
Apr 14 at 14:25
marmot's code [tex.stackexchange.com/a/484608/31034] runs well for me.
– ferahfeza
Apr 14 at 9:40
marmot's code [tex.stackexchange.com/a/484608/31034] runs well for me.
– ferahfeza
Apr 14 at 9:40
@ferahfezaWhenthe matrix elements are lengthy, they are displayed beyond borders
– Hany
Apr 14 at 10:17
@ferahfezaWhenthe matrix elements are lengthy, they are displayed beyond borders
– Hany
Apr 14 at 10:17
@ferahfezaPlease refer to this image when applying marmot`s code i.stack.imgur.com/aC1bQ.jpg
– Hany
Apr 14 at 10:23
@ferahfezaPlease refer to this image when applying marmot`s code i.stack.imgur.com/aC1bQ.jpg
– Hany
Apr 14 at 10:23
@Hany The border is not a feature of the matrix. It is added manually. In this case, you have to find another way to draw the borders.
– JouleV
Apr 14 at 13:49
@Hany The border is not a feature of the matrix. It is added manually. In this case, you have to find another way to draw the borders.
– JouleV
Apr 14 at 13:49
One can certainly add lines by fitting the nodes on both sides and drawing lines in the middle between these fits, see tex.stackexchange.com/a/443198/121799.
– marmot
Apr 14 at 14:25
One can certainly add lines by fitting the nodes on both sides and drawing lines in the middle between these fits, see tex.stackexchange.com/a/443198/121799.
– marmot
Apr 14 at 14:25
add a comment |
1 Answer
1
active
oldest
votes
One can use the fit
library to always draw the lines between the tallest/widest matrix entries. I added a style full matrix grid
which can be used as
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid];
If you want to draw only a subset of vertical or horizontal lines, you can use the redefined vlines
or hlines
styles, which now also use fit
.
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usetikzlibraryarrows,calc,fit,matrix
tikzsetmatrix rows/.initial=5,matrix cols/.initial=6,matrix name/.initial=x,
vline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix rows
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
fi,
insert path=aux) -- (pgfkeysvalueof/tikz/matrix name.south-,
hline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix cols
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
fi,insert path=-aux),
full matrix grid/.style=vline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix
cols-1,hline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix rows-1,
insert path=(pgfkeysvalueof/tikz/matrix name.south west) rectangle
(pgfkeysvalueof/tikz/matrix name.north east)
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
% draw[vline/.list=1,...,5,hline/.list=1,...,4] (pgfkeysvalueof/tikz/matrix name.north west) rectangle
% (pgfkeysvalueof/tikz/matrix name.south east); %
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid]; %
endtikzpicture
endframe
enddocument
P.S. The outer lines can be drawn with draw
, too.
1
@marmotThank you very much for your time and effort. I appreciate your answer very much
– Hany
Apr 14 at 14:58
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%2f484763%2fmatrix-with-uneven-element-lengths%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
One can use the fit
library to always draw the lines between the tallest/widest matrix entries. I added a style full matrix grid
which can be used as
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid];
If you want to draw only a subset of vertical or horizontal lines, you can use the redefined vlines
or hlines
styles, which now also use fit
.
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usetikzlibraryarrows,calc,fit,matrix
tikzsetmatrix rows/.initial=5,matrix cols/.initial=6,matrix name/.initial=x,
vline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix rows
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
fi,
insert path=aux) -- (pgfkeysvalueof/tikz/matrix name.south-,
hline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix cols
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
fi,insert path=-aux),
full matrix grid/.style=vline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix
cols-1,hline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix rows-1,
insert path=(pgfkeysvalueof/tikz/matrix name.south west) rectangle
(pgfkeysvalueof/tikz/matrix name.north east)
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
% draw[vline/.list=1,...,5,hline/.list=1,...,4] (pgfkeysvalueof/tikz/matrix name.north west) rectangle
% (pgfkeysvalueof/tikz/matrix name.south east); %
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid]; %
endtikzpicture
endframe
enddocument
P.S. The outer lines can be drawn with draw
, too.
1
@marmotThank you very much for your time and effort. I appreciate your answer very much
– Hany
Apr 14 at 14:58
add a comment |
One can use the fit
library to always draw the lines between the tallest/widest matrix entries. I added a style full matrix grid
which can be used as
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid];
If you want to draw only a subset of vertical or horizontal lines, you can use the redefined vlines
or hlines
styles, which now also use fit
.
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usetikzlibraryarrows,calc,fit,matrix
tikzsetmatrix rows/.initial=5,matrix cols/.initial=6,matrix name/.initial=x,
vline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix rows
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
fi,
insert path=aux) -- (pgfkeysvalueof/tikz/matrix name.south-,
hline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix cols
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
fi,insert path=-aux),
full matrix grid/.style=vline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix
cols-1,hline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix rows-1,
insert path=(pgfkeysvalueof/tikz/matrix name.south west) rectangle
(pgfkeysvalueof/tikz/matrix name.north east)
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
% draw[vline/.list=1,...,5,hline/.list=1,...,4] (pgfkeysvalueof/tikz/matrix name.north west) rectangle
% (pgfkeysvalueof/tikz/matrix name.south east); %
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid]; %
endtikzpicture
endframe
enddocument
P.S. The outer lines can be drawn with draw
, too.
1
@marmotThank you very much for your time and effort. I appreciate your answer very much
– Hany
Apr 14 at 14:58
add a comment |
One can use the fit
library to always draw the lines between the tallest/widest matrix entries. I added a style full matrix grid
which can be used as
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid];
If you want to draw only a subset of vertical or horizontal lines, you can use the redefined vlines
or hlines
styles, which now also use fit
.
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usetikzlibraryarrows,calc,fit,matrix
tikzsetmatrix rows/.initial=5,matrix cols/.initial=6,matrix name/.initial=x,
vline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix rows
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
fi,
insert path=aux) -- (pgfkeysvalueof/tikz/matrix name.south-,
hline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix cols
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
fi,insert path=-aux),
full matrix grid/.style=vline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix
cols-1,hline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix rows-1,
insert path=(pgfkeysvalueof/tikz/matrix name.south west) rectangle
(pgfkeysvalueof/tikz/matrix name.north east)
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
% draw[vline/.list=1,...,5,hline/.list=1,...,4] (pgfkeysvalueof/tikz/matrix name.north west) rectangle
% (pgfkeysvalueof/tikz/matrix name.south east); %
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid]; %
endtikzpicture
endframe
enddocument
P.S. The outer lines can be drawn with draw
, too.
One can use the fit
library to always draw the lines between the tallest/widest matrix entries. I added a style full matrix grid
which can be used as
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid];
If you want to draw only a subset of vertical or horizontal lines, you can use the redefined vlines
or hlines
styles, which now also use fit
.
documentclassbeamer
beamertemplatenavigationsymbolsempty
usepackageverbatim
usepackagetikz
usetikzlibraryarrows,calc,fit,matrix
tikzsetmatrix rows/.initial=5,matrix cols/.initial=6,matrix name/.initial=x,
vline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix rows
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-XX-#1)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-XX-thenumexpr1+#1relax)
fi,
insert path=aux) -- (pgfkeysvalueof/tikz/matrix name.south-,
hline/.style=/utils/exec=foreach XX in 1,...,pgfkeysvalueof/tikz/matrix cols
ifnumXX=1
xdefMatLstA(pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstB(pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
else
xdefMatLstAMatLstA (pgfkeysvalueof/tikz/matrix name-#1-XX)
xdefMatLstBMatLstB (pgfkeysvalueof/tikz/matrix name-thenumexpr1+#1relax-XX)
fi,insert path=-aux),
full matrix grid/.style=vline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix
cols-1,hline/.list=1,...,thenumexprpgfkeysvalueof/tikz/matrix rows-1,
insert path=(pgfkeysvalueof/tikz/matrix name.south west) rectangle
(pgfkeysvalueof/tikz/matrix name.north east)
begindocument
beginframe[t,fragile]
frametitlematrix
begintikzpicture
matrix (x) [matrix of nodes, row sep=10pt, column sep=10pt] %
15.1 & 23.7 & 19.7 & 15.4 & 18.3 & 23.0\
17.4 & 18.6 & 12.9 & 20.3 & 13.7 & 21.4\
10.3 & 26.1 & 15.718.918.9 & 14.0 & 17.8 & 33.8\
23.2 & 12.9 & 29.8 & 18.3 & 14.2 & 20.8\
13.5 & 17.1 & 20.7 & 27.1 & 18.918.9 & 16.6\;
draw<2->[ultra thick, blue, latex'-] (x-2-1) node [fill, red!40!white, circle, inner sep=8pt, opacity=.4] -- (x-4-5) node [fill, blue!40!white, circle, inner sep=8pt, opacity=.4];
% Node names: (<name of matrix>-<row>-<column>)
% draw[vline/.list=1,...,5,hline/.list=1,...,4] (pgfkeysvalueof/tikz/matrix name.north west) rectangle
% (pgfkeysvalueof/tikz/matrix name.south east); %
draw[matrix name=x,matrix cols=6,matrix rows=5,full matrix grid]; %
endtikzpicture
endframe
enddocument
P.S. The outer lines can be drawn with draw
, too.
answered Apr 14 at 14:45
marmotmarmot
119k6154289
119k6154289
1
@marmotThank you very much for your time and effort. I appreciate your answer very much
– Hany
Apr 14 at 14:58
add a comment |
1
@marmotThank you very much for your time and effort. I appreciate your answer very much
– Hany
Apr 14 at 14:58
1
1
@marmotThank you very much for your time and effort. I appreciate your answer very much
– Hany
Apr 14 at 14:58
@marmotThank you very much for your time and effort. I appreciate your answer very much
– Hany
Apr 14 at 14:58
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%2f484763%2fmatrix-with-uneven-element-lengths%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
marmot's code [tex.stackexchange.com/a/484608/31034] runs well for me.
– ferahfeza
Apr 14 at 9:40
@ferahfezaWhenthe matrix elements are lengthy, they are displayed beyond borders
– Hany
Apr 14 at 10:17
@ferahfezaPlease refer to this image when applying marmot`s code i.stack.imgur.com/aC1bQ.jpg
– Hany
Apr 14 at 10:23
@Hany The border is not a feature of the matrix. It is added manually. In this case, you have to find another way to draw the borders.
– JouleV
Apr 14 at 13:49
One can certainly add lines by fitting the nodes on both sides and drawing lines in the middle between these fits, see tex.stackexchange.com/a/443198/121799.
– marmot
Apr 14 at 14:25