Combining calc and perpendicular coordinates in tikz
Clash Royale CLAN TAG#URR8PPP
up vote
7
down vote
favorite
As it is described there, the following does not compile:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ( ($ (node1.south) + (1,0) $) |- node2.north);
endtikzpicture
enddocument
Why? How to make it work?
tikz-pgf incompatibility coordinates calc
add a comment |Â
up vote
7
down vote
favorite
As it is described there, the following does not compile:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ( ($ (node1.south) + (1,0) $) |- node2.north);
endtikzpicture
enddocument
Why? How to make it work?
tikz-pgf incompatibility coordinates calc
add a comment |Â
up vote
7
down vote
favorite
up vote
7
down vote
favorite
As it is described there, the following does not compile:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ( ($ (node1.south) + (1,0) $) |- node2.north);
endtikzpicture
enddocument
Why? How to make it work?
tikz-pgf incompatibility coordinates calc
As it is described there, the following does not compile:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ( ($ (node1.south) + (1,0) $) |- node2.north);
endtikzpicture
enddocument
Why? How to make it work?
tikz-pgf incompatibility coordinates calc
asked Aug 27 at 10:07


iago-lito
610411
610411
add a comment |Â
add a comment |Â
3 Answers
3
active
oldest
votes
up vote
8
down vote
accepted
The syntax of the line to
operation given in the manual is to place |-
between two coordinates:
Sometimes you want to connect two points via straight lines that are only horizontal and vertical. For this, you can use two path construction operations.
path . . . -|< coordinate or cycle> . . . ;
This operation means
“first horizontal, then vertical.â€Â
Following by these example:
begintikzpicture
draw (0,0) node(a) [draw] A (1,1) node(b) [draw] B;
draw (a.north) |- (b.west);
draw[color=red] (a.east) -| (2,1.5) -| (b.north);
endtikzpicture
and these drawing:
Thus, this two-path operation is not intended to make a translation from one point to another.
This is a handy shortcut when you need to draw horizontal lines followed by vertical lines or vice versa.
You just have to write (syntactically) in your code:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
instead of
draw ($ (node1.south) + (1,0) $) to ( ( ( $ (node1.south) + (1,0) $) |- node2.north);`
Your code becomes like this:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
%draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% now working too:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
endtikzpicture
enddocument
To have the same path as the one you want, you must build your path as indicated by @marmot or @ignasi.
Not clear what is the use of($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $)
in the second path.
– Kpym
Aug 27 at 12:00
@Kpym yes, i edited my answer
– AndréC
Aug 27 at 15:18
add a comment |Â
up vote
7
down vote
Just for completeness: a version that is really the equivalent of the first. AndreC's nice answer is correct but I don't see how the second path, which has a corner, is the shifted version of the first one.
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ([xshift=1cm] node1.south |- node2.north);
endtikzpicture
enddocument
1
Interesting, this adds semantics to the syntactic correction, thanks :)
– iago-lito
Aug 27 at 11:05
add a comment |Â
up vote
4
down vote
You can always declare an auxiliary coordinate and use it. This way you don't need to remember which is the working syntax ;-)
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% working:
draw ($ (node1.south) + (1,0) $) coordinate (aux) to (aux |- node2.north);
endtikzpicture
enddocument
That is true. I was rather willing to avoid this (the lazyness is about 'picking an unused name for the auxiliary coordinate' XD), but it is a useful workaround. Cheers :)
– iago-lito
Aug 27 at 12:13
1
@iago-lito you just need to declare a non used name if all previously declared are relevant later on, otherwise you can reuse them.
– Ignasi
Aug 27 at 12:20
Yes, this is how I also do it in the general case.... ;-) +1
– marmot
Aug 27 at 12:23
Correct. This is an easy choice when working on a neat document. Not when rushing to produce a big dirty one. I hate this but sometimes your environment dictates it's better you don't ponder anything :'( I usually enforceaux
,tp
, etc. never to be "relevant later on".. until one day I'll wonder "what's happening?!" XD
– iago-lito
Aug 27 at 12:29
add a comment |Â
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
8
down vote
accepted
The syntax of the line to
operation given in the manual is to place |-
between two coordinates:
Sometimes you want to connect two points via straight lines that are only horizontal and vertical. For this, you can use two path construction operations.
path . . . -|< coordinate or cycle> . . . ;
This operation means
“first horizontal, then vertical.â€Â
Following by these example:
begintikzpicture
draw (0,0) node(a) [draw] A (1,1) node(b) [draw] B;
draw (a.north) |- (b.west);
draw[color=red] (a.east) -| (2,1.5) -| (b.north);
endtikzpicture
and these drawing:
Thus, this two-path operation is not intended to make a translation from one point to another.
This is a handy shortcut when you need to draw horizontal lines followed by vertical lines or vice versa.
You just have to write (syntactically) in your code:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
instead of
draw ($ (node1.south) + (1,0) $) to ( ( ( $ (node1.south) + (1,0) $) |- node2.north);`
Your code becomes like this:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
%draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% now working too:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
endtikzpicture
enddocument
To have the same path as the one you want, you must build your path as indicated by @marmot or @ignasi.
Not clear what is the use of($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $)
in the second path.
– Kpym
Aug 27 at 12:00
@Kpym yes, i edited my answer
– AndréC
Aug 27 at 15:18
add a comment |Â
up vote
8
down vote
accepted
The syntax of the line to
operation given in the manual is to place |-
between two coordinates:
Sometimes you want to connect two points via straight lines that are only horizontal and vertical. For this, you can use two path construction operations.
path . . . -|< coordinate or cycle> . . . ;
This operation means
“first horizontal, then vertical.â€Â
Following by these example:
begintikzpicture
draw (0,0) node(a) [draw] A (1,1) node(b) [draw] B;
draw (a.north) |- (b.west);
draw[color=red] (a.east) -| (2,1.5) -| (b.north);
endtikzpicture
and these drawing:
Thus, this two-path operation is not intended to make a translation from one point to another.
This is a handy shortcut when you need to draw horizontal lines followed by vertical lines or vice versa.
You just have to write (syntactically) in your code:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
instead of
draw ($ (node1.south) + (1,0) $) to ( ( ( $ (node1.south) + (1,0) $) |- node2.north);`
Your code becomes like this:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
%draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% now working too:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
endtikzpicture
enddocument
To have the same path as the one you want, you must build your path as indicated by @marmot or @ignasi.
Not clear what is the use of($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $)
in the second path.
– Kpym
Aug 27 at 12:00
@Kpym yes, i edited my answer
– AndréC
Aug 27 at 15:18
add a comment |Â
up vote
8
down vote
accepted
up vote
8
down vote
accepted
The syntax of the line to
operation given in the manual is to place |-
between two coordinates:
Sometimes you want to connect two points via straight lines that are only horizontal and vertical. For this, you can use two path construction operations.
path . . . -|< coordinate or cycle> . . . ;
This operation means
“first horizontal, then vertical.â€Â
Following by these example:
begintikzpicture
draw (0,0) node(a) [draw] A (1,1) node(b) [draw] B;
draw (a.north) |- (b.west);
draw[color=red] (a.east) -| (2,1.5) -| (b.north);
endtikzpicture
and these drawing:
Thus, this two-path operation is not intended to make a translation from one point to another.
This is a handy shortcut when you need to draw horizontal lines followed by vertical lines or vice versa.
You just have to write (syntactically) in your code:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
instead of
draw ($ (node1.south) + (1,0) $) to ( ( ( $ (node1.south) + (1,0) $) |- node2.north);`
Your code becomes like this:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
%draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% now working too:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
endtikzpicture
enddocument
To have the same path as the one you want, you must build your path as indicated by @marmot or @ignasi.
The syntax of the line to
operation given in the manual is to place |-
between two coordinates:
Sometimes you want to connect two points via straight lines that are only horizontal and vertical. For this, you can use two path construction operations.
path . . . -|< coordinate or cycle> . . . ;
This operation means
“first horizontal, then vertical.â€Â
Following by these example:
begintikzpicture
draw (0,0) node(a) [draw] A (1,1) node(b) [draw] B;
draw (a.north) |- (b.west);
draw[color=red] (a.east) -| (2,1.5) -| (b.north);
endtikzpicture
and these drawing:
Thus, this two-path operation is not intended to make a translation from one point to another.
This is a handy shortcut when you need to draw horizontal lines followed by vertical lines or vice versa.
You just have to write (syntactically) in your code:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
instead of
draw ($ (node1.south) + (1,0) $) to ( ( ( $ (node1.south) + (1,0) $) |- node2.north);`
Your code becomes like this:
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
%draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% now working too:
draw ($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $) |- (node2.north);
endtikzpicture
enddocument
To have the same path as the one you want, you must build your path as indicated by @marmot or @ignasi.
edited Aug 27 at 14:00
answered Aug 27 at 10:10
AndréC
2,912728
2,912728
Not clear what is the use of($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $)
in the second path.
– Kpym
Aug 27 at 12:00
@Kpym yes, i edited my answer
– AndréC
Aug 27 at 15:18
add a comment |Â
Not clear what is the use of($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $)
in the second path.
– Kpym
Aug 27 at 12:00
@Kpym yes, i edited my answer
– AndréC
Aug 27 at 15:18
Not clear what is the use of
($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $)
in the second path.– Kpym
Aug 27 at 12:00
Not clear what is the use of
($ (node1.south) + (1,0) $) to ($ (node1.south) + (1,0) $)
in the second path.– Kpym
Aug 27 at 12:00
@Kpym yes, i edited my answer
– AndréC
Aug 27 at 15:18
@Kpym yes, i edited my answer
– AndréC
Aug 27 at 15:18
add a comment |Â
up vote
7
down vote
Just for completeness: a version that is really the equivalent of the first. AndreC's nice answer is correct but I don't see how the second path, which has a corner, is the shifted version of the first one.
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ([xshift=1cm] node1.south |- node2.north);
endtikzpicture
enddocument
1
Interesting, this adds semantics to the syntactic correction, thanks :)
– iago-lito
Aug 27 at 11:05
add a comment |Â
up vote
7
down vote
Just for completeness: a version that is really the equivalent of the first. AndreC's nice answer is correct but I don't see how the second path, which has a corner, is the shifted version of the first one.
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ([xshift=1cm] node1.south |- node2.north);
endtikzpicture
enddocument
1
Interesting, this adds semantics to the syntactic correction, thanks :)
– iago-lito
Aug 27 at 11:05
add a comment |Â
up vote
7
down vote
up vote
7
down vote
Just for completeness: a version that is really the equivalent of the first. AndreC's nice answer is correct but I don't see how the second path, which has a corner, is the shifted version of the first one.
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ([xshift=1cm] node1.south |- node2.north);
endtikzpicture
enddocument
Just for completeness: a version that is really the equivalent of the first. AndreC's nice answer is correct but I don't see how the second path, which has a corner, is the shifted version of the first one.
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% not working:
draw ($ (node1.south) + (1,0) $) to ([xshift=1cm] node1.south |- node2.north);
endtikzpicture
enddocument
answered Aug 27 at 11:01


marmot
55.8k461121
55.8k461121
1
Interesting, this adds semantics to the syntactic correction, thanks :)
– iago-lito
Aug 27 at 11:05
add a comment |Â
1
Interesting, this adds semantics to the syntactic correction, thanks :)
– iago-lito
Aug 27 at 11:05
1
1
Interesting, this adds semantics to the syntactic correction, thanks :)
– iago-lito
Aug 27 at 11:05
Interesting, this adds semantics to the syntactic correction, thanks :)
– iago-lito
Aug 27 at 11:05
add a comment |Â
up vote
4
down vote
You can always declare an auxiliary coordinate and use it. This way you don't need to remember which is the working syntax ;-)
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% working:
draw ($ (node1.south) + (1,0) $) coordinate (aux) to (aux |- node2.north);
endtikzpicture
enddocument
That is true. I was rather willing to avoid this (the lazyness is about 'picking an unused name for the auxiliary coordinate' XD), but it is a useful workaround. Cheers :)
– iago-lito
Aug 27 at 12:13
1
@iago-lito you just need to declare a non used name if all previously declared are relevant later on, otherwise you can reuse them.
– Ignasi
Aug 27 at 12:20
Yes, this is how I also do it in the general case.... ;-) +1
– marmot
Aug 27 at 12:23
Correct. This is an easy choice when working on a neat document. Not when rushing to produce a big dirty one. I hate this but sometimes your environment dictates it's better you don't ponder anything :'( I usually enforceaux
,tp
, etc. never to be "relevant later on".. until one day I'll wonder "what's happening?!" XD
– iago-lito
Aug 27 at 12:29
add a comment |Â
up vote
4
down vote
You can always declare an auxiliary coordinate and use it. This way you don't need to remember which is the working syntax ;-)
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% working:
draw ($ (node1.south) + (1,0) $) coordinate (aux) to (aux |- node2.north);
endtikzpicture
enddocument
That is true. I was rather willing to avoid this (the lazyness is about 'picking an unused name for the auxiliary coordinate' XD), but it is a useful workaround. Cheers :)
– iago-lito
Aug 27 at 12:13
1
@iago-lito you just need to declare a non used name if all previously declared are relevant later on, otherwise you can reuse them.
– Ignasi
Aug 27 at 12:20
Yes, this is how I also do it in the general case.... ;-) +1
– marmot
Aug 27 at 12:23
Correct. This is an easy choice when working on a neat document. Not when rushing to produce a big dirty one. I hate this but sometimes your environment dictates it's better you don't ponder anything :'( I usually enforceaux
,tp
, etc. never to be "relevant later on".. until one day I'll wonder "what's happening?!" XD
– iago-lito
Aug 27 at 12:29
add a comment |Â
up vote
4
down vote
up vote
4
down vote
You can always declare an auxiliary coordinate and use it. This way you don't need to remember which is the working syntax ;-)
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% working:
draw ($ (node1.south) + (1,0) $) coordinate (aux) to (aux |- node2.north);
endtikzpicture
enddocument
You can always declare an auxiliary coordinate and use it. This way you don't need to remember which is the working syntax ;-)
documentclassreport
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
node at (0, 0) (node1) Hello;
node at (0, -2) (node2) World;
% working:
draw ($ (node1.south) + (1,0) $) to ( node1.south |- node2.north);
% working:
draw ($ (node1.south) + (1,0) $) coordinate (aux) to (aux |- node2.north);
endtikzpicture
enddocument
answered Aug 27 at 12:10
Ignasi
86.7k4154287
86.7k4154287
That is true. I was rather willing to avoid this (the lazyness is about 'picking an unused name for the auxiliary coordinate' XD), but it is a useful workaround. Cheers :)
– iago-lito
Aug 27 at 12:13
1
@iago-lito you just need to declare a non used name if all previously declared are relevant later on, otherwise you can reuse them.
– Ignasi
Aug 27 at 12:20
Yes, this is how I also do it in the general case.... ;-) +1
– marmot
Aug 27 at 12:23
Correct. This is an easy choice when working on a neat document. Not when rushing to produce a big dirty one. I hate this but sometimes your environment dictates it's better you don't ponder anything :'( I usually enforceaux
,tp
, etc. never to be "relevant later on".. until one day I'll wonder "what's happening?!" XD
– iago-lito
Aug 27 at 12:29
add a comment |Â
That is true. I was rather willing to avoid this (the lazyness is about 'picking an unused name for the auxiliary coordinate' XD), but it is a useful workaround. Cheers :)
– iago-lito
Aug 27 at 12:13
1
@iago-lito you just need to declare a non used name if all previously declared are relevant later on, otherwise you can reuse them.
– Ignasi
Aug 27 at 12:20
Yes, this is how I also do it in the general case.... ;-) +1
– marmot
Aug 27 at 12:23
Correct. This is an easy choice when working on a neat document. Not when rushing to produce a big dirty one. I hate this but sometimes your environment dictates it's better you don't ponder anything :'( I usually enforceaux
,tp
, etc. never to be "relevant later on".. until one day I'll wonder "what's happening?!" XD
– iago-lito
Aug 27 at 12:29
That is true. I was rather willing to avoid this (the lazyness is about 'picking an unused name for the auxiliary coordinate' XD), but it is a useful workaround. Cheers :)
– iago-lito
Aug 27 at 12:13
That is true. I was rather willing to avoid this (the lazyness is about 'picking an unused name for the auxiliary coordinate' XD), but it is a useful workaround. Cheers :)
– iago-lito
Aug 27 at 12:13
1
1
@iago-lito you just need to declare a non used name if all previously declared are relevant later on, otherwise you can reuse them.
– Ignasi
Aug 27 at 12:20
@iago-lito you just need to declare a non used name if all previously declared are relevant later on, otherwise you can reuse them.
– Ignasi
Aug 27 at 12:20
Yes, this is how I also do it in the general case.... ;-) +1
– marmot
Aug 27 at 12:23
Yes, this is how I also do it in the general case.... ;-) +1
– marmot
Aug 27 at 12:23
Correct. This is an easy choice when working on a neat document. Not when rushing to produce a big dirty one. I hate this but sometimes your environment dictates it's better you don't ponder anything :'( I usually enforce
aux
, tp
, etc. never to be "relevant later on".. until one day I'll wonder "what's happening?!" XD– iago-lito
Aug 27 at 12:29
Correct. This is an easy choice when working on a neat document. Not when rushing to produce a big dirty one. I hate this but sometimes your environment dictates it's better you don't ponder anything :'( I usually enforce
aux
, tp
, etc. never to be "relevant later on".. until one day I'll wonder "what's happening?!" XD– iago-lito
Aug 27 at 12:29
add a comment |Â
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
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f447936%2fcombining-calc-and-perpendicular-coordinates-in-tikz%23new-answer', 'question_page');
);
Post as a guest
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
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
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