Tikz:弯曲线上的中间标签

Tikz:弯曲线上的中间标签

以下是我有问题的代码:

\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}

在此处输入图片描述

相关内容