Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

13 Nov '15, 08:03

saputello's gravatar image

saputello
11.1k174365

Das ist ein Rundungsproblem, das in der [`pgf/tikz`](http://www.ctan.org/pkg/pgf)-Anleitung bei der Erklärung zu `\foreach` in Abschnitt 83 (derzeit Seite 902) sogar ausdrücklich erwähnt ist. Man kann das Problem aber mit `\pgfmathprintnumber` lösen: \documentclass{scrartcl} \usepackage{tikz} \begin{document} \begin{tikzpicture}[ %font=\footnotesize, >=latex, scale=0.65, x=10cm, y=10cm, ] %KoSy %Gitternetzlinien %\draw[very thin,color=gray] (-2,-4) grid (3,4); %Achsen \draw[->] (-0.05,0) -- (1.075,0) node[right, below] {Re}; \draw[->] (0,-0.05) -- (0,1.075) node[above, left] {Im}; %Achsenbeschriftung %Zahlen auf x-Achse \foreach \x in {0.1,0.2,...,1} { \pgfkeys{/pgf/number format/.cd,fixed,fixed zerofill,precision=1} \draw (\x,2pt) -- (\x, -2pt) node[below, font=\footnotesize] {$\pgfmathprintnumber{\x}$}; } %Zahlen auf y-Achse \foreach \y in {0.1,0.2,...,1.0} { \pgfkeys{/pgf/number format/.cd,fixed,fixed zerofill,precision=1} \draw (2pt,\y) -- (-2pt,\y) node[left, font=\footnotesize]{$\pgfmathprintnumber{\y}$}; } %Ursprung \node[below left] {$0$}; %Funktionen \def\a{0.3482759645} \def\b{0.6517240354} \coordinate(O) at (0,0); \coordinate(Z) at (\a,\b); \coordinate(W) at (\b,\a); \coordinate(ZplusW) at (\a+\b,\b+\a); \coordinate(absZi) at (0,\a^2+\b^2); %z=a+ib \draw[red, thick, ->] (O) -- (Z) node[sloped, above, midway, text=black, font=\sffamily]{(a1)} node[left]{$z$}; \end{tikzpicture} \end{document} ![Korrekte Abbildung][1] Ohne die Einstellung einer festen Anzahl an Nachkommastellen einschließlich Füllung mit Nullstellen via `\pgfkeys` würde übrigens die 1 ohne Nachkommastelle ausgegeben. ausgegeben. Wenn es für alle ausgegebenen Zahlen gelten soll, kann man das auch einmal global machen. Ich habe in dem Beispiel außerdem die Fallunterscheidung, ob `\x` bzw. `\y` Null ist entfernt, da der Wertebereich jeweils von 0,1 bis 1 geht und somit Null nicht im Wertebereich liegt und daher der getestete Sonderfall nie auftreten kann. [1]: http://texwelt.de/wissen/upfiles/test33_1.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

13 Nov '15, 08:00

saputello's gravatar image

saputello
11.1k174365

Das ist ein Rundungsproblem, das in der [`pgf/tikz`](http://www.ctan.org/pkg/pgf)-Anleitung bei der Erklärung zu `\foreach` in Abschnitt 83 (derzeit Seite 902) sogar ausdrücklich erwähnt ist. Man kann das Problem aber mit `\pgfmathprintnumber` lösen: \documentclass{scrartcl} \usepackage{tikz} \begin{document} \begin{tikzpicture}[ %font=\footnotesize, >=latex, scale=0.65, x=10cm, y=10cm, ] %KoSy %Gitternetzlinien %\draw[very thin,color=gray] (-2,-4) grid (3,4); %Achsen \draw[->] (-0.05,0) -- (1.075,0) node[right, below] {Re}; \draw[->] (0,-0.05) -- (0,1.075) node[above, left] {Im}; %Achsenbeschriftung %Zahlen auf x-Achse \foreach \x in {0.1,0.2,...,1} { \pgfkeys{/pgf/number format/.cd,fixed,fixed zerofill,precision=1} \draw (\x,2pt) -- (\x, -2pt) node[below, font=\footnotesize] {$\pgfmathprintnumber{\x}$}; } %Zahlen auf y-Achse \foreach \y in {0.1,0.2,...,1.0} { \pgfkeys{/pgf/number format/.cd,fixed,fixed zerofill,precision=1} \draw (2pt,\y) -- (-2pt,\y) node[left, font=\footnotesize]{$\pgfmathprintnumber{\y}$}; } %Ursprung \node[below left] {$0$}; %Funktionen \def\a{0.3482759645} \def\b{0.6517240354} \coordinate(O) at (0,0); \coordinate(Z) at (\a,\b); \coordinate(W) at (\b,\a); \coordinate(ZplusW) at (\a+\b,\b+\a); \coordinate(absZi) at (0,\a^2+\b^2); %z=a+ib \draw[red, thick, ->] (O) -- (Z) node[sloped, above, midway, text=black, font=\sffamily]{(a1)} node[left]{$z$}; \end{tikzpicture} \end{document} ![Korrekte Abbildung][1] Ohne die Einstellung einer festen Anzahl an Nachkommastellen via `\pgfkeys` würde übrigens die 1 ohne Nachkommastelle ausgegeben. Ich habe in dem Beispiel außerdem die Fallunterscheidung, ob `\x` bzw. `\y` Null ist entfernt, da der Wertebereich jeweils von 0,1 bis 1 geht und somit Null nicht im Wertebereich liegt und daher der getestete Sonderfall nie auftreten kann. [1]: http://texwelt.de/wissen/upfiles/test33_1.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

13 Nov '15, 07:57

saputello's gravatar image

saputello
11.1k174365