node command while defining a coordinate in TikZ












6















This question is related to Strange behavior in TikZ draw command but is not the same.



While working with coordinates and nodes in TikZ, I was expecting that:



  coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};


and



  node[right] at (x) {$x$};
node[above] at (y) {$y$};


would yield the same result. But they don't. I get the following output:



enter image description here



With coordinate (x) at (4,0) node[right] {$x$};, I meant, the system will create a node at (4,0) and will place the text $x$ to its right.



Based on the output, I see the text $x$ is placed at (0,0), with the above command.



Why does this happen.



MWE:



documentclass{article}
usepackage{tikz}
usetikzlibrary{intersections}
begin{document}
begin{tikzpicture}
coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};

node[right] at (x) {$x$};
node[above] at (y) {$y$};

draw[<->,thick] (0,3) |- (4,0);
end{tikzpicture}
end{document}









share|improve this question




















  • 1





    Why would they? Try path (x) node[right] {$x$};path (y) node[above] {$y$};. If you give TikZ contradicting instructions, or place the instructions in the wrong order, you will get an unexpected result. BTW, you expect answerers to provide you with a full MWE, i.e. a document that starts with documentclass etc. Could you please consider also using such an MWE in your question?

    – marmot
    Mar 25 at 16:53













  • @marmot - I have added the MWE.

    – subham soni
    Mar 25 at 16:59











  • A trick to solve all these mysteries: just add draw option to the nodes, and you will probably see the difference.

    – JouleV
    Mar 25 at 17:02











  • @JouleV - That would still not explain why it happens. I am more interested in the why part.

    – subham soni
    Mar 25 at 17:07






  • 1





    The "why part" is simply that in coordinate (x) at (4,0) node[right] {$x$}; the at (4,0) gets eaten up by coordinate (x) at and then TikZ "sees" node[right] {$x$} and inserts the default coordinate (0,0) to parse it.

    – marmot
    Mar 25 at 18:51
















6















This question is related to Strange behavior in TikZ draw command but is not the same.



While working with coordinates and nodes in TikZ, I was expecting that:



  coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};


and



  node[right] at (x) {$x$};
node[above] at (y) {$y$};


would yield the same result. But they don't. I get the following output:



enter image description here



With coordinate (x) at (4,0) node[right] {$x$};, I meant, the system will create a node at (4,0) and will place the text $x$ to its right.



Based on the output, I see the text $x$ is placed at (0,0), with the above command.



Why does this happen.



MWE:



documentclass{article}
usepackage{tikz}
usetikzlibrary{intersections}
begin{document}
begin{tikzpicture}
coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};

node[right] at (x) {$x$};
node[above] at (y) {$y$};

draw[<->,thick] (0,3) |- (4,0);
end{tikzpicture}
end{document}









share|improve this question




















  • 1





    Why would they? Try path (x) node[right] {$x$};path (y) node[above] {$y$};. If you give TikZ contradicting instructions, or place the instructions in the wrong order, you will get an unexpected result. BTW, you expect answerers to provide you with a full MWE, i.e. a document that starts with documentclass etc. Could you please consider also using such an MWE in your question?

    – marmot
    Mar 25 at 16:53













  • @marmot - I have added the MWE.

    – subham soni
    Mar 25 at 16:59











  • A trick to solve all these mysteries: just add draw option to the nodes, and you will probably see the difference.

    – JouleV
    Mar 25 at 17:02











  • @JouleV - That would still not explain why it happens. I am more interested in the why part.

    – subham soni
    Mar 25 at 17:07






  • 1





    The "why part" is simply that in coordinate (x) at (4,0) node[right] {$x$}; the at (4,0) gets eaten up by coordinate (x) at and then TikZ "sees" node[right] {$x$} and inserts the default coordinate (0,0) to parse it.

    – marmot
    Mar 25 at 18:51














6












6








6








This question is related to Strange behavior in TikZ draw command but is not the same.



While working with coordinates and nodes in TikZ, I was expecting that:



  coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};


and



  node[right] at (x) {$x$};
node[above] at (y) {$y$};


would yield the same result. But they don't. I get the following output:



enter image description here



With coordinate (x) at (4,0) node[right] {$x$};, I meant, the system will create a node at (4,0) and will place the text $x$ to its right.



Based on the output, I see the text $x$ is placed at (0,0), with the above command.



Why does this happen.



MWE:



documentclass{article}
usepackage{tikz}
usetikzlibrary{intersections}
begin{document}
begin{tikzpicture}
coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};

node[right] at (x) {$x$};
node[above] at (y) {$y$};

draw[<->,thick] (0,3) |- (4,0);
end{tikzpicture}
end{document}









share|improve this question
















This question is related to Strange behavior in TikZ draw command but is not the same.



While working with coordinates and nodes in TikZ, I was expecting that:



  coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};


and



  node[right] at (x) {$x$};
node[above] at (y) {$y$};


would yield the same result. But they don't. I get the following output:



enter image description here



With coordinate (x) at (4,0) node[right] {$x$};, I meant, the system will create a node at (4,0) and will place the text $x$ to its right.



Based on the output, I see the text $x$ is placed at (0,0), with the above command.



Why does this happen.



MWE:



documentclass{article}
usepackage{tikz}
usetikzlibrary{intersections}
begin{document}
begin{tikzpicture}
coordinate (x) at (4,0) node[right] {$x$};
coordinate (y) at (0,3) node[above] {$y$};

node[right] at (x) {$x$};
node[above] at (y) {$y$};

draw[<->,thick] (0,3) |- (4,0);
end{tikzpicture}
end{document}






tikz-pgf






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 25 at 16:59







subham soni

















asked Mar 25 at 16:49









subham sonisubham soni

4,86183187




4,86183187








  • 1





    Why would they? Try path (x) node[right] {$x$};path (y) node[above] {$y$};. If you give TikZ contradicting instructions, or place the instructions in the wrong order, you will get an unexpected result. BTW, you expect answerers to provide you with a full MWE, i.e. a document that starts with documentclass etc. Could you please consider also using such an MWE in your question?

    – marmot
    Mar 25 at 16:53













  • @marmot - I have added the MWE.

    – subham soni
    Mar 25 at 16:59











  • A trick to solve all these mysteries: just add draw option to the nodes, and you will probably see the difference.

    – JouleV
    Mar 25 at 17:02











  • @JouleV - That would still not explain why it happens. I am more interested in the why part.

    – subham soni
    Mar 25 at 17:07






  • 1





    The "why part" is simply that in coordinate (x) at (4,0) node[right] {$x$}; the at (4,0) gets eaten up by coordinate (x) at and then TikZ "sees" node[right] {$x$} and inserts the default coordinate (0,0) to parse it.

    – marmot
    Mar 25 at 18:51














  • 1





    Why would they? Try path (x) node[right] {$x$};path (y) node[above] {$y$};. If you give TikZ contradicting instructions, or place the instructions in the wrong order, you will get an unexpected result. BTW, you expect answerers to provide you with a full MWE, i.e. a document that starts with documentclass etc. Could you please consider also using such an MWE in your question?

    – marmot
    Mar 25 at 16:53













  • @marmot - I have added the MWE.

    – subham soni
    Mar 25 at 16:59











  • A trick to solve all these mysteries: just add draw option to the nodes, and you will probably see the difference.

    – JouleV
    Mar 25 at 17:02











  • @JouleV - That would still not explain why it happens. I am more interested in the why part.

    – subham soni
    Mar 25 at 17:07






  • 1





    The "why part" is simply that in coordinate (x) at (4,0) node[right] {$x$}; the at (4,0) gets eaten up by coordinate (x) at and then TikZ "sees" node[right] {$x$} and inserts the default coordinate (0,0) to parse it.

    – marmot
    Mar 25 at 18:51








1




1





Why would they? Try path (x) node[right] {$x$};path (y) node[above] {$y$};. If you give TikZ contradicting instructions, or place the instructions in the wrong order, you will get an unexpected result. BTW, you expect answerers to provide you with a full MWE, i.e. a document that starts with documentclass etc. Could you please consider also using such an MWE in your question?

– marmot
Mar 25 at 16:53







Why would they? Try path (x) node[right] {$x$};path (y) node[above] {$y$};. If you give TikZ contradicting instructions, or place the instructions in the wrong order, you will get an unexpected result. BTW, you expect answerers to provide you with a full MWE, i.e. a document that starts with documentclass etc. Could you please consider also using such an MWE in your question?

– marmot
Mar 25 at 16:53















@marmot - I have added the MWE.

– subham soni
Mar 25 at 16:59





@marmot - I have added the MWE.

– subham soni
Mar 25 at 16:59













A trick to solve all these mysteries: just add draw option to the nodes, and you will probably see the difference.

– JouleV
Mar 25 at 17:02





A trick to solve all these mysteries: just add draw option to the nodes, and you will probably see the difference.

– JouleV
Mar 25 at 17:02













@JouleV - That would still not explain why it happens. I am more interested in the why part.

– subham soni
Mar 25 at 17:07





@JouleV - That would still not explain why it happens. I am more interested in the why part.

– subham soni
Mar 25 at 17:07




1




1





The "why part" is simply that in coordinate (x) at (4,0) node[right] {$x$}; the at (4,0) gets eaten up by coordinate (x) at and then TikZ "sees" node[right] {$x$} and inserts the default coordinate (0,0) to parse it.

– marmot
Mar 25 at 18:51





The "why part" is simply that in coordinate (x) at (4,0) node[right] {$x$}; the at (4,0) gets eaten up by coordinate (x) at and then TikZ "sees" node[right] {$x$} and inserts the default coordinate (0,0) to parse it.

– marmot
Mar 25 at 18:51










3 Answers
3






active

oldest

votes


















5














It doesn't give you the expected result because the syntax is not appropriate. (At which level do you expect an explanation? Does it help that in coordinate (x) at (4,0) node[right] {$x$}; at (4,0) got "absorbed" by coordinate (x) so that TikZ adds the default coordinate (0,0) to interpret node[right] {$x$}?) You can condense all statements to one line.



documentclass[tikz,border=3.14mm]{standalone}
begin{document}
begin{tikzpicture}
draw[<->,thick] (0,3) coordinate (y) node[above] {$y$} |- (4,0) coordinate (x) node[right] {$x$};
end{tikzpicture}
end{document}


enter image description here






share|improve this answer
























  • Nice explanation. I want to notice that your "one line" can further be simplified to draw[<->,thick] (0,3) |- (4,0) node[right] {$x$} node[at start,above] {$y$}; since the coordinates (x) and (y) seems to be redundant for further purposes (IMHO). But I know you know that fact (you know everything about TikZ).

    – Marian G.
    Mar 27 at 19:10











  • @MarianG. Thanks, I fully agree with that. I was not sure if the OP wants to do something with the coordinates later on, at least their names suggest something like begin{scope}[x={(x)},y={(y)}], so I kept them.

    – marmot
    Mar 27 at 20:06



















5














In section 17.2.1 of the TikZ manual, the commands for such works are shown:




  • path ... node ... (1.1)

    or node ... (1.2)


  • path ... coordinate ... (2.1)

    or coordinate ... (2.2)




coordinate ... node ... are not present for the same job! In fact, since coordinate is the same as path coordinate so coordinate (x) at (4,0) node[right] {$x$}; is understood as



path coordinate (x) at (4,0);  % or `coordinate (x) at (4,0);
path node[right] {$x$}; % (0,0) in case no coordinates are specified



This makes the outputs of coordinate (x) at (4,0) node[right] {$x$}; and node[right] at (x) {$x$}; not the same at all.



That is why we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
coordinate (x) at (2,0) node[draw,right] {world};
fill (x) circle (1pt)
(0,0) circle (1pt);
end{tikzpicture}
end{document}


and we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
node[draw] (x) at (2,0) {Hello} node[draw,right] {world};
fill (0,0) circle (1pt);
end{tikzpicture}
end{document}


So how to solve it? We can't combine (2.2) or (1.2) with ... node ..., but we can do it with (1.1) or (2.1):



path (4,0) coordinate (x) node[right] {$x$};


Remember that draw, fill, filldraw... are all daughters of path, so they are all valid. But node and coordinate are not – they are less general versions of path..





I found this using the draw powerful trick :)






share|improve this answer


























  • @Kpym Thanks! Edited.

    – JouleV
    Mar 26 at 11:54



















3














try the following:



documentclass{article}
usepackage{tikz}
%usetikzlibrary{intersections} not used in this mwe

begin{document}
begin{tikzpicture}
coordinate[label=right:$x$] (x) at (4,0);
coordinate[label=above:$y$] (y) at (0,3);

draw[<->,thick] (y) |- (x);
end{tikzpicture}
end{document}


enter image description here



addendum:
as response to Martin Argerami coments below my answer, who is convinced that my answer not address op problem (and consequently he apparently down vote it, for what i'm very grateful. his message is very clear: don't show people some possible solution for which they not explicit ask). however let me note some my view on the problem:




  • in answer i only suggest to see if my suggestion can help to op

  • it solve the problem of placement of coordinate labels (in this is all about it, isn't it?)

  • if the answer is not helpful, op can select one from other two answers as the best one and accept it.

  • to be strict to Martins' consideration, that he should down vote many other answers, which try show another possibility to achieve op goal (nice picture, table, etc) or is written as exercise (personal or for op) ...

  • on the end, i'm still convinced, that my answer not harm anyone, it only show another way how to draw coordinates shown in op mwe. is this worth for down voting it?






share|improve this answer





















  • 1





    I don't see how this answers the question.

    – Martin Argerami
    Mar 27 at 15:15











  • is image not enough illustrative? the problem in question is avoided with use of coordinate instead of nodes which also make code shorter.

    – Zarko
    Mar 27 at 15:25













  • The OP knows how to draw the image. The question was why his second set of commands didn't put the x and y where he expected them. That's an issue with tikz syntax, and it is addressed by the other answers.

    – Martin Argerami
    Mar 27 at 16:49











  • well, why than complain on my answer? if op doesn't like mine solution, (in which i show an alternative, to my opinion better solution for his/her problem) (s)he can accept one of other two answers.

    – Zarko
    Mar 27 at 17:26











  • I didn't complain; I stated that it doesn't address OP's question. If OP doesn't like your solution he can choose another answer. If I don't like you solution, I can downvote it. And I can certainly comment that your answer doesn't address OP's question.

    – Martin Argerami
    Mar 27 at 17:57












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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481386%2fnode-command-while-defining-a-coordinate-in-tikz%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























3 Answers
3






active

oldest

votes








3 Answers
3






active

oldest

votes









active

oldest

votes






active

oldest

votes









5














It doesn't give you the expected result because the syntax is not appropriate. (At which level do you expect an explanation? Does it help that in coordinate (x) at (4,0) node[right] {$x$}; at (4,0) got "absorbed" by coordinate (x) so that TikZ adds the default coordinate (0,0) to interpret node[right] {$x$}?) You can condense all statements to one line.



documentclass[tikz,border=3.14mm]{standalone}
begin{document}
begin{tikzpicture}
draw[<->,thick] (0,3) coordinate (y) node[above] {$y$} |- (4,0) coordinate (x) node[right] {$x$};
end{tikzpicture}
end{document}


enter image description here






share|improve this answer
























  • Nice explanation. I want to notice that your "one line" can further be simplified to draw[<->,thick] (0,3) |- (4,0) node[right] {$x$} node[at start,above] {$y$}; since the coordinates (x) and (y) seems to be redundant for further purposes (IMHO). But I know you know that fact (you know everything about TikZ).

    – Marian G.
    Mar 27 at 19:10











  • @MarianG. Thanks, I fully agree with that. I was not sure if the OP wants to do something with the coordinates later on, at least their names suggest something like begin{scope}[x={(x)},y={(y)}], so I kept them.

    – marmot
    Mar 27 at 20:06
















5














It doesn't give you the expected result because the syntax is not appropriate. (At which level do you expect an explanation? Does it help that in coordinate (x) at (4,0) node[right] {$x$}; at (4,0) got "absorbed" by coordinate (x) so that TikZ adds the default coordinate (0,0) to interpret node[right] {$x$}?) You can condense all statements to one line.



documentclass[tikz,border=3.14mm]{standalone}
begin{document}
begin{tikzpicture}
draw[<->,thick] (0,3) coordinate (y) node[above] {$y$} |- (4,0) coordinate (x) node[right] {$x$};
end{tikzpicture}
end{document}


enter image description here






share|improve this answer
























  • Nice explanation. I want to notice that your "one line" can further be simplified to draw[<->,thick] (0,3) |- (4,0) node[right] {$x$} node[at start,above] {$y$}; since the coordinates (x) and (y) seems to be redundant for further purposes (IMHO). But I know you know that fact (you know everything about TikZ).

    – Marian G.
    Mar 27 at 19:10











  • @MarianG. Thanks, I fully agree with that. I was not sure if the OP wants to do something with the coordinates later on, at least their names suggest something like begin{scope}[x={(x)},y={(y)}], so I kept them.

    – marmot
    Mar 27 at 20:06














5












5








5







It doesn't give you the expected result because the syntax is not appropriate. (At which level do you expect an explanation? Does it help that in coordinate (x) at (4,0) node[right] {$x$}; at (4,0) got "absorbed" by coordinate (x) so that TikZ adds the default coordinate (0,0) to interpret node[right] {$x$}?) You can condense all statements to one line.



documentclass[tikz,border=3.14mm]{standalone}
begin{document}
begin{tikzpicture}
draw[<->,thick] (0,3) coordinate (y) node[above] {$y$} |- (4,0) coordinate (x) node[right] {$x$};
end{tikzpicture}
end{document}


enter image description here






share|improve this answer













It doesn't give you the expected result because the syntax is not appropriate. (At which level do you expect an explanation? Does it help that in coordinate (x) at (4,0) node[right] {$x$}; at (4,0) got "absorbed" by coordinate (x) so that TikZ adds the default coordinate (0,0) to interpret node[right] {$x$}?) You can condense all statements to one line.



documentclass[tikz,border=3.14mm]{standalone}
begin{document}
begin{tikzpicture}
draw[<->,thick] (0,3) coordinate (y) node[above] {$y$} |- (4,0) coordinate (x) node[right] {$x$};
end{tikzpicture}
end{document}


enter image description here







share|improve this answer












share|improve this answer



share|improve this answer










answered Mar 25 at 17:14









marmotmarmot

113k5145274




113k5145274













  • Nice explanation. I want to notice that your "one line" can further be simplified to draw[<->,thick] (0,3) |- (4,0) node[right] {$x$} node[at start,above] {$y$}; since the coordinates (x) and (y) seems to be redundant for further purposes (IMHO). But I know you know that fact (you know everything about TikZ).

    – Marian G.
    Mar 27 at 19:10











  • @MarianG. Thanks, I fully agree with that. I was not sure if the OP wants to do something with the coordinates later on, at least their names suggest something like begin{scope}[x={(x)},y={(y)}], so I kept them.

    – marmot
    Mar 27 at 20:06



















  • Nice explanation. I want to notice that your "one line" can further be simplified to draw[<->,thick] (0,3) |- (4,0) node[right] {$x$} node[at start,above] {$y$}; since the coordinates (x) and (y) seems to be redundant for further purposes (IMHO). But I know you know that fact (you know everything about TikZ).

    – Marian G.
    Mar 27 at 19:10











  • @MarianG. Thanks, I fully agree with that. I was not sure if the OP wants to do something with the coordinates later on, at least their names suggest something like begin{scope}[x={(x)},y={(y)}], so I kept them.

    – marmot
    Mar 27 at 20:06

















Nice explanation. I want to notice that your "one line" can further be simplified to draw[<->,thick] (0,3) |- (4,0) node[right] {$x$} node[at start,above] {$y$}; since the coordinates (x) and (y) seems to be redundant for further purposes (IMHO). But I know you know that fact (you know everything about TikZ).

– Marian G.
Mar 27 at 19:10





Nice explanation. I want to notice that your "one line" can further be simplified to draw[<->,thick] (0,3) |- (4,0) node[right] {$x$} node[at start,above] {$y$}; since the coordinates (x) and (y) seems to be redundant for further purposes (IMHO). But I know you know that fact (you know everything about TikZ).

– Marian G.
Mar 27 at 19:10













@MarianG. Thanks, I fully agree with that. I was not sure if the OP wants to do something with the coordinates later on, at least their names suggest something like begin{scope}[x={(x)},y={(y)}], so I kept them.

– marmot
Mar 27 at 20:06





@MarianG. Thanks, I fully agree with that. I was not sure if the OP wants to do something with the coordinates later on, at least their names suggest something like begin{scope}[x={(x)},y={(y)}], so I kept them.

– marmot
Mar 27 at 20:06











5














In section 17.2.1 of the TikZ manual, the commands for such works are shown:




  • path ... node ... (1.1)

    or node ... (1.2)


  • path ... coordinate ... (2.1)

    or coordinate ... (2.2)




coordinate ... node ... are not present for the same job! In fact, since coordinate is the same as path coordinate so coordinate (x) at (4,0) node[right] {$x$}; is understood as



path coordinate (x) at (4,0);  % or `coordinate (x) at (4,0);
path node[right] {$x$}; % (0,0) in case no coordinates are specified



This makes the outputs of coordinate (x) at (4,0) node[right] {$x$}; and node[right] at (x) {$x$}; not the same at all.



That is why we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
coordinate (x) at (2,0) node[draw,right] {world};
fill (x) circle (1pt)
(0,0) circle (1pt);
end{tikzpicture}
end{document}


and we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
node[draw] (x) at (2,0) {Hello} node[draw,right] {world};
fill (0,0) circle (1pt);
end{tikzpicture}
end{document}


So how to solve it? We can't combine (2.2) or (1.2) with ... node ..., but we can do it with (1.1) or (2.1):



path (4,0) coordinate (x) node[right] {$x$};


Remember that draw, fill, filldraw... are all daughters of path, so they are all valid. But node and coordinate are not – they are less general versions of path..





I found this using the draw powerful trick :)






share|improve this answer


























  • @Kpym Thanks! Edited.

    – JouleV
    Mar 26 at 11:54
















5














In section 17.2.1 of the TikZ manual, the commands for such works are shown:




  • path ... node ... (1.1)

    or node ... (1.2)


  • path ... coordinate ... (2.1)

    or coordinate ... (2.2)




coordinate ... node ... are not present for the same job! In fact, since coordinate is the same as path coordinate so coordinate (x) at (4,0) node[right] {$x$}; is understood as



path coordinate (x) at (4,0);  % or `coordinate (x) at (4,0);
path node[right] {$x$}; % (0,0) in case no coordinates are specified



This makes the outputs of coordinate (x) at (4,0) node[right] {$x$}; and node[right] at (x) {$x$}; not the same at all.



That is why we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
coordinate (x) at (2,0) node[draw,right] {world};
fill (x) circle (1pt)
(0,0) circle (1pt);
end{tikzpicture}
end{document}


and we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
node[draw] (x) at (2,0) {Hello} node[draw,right] {world};
fill (0,0) circle (1pt);
end{tikzpicture}
end{document}


So how to solve it? We can't combine (2.2) or (1.2) with ... node ..., but we can do it with (1.1) or (2.1):



path (4,0) coordinate (x) node[right] {$x$};


Remember that draw, fill, filldraw... are all daughters of path, so they are all valid. But node and coordinate are not – they are less general versions of path..





I found this using the draw powerful trick :)






share|improve this answer


























  • @Kpym Thanks! Edited.

    – JouleV
    Mar 26 at 11:54














5












5








5







In section 17.2.1 of the TikZ manual, the commands for such works are shown:




  • path ... node ... (1.1)

    or node ... (1.2)


  • path ... coordinate ... (2.1)

    or coordinate ... (2.2)




coordinate ... node ... are not present for the same job! In fact, since coordinate is the same as path coordinate so coordinate (x) at (4,0) node[right] {$x$}; is understood as



path coordinate (x) at (4,0);  % or `coordinate (x) at (4,0);
path node[right] {$x$}; % (0,0) in case no coordinates are specified



This makes the outputs of coordinate (x) at (4,0) node[right] {$x$}; and node[right] at (x) {$x$}; not the same at all.



That is why we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
coordinate (x) at (2,0) node[draw,right] {world};
fill (x) circle (1pt)
(0,0) circle (1pt);
end{tikzpicture}
end{document}


and we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
node[draw] (x) at (2,0) {Hello} node[draw,right] {world};
fill (0,0) circle (1pt);
end{tikzpicture}
end{document}


So how to solve it? We can't combine (2.2) or (1.2) with ... node ..., but we can do it with (1.1) or (2.1):



path (4,0) coordinate (x) node[right] {$x$};


Remember that draw, fill, filldraw... are all daughters of path, so they are all valid. But node and coordinate are not – they are less general versions of path..





I found this using the draw powerful trick :)






share|improve this answer















In section 17.2.1 of the TikZ manual, the commands for such works are shown:




  • path ... node ... (1.1)

    or node ... (1.2)


  • path ... coordinate ... (2.1)

    or coordinate ... (2.2)




coordinate ... node ... are not present for the same job! In fact, since coordinate is the same as path coordinate so coordinate (x) at (4,0) node[right] {$x$}; is understood as



path coordinate (x) at (4,0);  % or `coordinate (x) at (4,0);
path node[right] {$x$}; % (0,0) in case no coordinates are specified



This makes the outputs of coordinate (x) at (4,0) node[right] {$x$}; and node[right] at (x) {$x$}; not the same at all.



That is why we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
coordinate (x) at (2,0) node[draw,right] {world};
fill (x) circle (1pt)
(0,0) circle (1pt);
end{tikzpicture}
end{document}


and we get



enter image description here



with this code



documentclass[tikz]{standalone}
begin{document}
begin{tikzpicture}
node[draw] (x) at (2,0) {Hello} node[draw,right] {world};
fill (0,0) circle (1pt);
end{tikzpicture}
end{document}


So how to solve it? We can't combine (2.2) or (1.2) with ... node ..., but we can do it with (1.1) or (2.1):



path (4,0) coordinate (x) node[right] {$x$};


Remember that draw, fill, filldraw... are all daughters of path, so they are all valid. But node and coordinate are not – they are less general versions of path..





I found this using the draw powerful trick :)







share|improve this answer














share|improve this answer



share|improve this answer








edited 2 days ago

























answered Mar 25 at 17:15









JouleVJouleV

9,16322256




9,16322256













  • @Kpym Thanks! Edited.

    – JouleV
    Mar 26 at 11:54



















  • @Kpym Thanks! Edited.

    – JouleV
    Mar 26 at 11:54

















@Kpym Thanks! Edited.

– JouleV
Mar 26 at 11:54





@Kpym Thanks! Edited.

– JouleV
Mar 26 at 11:54











3














try the following:



documentclass{article}
usepackage{tikz}
%usetikzlibrary{intersections} not used in this mwe

begin{document}
begin{tikzpicture}
coordinate[label=right:$x$] (x) at (4,0);
coordinate[label=above:$y$] (y) at (0,3);

draw[<->,thick] (y) |- (x);
end{tikzpicture}
end{document}


enter image description here



addendum:
as response to Martin Argerami coments below my answer, who is convinced that my answer not address op problem (and consequently he apparently down vote it, for what i'm very grateful. his message is very clear: don't show people some possible solution for which they not explicit ask). however let me note some my view on the problem:




  • in answer i only suggest to see if my suggestion can help to op

  • it solve the problem of placement of coordinate labels (in this is all about it, isn't it?)

  • if the answer is not helpful, op can select one from other two answers as the best one and accept it.

  • to be strict to Martins' consideration, that he should down vote many other answers, which try show another possibility to achieve op goal (nice picture, table, etc) or is written as exercise (personal or for op) ...

  • on the end, i'm still convinced, that my answer not harm anyone, it only show another way how to draw coordinates shown in op mwe. is this worth for down voting it?






share|improve this answer





















  • 1





    I don't see how this answers the question.

    – Martin Argerami
    Mar 27 at 15:15











  • is image not enough illustrative? the problem in question is avoided with use of coordinate instead of nodes which also make code shorter.

    – Zarko
    Mar 27 at 15:25













  • The OP knows how to draw the image. The question was why his second set of commands didn't put the x and y where he expected them. That's an issue with tikz syntax, and it is addressed by the other answers.

    – Martin Argerami
    Mar 27 at 16:49











  • well, why than complain on my answer? if op doesn't like mine solution, (in which i show an alternative, to my opinion better solution for his/her problem) (s)he can accept one of other two answers.

    – Zarko
    Mar 27 at 17:26











  • I didn't complain; I stated that it doesn't address OP's question. If OP doesn't like your solution he can choose another answer. If I don't like you solution, I can downvote it. And I can certainly comment that your answer doesn't address OP's question.

    – Martin Argerami
    Mar 27 at 17:57
















3














try the following:



documentclass{article}
usepackage{tikz}
%usetikzlibrary{intersections} not used in this mwe

begin{document}
begin{tikzpicture}
coordinate[label=right:$x$] (x) at (4,0);
coordinate[label=above:$y$] (y) at (0,3);

draw[<->,thick] (y) |- (x);
end{tikzpicture}
end{document}


enter image description here



addendum:
as response to Martin Argerami coments below my answer, who is convinced that my answer not address op problem (and consequently he apparently down vote it, for what i'm very grateful. his message is very clear: don't show people some possible solution for which they not explicit ask). however let me note some my view on the problem:




  • in answer i only suggest to see if my suggestion can help to op

  • it solve the problem of placement of coordinate labels (in this is all about it, isn't it?)

  • if the answer is not helpful, op can select one from other two answers as the best one and accept it.

  • to be strict to Martins' consideration, that he should down vote many other answers, which try show another possibility to achieve op goal (nice picture, table, etc) or is written as exercise (personal or for op) ...

  • on the end, i'm still convinced, that my answer not harm anyone, it only show another way how to draw coordinates shown in op mwe. is this worth for down voting it?






share|improve this answer





















  • 1





    I don't see how this answers the question.

    – Martin Argerami
    Mar 27 at 15:15











  • is image not enough illustrative? the problem in question is avoided with use of coordinate instead of nodes which also make code shorter.

    – Zarko
    Mar 27 at 15:25













  • The OP knows how to draw the image. The question was why his second set of commands didn't put the x and y where he expected them. That's an issue with tikz syntax, and it is addressed by the other answers.

    – Martin Argerami
    Mar 27 at 16:49











  • well, why than complain on my answer? if op doesn't like mine solution, (in which i show an alternative, to my opinion better solution for his/her problem) (s)he can accept one of other two answers.

    – Zarko
    Mar 27 at 17:26











  • I didn't complain; I stated that it doesn't address OP's question. If OP doesn't like your solution he can choose another answer. If I don't like you solution, I can downvote it. And I can certainly comment that your answer doesn't address OP's question.

    – Martin Argerami
    Mar 27 at 17:57














3












3








3







try the following:



documentclass{article}
usepackage{tikz}
%usetikzlibrary{intersections} not used in this mwe

begin{document}
begin{tikzpicture}
coordinate[label=right:$x$] (x) at (4,0);
coordinate[label=above:$y$] (y) at (0,3);

draw[<->,thick] (y) |- (x);
end{tikzpicture}
end{document}


enter image description here



addendum:
as response to Martin Argerami coments below my answer, who is convinced that my answer not address op problem (and consequently he apparently down vote it, for what i'm very grateful. his message is very clear: don't show people some possible solution for which they not explicit ask). however let me note some my view on the problem:




  • in answer i only suggest to see if my suggestion can help to op

  • it solve the problem of placement of coordinate labels (in this is all about it, isn't it?)

  • if the answer is not helpful, op can select one from other two answers as the best one and accept it.

  • to be strict to Martins' consideration, that he should down vote many other answers, which try show another possibility to achieve op goal (nice picture, table, etc) or is written as exercise (personal or for op) ...

  • on the end, i'm still convinced, that my answer not harm anyone, it only show another way how to draw coordinates shown in op mwe. is this worth for down voting it?






share|improve this answer















try the following:



documentclass{article}
usepackage{tikz}
%usetikzlibrary{intersections} not used in this mwe

begin{document}
begin{tikzpicture}
coordinate[label=right:$x$] (x) at (4,0);
coordinate[label=above:$y$] (y) at (0,3);

draw[<->,thick] (y) |- (x);
end{tikzpicture}
end{document}


enter image description here



addendum:
as response to Martin Argerami coments below my answer, who is convinced that my answer not address op problem (and consequently he apparently down vote it, for what i'm very grateful. his message is very clear: don't show people some possible solution for which they not explicit ask). however let me note some my view on the problem:




  • in answer i only suggest to see if my suggestion can help to op

  • it solve the problem of placement of coordinate labels (in this is all about it, isn't it?)

  • if the answer is not helpful, op can select one from other two answers as the best one and accept it.

  • to be strict to Martins' consideration, that he should down vote many other answers, which try show another possibility to achieve op goal (nice picture, table, etc) or is written as exercise (personal or for op) ...

  • on the end, i'm still convinced, that my answer not harm anyone, it only show another way how to draw coordinates shown in op mwe. is this worth for down voting it?







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 27 at 18:38

























answered Mar 25 at 17:14









ZarkoZarko

128k868168




128k868168








  • 1





    I don't see how this answers the question.

    – Martin Argerami
    Mar 27 at 15:15











  • is image not enough illustrative? the problem in question is avoided with use of coordinate instead of nodes which also make code shorter.

    – Zarko
    Mar 27 at 15:25













  • The OP knows how to draw the image. The question was why his second set of commands didn't put the x and y where he expected them. That's an issue with tikz syntax, and it is addressed by the other answers.

    – Martin Argerami
    Mar 27 at 16:49











  • well, why than complain on my answer? if op doesn't like mine solution, (in which i show an alternative, to my opinion better solution for his/her problem) (s)he can accept one of other two answers.

    – Zarko
    Mar 27 at 17:26











  • I didn't complain; I stated that it doesn't address OP's question. If OP doesn't like your solution he can choose another answer. If I don't like you solution, I can downvote it. And I can certainly comment that your answer doesn't address OP's question.

    – Martin Argerami
    Mar 27 at 17:57














  • 1





    I don't see how this answers the question.

    – Martin Argerami
    Mar 27 at 15:15











  • is image not enough illustrative? the problem in question is avoided with use of coordinate instead of nodes which also make code shorter.

    – Zarko
    Mar 27 at 15:25













  • The OP knows how to draw the image. The question was why his second set of commands didn't put the x and y where he expected them. That's an issue with tikz syntax, and it is addressed by the other answers.

    – Martin Argerami
    Mar 27 at 16:49











  • well, why than complain on my answer? if op doesn't like mine solution, (in which i show an alternative, to my opinion better solution for his/her problem) (s)he can accept one of other two answers.

    – Zarko
    Mar 27 at 17:26











  • I didn't complain; I stated that it doesn't address OP's question. If OP doesn't like your solution he can choose another answer. If I don't like you solution, I can downvote it. And I can certainly comment that your answer doesn't address OP's question.

    – Martin Argerami
    Mar 27 at 17:57








1




1





I don't see how this answers the question.

– Martin Argerami
Mar 27 at 15:15





I don't see how this answers the question.

– Martin Argerami
Mar 27 at 15:15













is image not enough illustrative? the problem in question is avoided with use of coordinate instead of nodes which also make code shorter.

– Zarko
Mar 27 at 15:25







is image not enough illustrative? the problem in question is avoided with use of coordinate instead of nodes which also make code shorter.

– Zarko
Mar 27 at 15:25















The OP knows how to draw the image. The question was why his second set of commands didn't put the x and y where he expected them. That's an issue with tikz syntax, and it is addressed by the other answers.

– Martin Argerami
Mar 27 at 16:49





The OP knows how to draw the image. The question was why his second set of commands didn't put the x and y where he expected them. That's an issue with tikz syntax, and it is addressed by the other answers.

– Martin Argerami
Mar 27 at 16:49













well, why than complain on my answer? if op doesn't like mine solution, (in which i show an alternative, to my opinion better solution for his/her problem) (s)he can accept one of other two answers.

– Zarko
Mar 27 at 17:26





well, why than complain on my answer? if op doesn't like mine solution, (in which i show an alternative, to my opinion better solution for his/her problem) (s)he can accept one of other two answers.

– Zarko
Mar 27 at 17:26













I didn't complain; I stated that it doesn't address OP's question. If OP doesn't like your solution he can choose another answer. If I don't like you solution, I can downvote it. And I can certainly comment that your answer doesn't address OP's question.

– Martin Argerami
Mar 27 at 17:57





I didn't complain; I stated that it doesn't address OP's question. If OP doesn't like your solution he can choose another answer. If I don't like you solution, I can downvote it. And I can certainly comment that your answer doesn't address OP's question.

– Martin Argerami
Mar 27 at 17:57


















draft saved

draft discarded




















































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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481386%2fnode-command-while-defining-a-coordinate-in-tikz%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

Plaza Victoria

In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...