梅威瑟:
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\begin{document}
\begin{tikzpicture}[scale=0.5]
\draw[<->] (0,8.5) node[above]{P}--(0,0)--(8.5,0) node[right]{Q};
\draw[name path=D] (0,0) plot [domain=0:8] (\x,8-\x) node[above right, pos = 0.9]{D};
\draw[name path=S] (0,0) plot [domain=0:7.5] (\x,2+\x) node[right]{$S$};
\draw[name path=S1] (0,0) plot [domain=0:7.5] (\x,\x) node[right]{$S + $ sub};
\end{tikzpicture}
\end{document}
请注意,在 Tikz 代码的第三行中,我使用了 pos = 0.9,据我所知,这应该将其放置在沿线的 9/10 处。相反,我得到的是:
知道为什么吗?
答案1
我同意 Torbjørn T. 的观点,并提出了一个略有不同的建议来实现预期效果:decorations.markings
,这适用于一般情节。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,decorations.markings}
\begin{document}
\begin{tikzpicture}[scale=0.5]
\draw[<->] (0,8.5) node[above]{P}--(0,0)--(8.5,0) node[right]{Q};
\draw[name path=D,postaction={decorate,decoration={markings,
mark=at position 0.9 with {\node[above right] (mypos){D};}}}] (0,0) plot [domain=0:8] (\x,8-\x);
\draw[name path=S] (0,0) plot [domain=0:7.5] (\x,2+\x) node[right]{$S$};
\draw[name path=S1] (0,0) plot [domain=0:7.5] (\x,\x) node[right]{$S + $ sub};
\end{tikzpicture}
\end{document}
答案2
该pos
参数仅适用于某些类型的路径构造,plot
据我所知,不属于这些类型。请参阅第 17.8 节将节点明确地放置在直线或曲线上在版本 3.0.1.a(当前稳定版本)手册的第 235 页。在描述pos
工作的地方之后,下一页有一句话说
对于所有其他路径构建操作,位置放置不起作用, 现在。
但至少对于这个简单的情况,找出正确的坐标很容易,所以你可以使用
\draw[name path=D] (0,8) -- (8,0) node[above right, pos = 0.9]{D};
反而。
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\begin{document}
\begin{tikzpicture}[scale=0.5]
\draw[<->] (0,8.5) node[above]{P}--(0,0)--(8.5,0) node[right]{Q};
\draw[name path=D] (0,8) -- (8,0) node[above right, pos = 0.9]{D};
\draw[name path=S] (0,0) plot [domain=0:7.5,samples=2] (\x,2+\x) node[right]{$S$};
\draw[name path=S1] (0,0) plot [domain=0:7.5,samples=2] (\x,\x) node[right]{$S + $ sub};
\end{tikzpicture}
\end{document}