我无法克服这个小问题。\ifnum
我使用 pgfplot 在坐标周围设置标签位置。这很好用但:
我只能测试变量是否\coordindex
大于或小于某个值。我希望能够测试索引是否等于某个数字。Tex 给出了这个错误,以防我\ifnum\coordindex=0
第一次使用。
缺少 = 插入 \ifnum。\end{axis}
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\pgfplotsset{
name nodes near coords/.style={
every node near coord/.append style={
anchor=center, %
name=#1\coordindex, % naming of npdes with running index
alias=#1last,
},
},
name nodes near coords/.default=coordnode
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=\textwidth,
height=.3\textheight,
scale mode = scale uniformly,
scale only axis,
xmin=-200,
xmax= 250,
ymin=- 50,
ymax= 400,
axis x line = middle,
axis y line = left,
grid = none,
xtick = {-200, -100, ...,300},
ytick = {-100, 0, ...,400},
minor tick num = 1,
ytick align = outside,
extra x ticks={0},
extra x tick style={grid=major},
xlabel={x / mm},
ylabel={y / mm},
]
\addplot+[
color=orange,
ultra thick,
shape=circle,
nodes near coords={},
every node near coord/.append style={
label={
[black!80, label distance=-1ex]
\ifnum\coordindex<1
5
\else
% \ifnum\coordindex=3
% -135
% \else
180-\coordindex*45
% \fi
\fi
:$p_{\coordindex}$
}
},
name nodes near coords=p
]
table{%
0 0
-79.9393 236.8749
143.0014 350.0007
143.0014 300.0000
200.0008 300.0000
};
\end{axis}
\end{tikzpicture}
\end{document}
我也尝试过这个ifthen
包,但没有成功。请问有人能快速解决这个问题吗?我做错了什么?根据文档,这种情况不应该发生。
也许你们中的一个人也提示了如何以与设置 xlabel 相同的方式打印 ylabel;就在 y 标签的顶部和/或旁边。
答案1
这类似于为什么 \ifnum 在 TikZ 样式定义中不起作用?,但情况有所不同。
在处理时label={...}
,PGF 会寻找=
;因此,一种解决方法是将其隐藏:
every node near coord/.append style={
label={
[black!80, label distance=-1ex]
\ifnum\coordindex<1
5
\else
\ifnum\coordindex\equals 3
-135
\else
180-\coordindex*45
\fi
\fi
:$p_{\coordindex}$
}
},
其中\equals
在序言中定义为
\newcommand{\equals}{=}
另一种可能性:
every node near coord/.append style={
label={
[black!80, label distance=-1ex]
\numbercompare{\coordindex<1}
{5}
{\numbercompare{\coordindex=3}{-135}{180-\coordindex*45}}%
:$p_{\coordindex}$
}
},
这需要
\usepackage{expl3}
\ExplSyntaxOn
\cs_set_eq:NN \numbercompare \int_compare:nTF
\ExplSyntaxOff