When I use the command below:

\draw (apex)+(1mm,0) -- node {$h$} (center)+(1mm,0);

where (apex) and (center) is predefined appropriately, then I have a problem where +(1mm, 0) is not applied to the (center) although it is applied well to (apex). How can I solve this problem?

  • Please make your code compilable next time! How should we know what you consider appropriate predefinitions? To answer this, people either have to create a minimal example, because you didn't provide one, or post without testing.
    – cfr
    Feb 28, 2017 at 0:49

2 Answers 2


The line is first drawn to (center), then +(1mm,0) causes a move-to operation to the right by 1 mm.

TikZ library calc helps:


\draw (apex) +(1mm, 0) -- node {$h$} ($(center) + (1mm, 0)$);
% or
\draw ($(apex) + (1mm, 0)$) -- node {$h$} ($(center) + (1mm, 0)$);

Also a solution without library calc is possible, e.g. by using a temporary coordinate:

\draw (center) +(1mm, 0) coordinate (tmp)
      (apex) +(1mm, 0) -- node {$h$} (tmp);

You can use the shift option for the coordinates.

\draw ([shift={(1mm,0)}]apex) -- node {$h$} ([shift={(1mm,0)}]center);


\draw ([xshift=1mm]apex) -- node {$h$} ([xshift=1mm]center);

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .