Folgefrage zu: Was ist falsch an der pgf-Funktionsdefinition?

Problemcode:

\documentclass[book,12pt,titlepage]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage{pdfpages}
\usepackage{pgf,tikz}
\usetikzlibrary{shapes,shadows,arrows,intersections,matrix}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}

 \begin{document}
\definecolor{cczzqq}{rgb}{0.8,0.6,0}
\definecolor{qqzzcc}{rgb}{0,0.6,0.8}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]

\draw[->,color=black] (-0.5,0) -- (0.5,0);

\foreach \x in {-0.5,-0.4,-0.3,-0.2,-0.1,0.2,0.3,0.4}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
\draw[->,color=black] (0,-0.26) -- (0,0.52);
\foreach \y in {-0.2,0.2,0.3,0.4,0.5}
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
 \draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};
\clip(-0.5,-0.26) rectangle (0.5,0.52);
\draw[smooth,samples=100,domain=0.01:0.4957841792409696] plot(\x,{\x^2*sin((1/(\x))*180/pi)});
\draw[smooth,samples=100,domain=-0.5:0.01] plot(\x,{\x^3*sin((1/(\x))*180/pi)});
\draw[color=qqzzcc, smooth,samples=100,domain=-0.5015272062185642:0.4957841792409696] plot(\x,{0-\x^2});
\draw[color=cczzqq, smooth,samples=100,domain=-0.5015272062185642:0.4957841792409696] plot(\x,{\x^2});
\draw[color=cczzqq, smooth,samples=100,domain=-0.5015272062185642:0.4957841792409696] plot(\x,{\x^2});
\draw (-0.27,0.18) node[anchor=north west] {$y=x^2\cdot \sin ( 1/x)$};
\end{tikzpicture}
\end{document}

Exportiert aus Geogebra, etwa so sollte es werden:

Screenshot

Fehlermeldung:

! Dimension too large.

Welche Dimension muß ich denn nun ändern ?

gefragt 19 Nov '13, 10:21

butts's gravatar image

butts
674163440
Akzeptiert-Rate: 40%

bearbeitet 19 Nov '13, 13:11

cgnieder's gravatar image

cgnieder
22.1k253463

@johannes ok ich habe offensichtlich einen häufig auftretenden Fehler hier im Forum thematisiert. Aber was müßte ich denn nun machen um das geschilderte Problem zu beheben ??

(19 Nov '13, 11:13) butts

Es wäre schön, wenn du die Frage noch etwas erweitern könntest. In der anderen Frage hilft eventuell das Verscheieben der Domain von null weg (muss ja nicht viel sein). Aber wie Thorsten schon schrieb, von Hand geht das bestimmt komfortabler.

(19 Nov '13, 11:22) Johannes

@butts Hier gibt es keine "Threads". Wir möchten keine seitenlangen verschachtelten Diskussionen, wo ein anderer Suchender die Lösung(en) schwer findet. Hier ist das System: "Spezifische Frage kriegt konkrete Antwort(en)". Jedes einzelne Problem kriegt eine separate Frage. So kann man Fragen Themen/Tags zuordnen, und später einfacher finden anhand Thema&Titel und die Top-Lösung direkt darunter, statt in langen Threads verstreut. Ziel ist der Aufbau einer katalogisierten Lösungsdatenbank für TeX - nicht nur einem Einzelnen helfen und der Nachwelt unsortierte Threads hinterlassen.

(19 Nov '13, 11:25) stefan ♦♦

@butts Soll heißen: Formuliere verschiedene Probleme bitte möglichst in einzelnen Fragen, die für sich genommen verständlich sind. Der nächste, der mit verwandtem Problem per google hier landet, wird es Dir danken.

(19 Nov '13, 11:27) stefan ♦♦

@stefan also es gibt von Seiten der ( ich nenne diese jetzt mal so ) MACHER dieses Forums offensichtlich noch eine übergeordnete Absicht mit/ hinter/ zu diesem Forum. Das war mir bisher nicht bewußt!!!!

Eine Katalogisierung von Fragen und Lösungen nach einem bestimmten System erleichtert es Nachfolgenden sicher schnell die gewünschte Antwort auf ihre Frage zu finden. Aber Mich als jemand mit konkreter Frage überfordert es im Moment ziemlich neben den sachlichen Erwägungen auch noch ÜBERGEORDNETE Notwendigkeiten im Blick haben "zu müssen"

(19 Nov '13, 11:35) butts

@butts Ist ja kein Problem, wir erklären gern, wie der besondere Weg hier ist, um ein besonders schönes Archiv zu schaffen. Der "Deal" ist: formuliere Fragen gut, verfeinere ggf. mit Screenshot o.ä. durch weiteres Editieren, wenn Du Rückfragen in Kommentaren bekommst. Die "Macher" danken es mit ebenso gut formulierten Lösungen und freuen sich über den fortschreitenden Aufbau des Archivs. Ich denke, das ist ok, dass ein Fragesteller sich in das hier verwendete Format eindenkt und Fragen auch überarbeitet, dafür kannst Du ALLE Fragen loswerden und kriegst kompetente Hilfe. ;-)

(19 Nov '13, 11:53) stefan ♦♦

@johannes ... was meinst Du mit "die Frage noch etwas erweitern" ? Wenn STEFAN aus einer Frage von mir eine Folgefrage macht, soll ICH den Wortlaut dieser Frage, die eigentlich von Stefan angeregt wurde, dann erweitern ?

(19 Nov '13, 11:59) butts

@butts Ich habe Deinen kurzen Kommentar mit der Frage lediglich hierher kopiert. Dann Deinen Code und Screenshot herkopiert, damit die Antworter es komfortabel haben. Der Post hier gehört Dir, Du kannst ihn jederzeit ändern. Ich kann den Post auch wieder löschen, wenn Du ihn nur als MEINEN betrachtest.

(19 Nov '13, 12:10) stefan ♦♦
Ergebnis 5 von 8 show 3 more comments

@esdd hat in ihrer Antwort zur ursprünglichen Frage schon eine funktionierende Lösung präsentiert.

Der Fehler

! Dimension too large.

kann bei den verschiedensten Problemstellungen auftauchen. Das Grundproblem dahinter ist, das TeX nicht dafür gedacht war, größere Rechnungen zu machen. Von sich aus kennt TeX nur die Rechnung mit ganzen Zahlen und die Rechnung mit Längen. Hat man ein Paket, das offensichtlich Rechnungen mit Kommazahlen oder Gleitkommazahlen vornimmt, dann nimmt es unter der Haube in der Regel den Umweg über Längen. Allerdings können die Zahlen hier nicht beliebig groß werden. Wenn während der Rechnung Werte entstehen, die größer als die maximal mögliche Länge sind, kommt es zu besagtem Fehler.

Falls irgendjemand es komisch vorkommen sollte, dass eine Programmiersprache eine solche Einschränkung hat, dann denke man daran, dass TeX für das Setzen von Büchern entwickelt wurde und nicht dafür, komplexe Berechnungen durchzuführen.

Die verschiedenen Pakete, die dennoch solche Brechenungen durchführen, sind sich der Einschränkung in der Regel bewusst und weisen in ihren Dokumentationen normalerweise auch darauf hin und bieten u.U. auch Vorschläge für Workarounds oder Alternativen.

Zitat aus dem pgfmanual:

It should be noted that all calculations must not exceed ±16383.99999 at any point, because the underlying computations rely on TeX dimensions. This means that many of the underlying computations are necessarily approximate and that in addition, are not very fast. TeX is, after all, a typesetting language and not ideally suited to relatively advanced mathematical operations. However, it is possible to change the computations as described in Section 76.

Laut dem TeX Book ist

16383.99998 pt (TeX’s largest dimen)

@cfeuersaenger hat in Notes On Programming in TeX geschrieben:

The \dimen registers perform their arithmetic's internally with 32 bit scaled integers, so called ‘scaled point’ with unit sp. It holds 1 pt = 65536 sp = 216 sp. One of the 32 bits is used as sign. The total number range in pt is [−(230 − 1)/216, (230 − 1)/216 ] = [−16383.9998, +16383.9998]1.

1Please note that this does not cover the complete range of a 32 bit integer, I do not know why

Dank an @MarcoDaniel für das Zusammensuchen der Zitate!

Permanenter link

beantwortet 19 Nov '13, 12:59

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 20 Nov '13, 00:20

Sehr gute Hintergrundinformation!

(19 Nov '13, 13:06) stefan ♦♦

„Falls irgendjemand es komisch vorkommen sollte, dass eine Programmiersprache eine solche Einschränkung hat […]“: Du sagst zwar direkt anschließend, dass TeX fürs „Setzen von Büchern entwickelt wurde”, ich würde aber noch einen Schritt weitergehen und bei TeX nicht mal von einer Programmiersprache sprechen.

Letzlich ist TeX nur ein „Textsatzsystem mit eingebauter Makrosprache, die ebenfalls als TeX bezeichnet wird. “. TeX (das System/die Software) ist programmiert und interpretiert TeX (die Makrosprache).

(20 Nov '13, 07:40) Qrrbrbirlbel

@Qrrbrbirlbel ich muss gestehen, dass ich als nicht-Informatiker nicht genau weiß, was eine Programmiersprache eigentlich ist, aber zumindest scheint TeX alle formalen Bedingungen zu erfüllen, wenn ich an die diesbezüglichen Posts auf TeX.sx denke. Auch kein Argument: Wikipedia hat TeX in der Liste der Programmiersprachen. Und man muss TeX ja nicht zum Setzen von Büchern verwenden :)

(20 Nov '13, 09:56) cgnieder
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×128
×28

gestellte Frage: 19 Nov '13, 10:21

Frage wurde gesehen: 30,047 Mal

zuletzt geändert: 20 Nov '13, 09:56