我無法克服這個討厭的小問題。使用\ifnum
我在 pgfplot 中的座標周圍設定標籤位置。這很好用但:
我只能測試變數是否\coordindex
大於或小於某個值。我希望能夠測試索引是否等於數字。如果我\ifnum\coordindex=0
第一次使用,Tex 會給我這個錯誤。
缺少 = 為 \ifnum 插入。 \結束{軸}
\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