How to draw a nice diagonal matrix?
How to typeset a nice looking diagonal matrix? I find myself, once again, fiddling with phantoms and running raiseboxes to get an aesthetic result. This kind of micromanagement is bad practice, but why does the default look so bad and is there a better way?
documentclass{article}
usepackage{mathtools}
begin{document}
begin{align*}
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & ddots & 0 \
0 & 0 & x_n
end{bmatrix}
&
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & raisebox{-0.4ex}{(ddots)}rule[3.4ex]{0pt}{0pt} & 0 \
0 & 0 & x_n rule[3.4ex]{0pt}{0pt}
end{bmatrix}
end{align*}
end{document}
matrices
add a comment |
How to typeset a nice looking diagonal matrix? I find myself, once again, fiddling with phantoms and running raiseboxes to get an aesthetic result. This kind of micromanagement is bad practice, but why does the default look so bad and is there a better way?
documentclass{article}
usepackage{mathtools}
begin{document}
begin{align*}
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & ddots & 0 \
0 & 0 & x_n
end{bmatrix}
&
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & raisebox{-0.4ex}{(ddots)}rule[3.4ex]{0pt}{0pt} & 0 \
0 & 0 & x_n rule[3.4ex]{0pt}{0pt}
end{bmatrix}
end{align*}
end{document}
matrices
First, useDeclareMathOperator
if you use "diag" many times in the document.
– JouleV
1 hour ago
1
Hmm, the problem is not withbmatrix
, but withddots
.
– JouleV
1 hour ago
add a comment |
How to typeset a nice looking diagonal matrix? I find myself, once again, fiddling with phantoms and running raiseboxes to get an aesthetic result. This kind of micromanagement is bad practice, but why does the default look so bad and is there a better way?
documentclass{article}
usepackage{mathtools}
begin{document}
begin{align*}
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & ddots & 0 \
0 & 0 & x_n
end{bmatrix}
&
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & raisebox{-0.4ex}{(ddots)}rule[3.4ex]{0pt}{0pt} & 0 \
0 & 0 & x_n rule[3.4ex]{0pt}{0pt}
end{bmatrix}
end{align*}
end{document}
matrices
How to typeset a nice looking diagonal matrix? I find myself, once again, fiddling with phantoms and running raiseboxes to get an aesthetic result. This kind of micromanagement is bad practice, but why does the default look so bad and is there a better way?
documentclass{article}
usepackage{mathtools}
begin{document}
begin{align*}
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & ddots & 0 \
0 & 0 & x_n
end{bmatrix}
&
operatorname{diag} x &=
begin{bmatrix}
x_1 & 0 & 0\
0 & raisebox{-0.4ex}{(ddots)}rule[3.4ex]{0pt}{0pt} & 0 \
0 & 0 & x_n rule[3.4ex]{0pt}{0pt}
end{bmatrix}
end{align*}
end{document}
matrices
matrices
asked 1 hour ago
MankkaMankka
24227
24227
First, useDeclareMathOperator
if you use "diag" many times in the document.
– JouleV
1 hour ago
1
Hmm, the problem is not withbmatrix
, but withddots
.
– JouleV
1 hour ago
add a comment |
First, useDeclareMathOperator
if you use "diag" many times in the document.
– JouleV
1 hour ago
1
Hmm, the problem is not withbmatrix
, but withddots
.
– JouleV
1 hour ago
First, use
DeclareMathOperator
if you use "diag" many times in the document.– JouleV
1 hour ago
First, use
DeclareMathOperator
if you use "diag" many times in the document.– JouleV
1 hour ago
1
1
Hmm, the problem is not with
bmatrix
, but with ddots
.– JouleV
1 hour ago
Hmm, the problem is not with
bmatrix
, but with ddots
.– JouleV
1 hour ago
add a comment |
1 Answer
1
active
oldest
votes
A TABstack alternative.
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 0\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
While not needed for diagonal matrices of the type portrayed by the OP, the package has a fixTABwidth{<T or F>}
declaration to fix all column widths to the largest found in the matrix. That can be helpful if there are wide matrix entries:
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
fixTABwidth{T}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 12345\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
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%2f485276%2fhow-to-draw-a-nice-diagonal-matrix%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
A TABstack alternative.
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 0\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
While not needed for diagonal matrices of the type portrayed by the OP, the package has a fixTABwidth{<T or F>}
declaration to fix all column widths to the largest found in the matrix. That can be helpful if there are wide matrix entries:
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
fixTABwidth{T}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 12345\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
add a comment |
A TABstack alternative.
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 0\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
While not needed for diagonal matrices of the type portrayed by the OP, the package has a fixTABwidth{<T or F>}
declaration to fix all column widths to the largest found in the matrix. That can be helpful if there are wide matrix entries:
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
fixTABwidth{T}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 12345\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
add a comment |
A TABstack alternative.
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 0\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
While not needed for diagonal matrices of the type portrayed by the OP, the package has a fixTABwidth{<T or F>}
declaration to fix all column widths to the largest found in the matrix. That can be helpful if there are wide matrix entries:
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
fixTABwidth{T}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 12345\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
A TABstack alternative.
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 0\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
While not needed for diagonal matrices of the type portrayed by the OP, the package has a fixTABwidth{<T or F>}
declaration to fix all column widths to the largest found in the matrix. That can be helpful if there are wide matrix entries:
documentclass{article}
usepackage{mathtools,tabstackengine}
TABstackMath% STACK MATRIX IN MATH MODE
setstacktabbedgap{10pt}% INTER-COLUMN GAP SIZE
setstackgap{L}{1.5baselineskip}% INTER-ROW BASELINESKIP
newcommandcddots{raisebox{-1pt}{$ddots$}}
begin{document}
fixTABwidth{T}
[ operatorname{diag} x =
bracketMatrixstack{
x_1 & 0 & 12345\
0 & cddots & 0 \
0 & 0 & x_n
}
]
end{document}
answered 53 mins ago
Steven B. SegletesSteven B. Segletes
162k9206418
162k9206418
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%2f485276%2fhow-to-draw-a-nice-diagonal-matrix%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
First, use
DeclareMathOperator
if you use "diag" many times in the document.– JouleV
1 hour ago
1
Hmm, the problem is not with
bmatrix
, but withddots
.– JouleV
1 hour ago