以下是我有问题的代码:
\begin{tikzpicture}
\draw (0,0) to [bend left=20] (3,3) node[midway] {midway label};
\end{tikzpicture}
我想在线中间放置一个标签,但是标签却位于(0,0)
。
如果我移除[bend left=20]
,线不会弯曲,标签仍然会放错位置。如果我移除to
并用 替换它--
,那么它可以正常工作,但我的线不再弯曲。
\begin{tikzpicture}
\draw (0,0) -- (3,3) node[midway] {midway label};
\end{tikzpicture}
工作正常。
该问题出现在 MacTeX 2011 和 MacTeX 2012 中。
答案1
您应该移动node[midway] {midway label}
到最后一个坐标之前。
一些例子:
\documentclass[11pt,a4paper]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) to [bend left=20] node[midway] {midway label}(3,3) ;
\draw[xshift=4cm] (0,0) to [bend left=20] node[midway,left] {midway label}(3,3) ;
\draw[xshift=6cm] (0,0) to [bend left=20] node[midway,right] {midway label}(3,3) ;
\end{tikzpicture}
\begin{tikzpicture}
\draw (0,0) to [bend left=20] node[sloped,midway,above] {midway label}(3,3) ;
\end{tikzpicture}
\end{document}
答案2
您还可以使用pos=<value from 0 to 1>
键(参见手册第 16.8 节)指定节点在曲线上的位置。下面是一个小示例,以 0.1 为增量说明从 0 到 1 的情况:
\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm,landscape]{geometry}
\usepackage{tikz}
\begin{document}
\foreach \x in {0,0.1,...,1}
{ \begin{tikzpicture}[scale=0.2]
\draw (0,0) to [bend left=20] node[pos=\x,fill=red,circle,inner sep=2pt] {} (3,3) ;
\end{tikzpicture}
}
\end{document}