Ich kann dieses kleine, unangenehme Problem nicht lösen. \ifnum
Ich lege die Position der Beschriftungen um die Koordinaten in meinem pgfplot fest. Das funktioniert gutAber:
Ich kann nur testen, ob die Variable \coordindex
größer oder kleiner als ein bestimmter Wert ist. Ich möchte testen können, ob der Index einer Zahl entspricht. Tex gibt mir diesen Fehler, wenn ich es \ifnum\coordindex=0
zuerst verwende.
Fehlt = eingefügt für \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}
Ich habe es auch mit dem ifthen
Paket versucht, aber hatte kein Glück. Hat bitte jemand eine schnelle Lösung dafür? Was mache ich falsch? Laut dem Dokument sollte das nicht vorkommen.
Vielleicht hat ja auch jemand von Euch einen Tipp, wie man das Y-Label genauso ausdrucken kann, wie das X-Label gesetzt ist, also einfach über und/oder neben dem Y-Label.
Antwort1
Das ist ähnlich wieWarum funktioniert \ifnum nicht innerhalb von TikZ-Stildefinitionen?, aber die Situation ist anders.
Bei der Verarbeitung label={...}
von sucht PGF nach =
; ein Workaround besteht darin, es folgendermaßen zu verbergen:
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}$
}
},
wobei \equals
in der Präambel definiert wird durch
\newcommand{\equals}{=}
Andere Möglichkeit:
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}$
}
},
welches benötigt
\usepackage{expl3}
\ExplSyntaxOn
\cs_set_eq:NN \numbercompare \int_compare:nTF
\ExplSyntaxOff