Place additional nodes when using smartdiagram
I am trying to add additional nodes either side of a diagram produced using smartdiagram. Ideally, I would like node b1 placed to the left of the edge between a and b in the circular diagram, and b2 to the right of the edge between a and d. Using absolute coordinates to increase the distance between the additional nodes / try to place them still results in the circular diagram to the right of both nodes. Can this be done please?
My example code
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
begin{document}
begin{tikzpicture}[node distance = 4cm, auto]
node [state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
node [state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
smartdiagram[circular diagram] {a, b, c, d}
end{document}
I thought maybe TikZ: adding nodes to a circular diagram from smartdiagram package could help but I can't see how to add the nodes i.e.
smartdiagramadd[circular diagram]{a, b, c, d}{
left of module1/node [state, rectangle split parts=2]}
tikz-pgf smartdiagram
add a comment |
I am trying to add additional nodes either side of a diagram produced using smartdiagram. Ideally, I would like node b1 placed to the left of the edge between a and b in the circular diagram, and b2 to the right of the edge between a and d. Using absolute coordinates to increase the distance between the additional nodes / try to place them still results in the circular diagram to the right of both nodes. Can this be done please?
My example code
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
begin{document}
begin{tikzpicture}[node distance = 4cm, auto]
node [state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
node [state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
smartdiagram[circular diagram] {a, b, c, d}
end{document}
I thought maybe TikZ: adding nodes to a circular diagram from smartdiagram package could help but I can't see how to add the nodes i.e.
smartdiagramadd[circular diagram]{a, b, c, d}{
left of module1/node [state, rectangle split parts=2]}
tikz-pgf smartdiagram
add a comment |
I am trying to add additional nodes either side of a diagram produced using smartdiagram. Ideally, I would like node b1 placed to the left of the edge between a and b in the circular diagram, and b2 to the right of the edge between a and d. Using absolute coordinates to increase the distance between the additional nodes / try to place them still results in the circular diagram to the right of both nodes. Can this be done please?
My example code
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
begin{document}
begin{tikzpicture}[node distance = 4cm, auto]
node [state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
node [state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
smartdiagram[circular diagram] {a, b, c, d}
end{document}
I thought maybe TikZ: adding nodes to a circular diagram from smartdiagram package could help but I can't see how to add the nodes i.e.
smartdiagramadd[circular diagram]{a, b, c, d}{
left of module1/node [state, rectangle split parts=2]}
tikz-pgf smartdiagram
I am trying to add additional nodes either side of a diagram produced using smartdiagram. Ideally, I would like node b1 placed to the left of the edge between a and b in the circular diagram, and b2 to the right of the edge between a and d. Using absolute coordinates to increase the distance between the additional nodes / try to place them still results in the circular diagram to the right of both nodes. Can this be done please?
My example code
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
begin{document}
begin{tikzpicture}[node distance = 4cm, auto]
node [state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
node [state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
smartdiagram[circular diagram] {a, b, c, d}
end{document}
I thought maybe TikZ: adding nodes to a circular diagram from smartdiagram package could help but I can't see how to add the nodes i.e.
smartdiagramadd[circular diagram]{a, b, c, d}{
left of module1/node [state, rectangle split parts=2]}
tikz-pgf smartdiagram
tikz-pgf smartdiagram
edited Jan 20 at 22:19
user20650
asked Jan 20 at 21:57
user20650user20650
16617
16617
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
smartdiagram gives the nodes names. You can thus connect them using overlay. The IMHO only less appealing aspect of this is that things drawn in overlay mode do not increase the bounding box, which you need to do by hand. This explains the hspace*{2cm} in
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
tikzset{every picture/.append style={remember picture}}
begin{document}
hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}%
begin{tikzpicture}[overlay]
path (module1) -- (module2) node[midway,above left=1cm,state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
path (module1) -- (module4) node [midway,above right=1cm,state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
end{document}

Thank you , this looks great (I had managed to do something in completely in tikz, but the paths were all just a bit crude i.e. usingbend right-- this looks much better). I hadn't heard ofoverlaybut I'll read up Thanks again.
– user20650
Jan 20 at 23:28
1
You're welcome! (Sometimesarcs look better thanbend right. In principle you can look up all definitions in the very nice manual ofsmartdiagram, which is how I learned that the namesmoduleNwith integerN, but if the diagram already looks like you want to have it, you may not want to reinvent it. ;-)
– marmot
Jan 20 at 23:35
Dear @marmot; apologies for the follow-up I couldn't find how to do this, but how do you increase the vertical space as well i.e.hspace*{8cm}vspace{8cm}doesn't work.
– user20650
Jan 21 at 8:55
... seems I can accomplish this withborder=50pt-- but of a hack im sure
– user20650
Jan 21 at 9:18
1
@user20650 another way isbegin{tabular}{c} ~\[3cm] hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}\[3cm] end{tabular}... (also) not too beautiful
– marmot
Jan 21 at 11:28
|
show 1 more 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%2f471053%2fplace-additional-nodes-when-using-smartdiagram%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
smartdiagram gives the nodes names. You can thus connect them using overlay. The IMHO only less appealing aspect of this is that things drawn in overlay mode do not increase the bounding box, which you need to do by hand. This explains the hspace*{2cm} in
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
tikzset{every picture/.append style={remember picture}}
begin{document}
hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}%
begin{tikzpicture}[overlay]
path (module1) -- (module2) node[midway,above left=1cm,state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
path (module1) -- (module4) node [midway,above right=1cm,state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
end{document}

Thank you , this looks great (I had managed to do something in completely in tikz, but the paths were all just a bit crude i.e. usingbend right-- this looks much better). I hadn't heard ofoverlaybut I'll read up Thanks again.
– user20650
Jan 20 at 23:28
1
You're welcome! (Sometimesarcs look better thanbend right. In principle you can look up all definitions in the very nice manual ofsmartdiagram, which is how I learned that the namesmoduleNwith integerN, but if the diagram already looks like you want to have it, you may not want to reinvent it. ;-)
– marmot
Jan 20 at 23:35
Dear @marmot; apologies for the follow-up I couldn't find how to do this, but how do you increase the vertical space as well i.e.hspace*{8cm}vspace{8cm}doesn't work.
– user20650
Jan 21 at 8:55
... seems I can accomplish this withborder=50pt-- but of a hack im sure
– user20650
Jan 21 at 9:18
1
@user20650 another way isbegin{tabular}{c} ~\[3cm] hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}\[3cm] end{tabular}... (also) not too beautiful
– marmot
Jan 21 at 11:28
|
show 1 more comment
smartdiagram gives the nodes names. You can thus connect them using overlay. The IMHO only less appealing aspect of this is that things drawn in overlay mode do not increase the bounding box, which you need to do by hand. This explains the hspace*{2cm} in
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
tikzset{every picture/.append style={remember picture}}
begin{document}
hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}%
begin{tikzpicture}[overlay]
path (module1) -- (module2) node[midway,above left=1cm,state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
path (module1) -- (module4) node [midway,above right=1cm,state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
end{document}

Thank you , this looks great (I had managed to do something in completely in tikz, but the paths were all just a bit crude i.e. usingbend right-- this looks much better). I hadn't heard ofoverlaybut I'll read up Thanks again.
– user20650
Jan 20 at 23:28
1
You're welcome! (Sometimesarcs look better thanbend right. In principle you can look up all definitions in the very nice manual ofsmartdiagram, which is how I learned that the namesmoduleNwith integerN, but if the diagram already looks like you want to have it, you may not want to reinvent it. ;-)
– marmot
Jan 20 at 23:35
Dear @marmot; apologies for the follow-up I couldn't find how to do this, but how do you increase the vertical space as well i.e.hspace*{8cm}vspace{8cm}doesn't work.
– user20650
Jan 21 at 8:55
... seems I can accomplish this withborder=50pt-- but of a hack im sure
– user20650
Jan 21 at 9:18
1
@user20650 another way isbegin{tabular}{c} ~\[3cm] hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}\[3cm] end{tabular}... (also) not too beautiful
– marmot
Jan 21 at 11:28
|
show 1 more comment
smartdiagram gives the nodes names. You can thus connect them using overlay. The IMHO only less appealing aspect of this is that things drawn in overlay mode do not increase the bounding box, which you need to do by hand. This explains the hspace*{2cm} in
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
tikzset{every picture/.append style={remember picture}}
begin{document}
hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}%
begin{tikzpicture}[overlay]
path (module1) -- (module2) node[midway,above left=1cm,state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
path (module1) -- (module4) node [midway,above right=1cm,state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
end{document}

smartdiagram gives the nodes names. You can thus connect them using overlay. The IMHO only less appealing aspect of this is that things drawn in overlay mode do not increase the bounding box, which you need to do by hand. This explains the hspace*{2cm} in
documentclass[border=10pt]{standalone}
usepackage{tikz, smartdiagram}
usetikzlibrary{shapes.multipart}
tikzset{
state/.style={rectangle split, draw=black, text width=3cm}
}
tikzset{every picture/.append style={remember picture}}
begin{document}
hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}%
begin{tikzpicture}[overlay]
path (module1) -- (module2) node[midway,above left=1cm,state, rectangle split parts=2] (b1) at (0,5) {text nodepart{two} one};
path (module1) -- (module4) node [midway,above right=1cm,state, rectangle split parts=2] (b2) at (5,5) {text nodepart{two} two};
end{tikzpicture}
end{document}

answered Jan 20 at 23:18
marmotmarmot
95.1k4110210
95.1k4110210
Thank you , this looks great (I had managed to do something in completely in tikz, but the paths were all just a bit crude i.e. usingbend right-- this looks much better). I hadn't heard ofoverlaybut I'll read up Thanks again.
– user20650
Jan 20 at 23:28
1
You're welcome! (Sometimesarcs look better thanbend right. In principle you can look up all definitions in the very nice manual ofsmartdiagram, which is how I learned that the namesmoduleNwith integerN, but if the diagram already looks like you want to have it, you may not want to reinvent it. ;-)
– marmot
Jan 20 at 23:35
Dear @marmot; apologies for the follow-up I couldn't find how to do this, but how do you increase the vertical space as well i.e.hspace*{8cm}vspace{8cm}doesn't work.
– user20650
Jan 21 at 8:55
... seems I can accomplish this withborder=50pt-- but of a hack im sure
– user20650
Jan 21 at 9:18
1
@user20650 another way isbegin{tabular}{c} ~\[3cm] hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}\[3cm] end{tabular}... (also) not too beautiful
– marmot
Jan 21 at 11:28
|
show 1 more comment
Thank you , this looks great (I had managed to do something in completely in tikz, but the paths were all just a bit crude i.e. usingbend right-- this looks much better). I hadn't heard ofoverlaybut I'll read up Thanks again.
– user20650
Jan 20 at 23:28
1
You're welcome! (Sometimesarcs look better thanbend right. In principle you can look up all definitions in the very nice manual ofsmartdiagram, which is how I learned that the namesmoduleNwith integerN, but if the diagram already looks like you want to have it, you may not want to reinvent it. ;-)
– marmot
Jan 20 at 23:35
Dear @marmot; apologies for the follow-up I couldn't find how to do this, but how do you increase the vertical space as well i.e.hspace*{8cm}vspace{8cm}doesn't work.
– user20650
Jan 21 at 8:55
... seems I can accomplish this withborder=50pt-- but of a hack im sure
– user20650
Jan 21 at 9:18
1
@user20650 another way isbegin{tabular}{c} ~\[3cm] hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}\[3cm] end{tabular}... (also) not too beautiful
– marmot
Jan 21 at 11:28
Thank you , this looks great (I had managed to do something in completely in tikz, but the paths were all just a bit crude i.e. using
bend right -- this looks much better). I hadn't heard of overlay but I'll read up Thanks again.– user20650
Jan 20 at 23:28
Thank you , this looks great (I had managed to do something in completely in tikz, but the paths were all just a bit crude i.e. using
bend right -- this looks much better). I hadn't heard of overlay but I'll read up Thanks again.– user20650
Jan 20 at 23:28
1
1
You're welcome! (Sometimes
arcs look better than bend right. In principle you can look up all definitions in the very nice manual of smartdiagram, which is how I learned that the names moduleN with integer N, but if the diagram already looks like you want to have it, you may not want to reinvent it. ;-)– marmot
Jan 20 at 23:35
You're welcome! (Sometimes
arcs look better than bend right. In principle you can look up all definitions in the very nice manual of smartdiagram, which is how I learned that the names moduleN with integer N, but if the diagram already looks like you want to have it, you may not want to reinvent it. ;-)– marmot
Jan 20 at 23:35
Dear @marmot; apologies for the follow-up I couldn't find how to do this, but how do you increase the vertical space as well i.e.
hspace*{8cm}vspace{8cm} doesn't work.– user20650
Jan 21 at 8:55
Dear @marmot; apologies for the follow-up I couldn't find how to do this, but how do you increase the vertical space as well i.e.
hspace*{8cm}vspace{8cm} doesn't work.– user20650
Jan 21 at 8:55
... seems I can accomplish this with
border=50pt -- but of a hack im sure– user20650
Jan 21 at 9:18
... seems I can accomplish this with
border=50pt -- but of a hack im sure– user20650
Jan 21 at 9:18
1
1
@user20650 another way is
begin{tabular}{c} ~\[3cm] hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}\[3cm] end{tabular} ... (also) not too beautiful– marmot
Jan 21 at 11:28
@user20650 another way is
begin{tabular}{c} ~\[3cm] hspace*{2cm}smartdiagram[circular diagram] {a, b, c, d}hspace*{2cm}\[3cm] end{tabular} ... (also) not too beautiful– marmot
Jan 21 at 11:28
|
show 1 more 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%2f471053%2fplace-additional-nodes-when-using-smartdiagram%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