diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/pgfplots/todo.txt')
-rw-r--r-- | Master/texmf-dist/doc/latex/pgfplots/todo.txt | 403 |
1 files changed, 330 insertions, 73 deletions
diff --git a/Master/texmf-dist/doc/latex/pgfplots/todo.txt b/Master/texmf-dist/doc/latex/pgfplots/todo.txt index 49d55dc2452..2c27f484bbd 100644 --- a/Master/texmf-dist/doc/latex/pgfplots/todo.txt +++ b/Master/texmf-dist/doc/latex/pgfplots/todo.txt @@ -1,32 +1,77 @@ ------------------------------------------------------------- -FLEISS: +BUGS ------------------------------------------------------------- -+ mache paket-abhaengigkeiten + versionsnummern ordentlich. - -- implementiere irgendwas, sodass \ref{} und \label{} auch fuer plots benutzt - werden koennen. Ziel: suche die plotspec zum letzten plot raus! ++ axis limits of zero width are not fixed causing division by zero -- dokumentiere trim-feature (oder shcmeisse es raus) ++ ytick=\empty is broken again :-( -+ dokumentiere filter-feature - + xfilter - + yfilter - + execute at begin plot - + execute at end plot +- if a logplot has very small axis ranges, only ONE tick label will be placed. + Thats not enough. + In such a case, tick labels should be placed at MINOR TICKS [2-9]*10^i. + BTW: + if someone places tick marks at [1-9]*10^i, the minor ticks should NOT be + disabled. + Instead, tick positions should be RECOGNISED AS MINOR TICKS (which is not + that simple). -- aktualisiere doku fuer die neue log-evaluation - + listing <-> axen konsistenz - + textanpassungen - + semilogxaxis - beispiel + doku +- bei normalen plots wird der parser nicht angeworfen -+ dokumentiere beispiel mit steigungsdreieck - -+ verwende die neuen umgebungen 'loglogaxis', 'semilogaxis' etc. ++ die legend[font=] variable ist doch dasselbe wie in dem tikzstyle zu legenden, + oder? warum funktioniert es dann anders? -------------------------------------------------------------- -BUGS -------------------------------------------------------------- +- implementiere enlargelimits fuer log-achsen + ++ markers werden rausgeclipped, wenn die achsen TIGHT sind. + ++ man kann keine leeren listen an tick labels uebergeben! + ++ width/height produziert NICHT die gewuenschte breite. + Man sollte ne zusatzoption haben, die die labels grundsaetzlich NICHT + beruecksichtigt. + +X Fix the scaling estimations. + Problem: I don't know sizes of labels, legends, titles and tick labels. + Idea: + -Create a temporary picture + \hbox{% + \begin{tikzpicture}[xshift=...,yshift=...] % skaliere auf (0,0)--(1,1) + \draw (0,0) rectangle (1,1) + plaziere labels + legende + vllt. ein tick auf jede achse (?) + \end{tikzpicture} + }% + - measure and remember its size + - throw it away + -> 9.2.2008: + ATTEMPT FAILED. + Reasons: + 1. it is not possible to place a tikzpicture into a tikzpicture. + And it can't be because Tikz updates bounding box parameters GLOBALLY. + 2. I could use a combination of + - scope, + - the 'current bounding box' node, + - \pgfpointanchor{current bounding box}{ anchor name }, + - drawing commands for labels,legend etc. + Effect: bounding box is determined correctly. BUT: + - bounding box of real picture may be affected, + - every output is drawn because nodes can't be 'thrown away'. + At least I do not know how. + + ++ enlargelimits muss RELATIV nicht ABSOLUT gemacht werden. + ++ es gibt einen fehler in der achsen skalierung, wenn + man sehr grosse limits hat (normale achsen) + ++ default ticks muessen besser an achsenlimits angepasst werden + -> bei sehr grossen oder sehr kleinen limits schlaegt die derzeitige + einschraenkung der step sizes fehl + +- addplot plot coordinates { (235 , 43252) } + ^ + funzt nicht wegen dem leerzeichen vor dem komma + +- verschiebung des ylabels ist komisch, wegen der rotate option - die standard-positionierung der achsenlabels beruecksichtigt nicht die breite der ticklabels - entweder ist es daher zu weit weg oder zu nah @@ -38,16 +83,13 @@ BUGS + das log-ding kann 1e7 nicht lesen, nur 1.0e7 -- wenn man jetzt ticks angibt, sieht man die rechenfehler angezeigt. das ist ++ wenn man jetzt ticks angibt, sieht man die rechenfehler angezeigt. das ist doof. Vllt. kann ich ja zugriff auf die normalisierte gleitpunktdarstellung bekommen und so das als 10^i darstellen?? HALT: die ticks WAREN doch mal als normale zahlen gegeben, oder? Die sollte ich nehmen! -- bei bel. ticks moechte ich nur ne gewisse anzahl stellen im tick label haben! - -- die legend[font=] variable ist doch dasselbe wie in dem tikzstyle zu legenden, - oder? warum funktioniert es dann anders? ++ bei bel. ticks moechte ich nur ne gewisse anzahl stellen im tick label haben! + beim auto-limit-lesen geht \addplot[color=red,mark=x] @@ -81,10 +123,6 @@ X durch die verwendung der TEX-Register scheinen ungeauigkeiten beim clippen + diese liste sollte nicht '\\' fuer die interne repr verwenden. -X meine achsenlimits gehen immer in log10 waehrend der rest wohl eher ln ist! - das hat alles seine richtigkeit. - -+ die legende ist zu breit. + fuehre optionen fuer die legende ein (position, font) @@ -102,7 +140,267 @@ X Die gesamtbreite enthaelt zu viele nur grob einkalkulierte einfluesse! FEATURES ------------------------------------------------------------- -- es waere nicht schlecht, wenn man die ticklabels bessere angeben koennte +- prettyprintnumber is not adequate. + There are different aims: + 1. The user provides + - precision + - number format (sci, fixed, truncate to int, 'whatever fits best') + - the number in any precision or format. + Details: + - I need \scifloatround + - sollte die mantisse einer exponential-darstellung runden + - erfordert u.U. renormalisierungen + - the fixed point rounding routine needs to distinguish between + - MAXIMUM precision, 1.000 -> 1 + - FIXED precision 1.000 -> 1.00 + - the 'std' format should use + - fixed point if + -4 < e < precision + - scientific in all other cases. + - this is copied from 'printf' manual. Motivation: + - 0.00013 wastes more space than 1.3e-4 and the latter + one may have higher precision. + - with precision 3, exponent > precision like 12345 = + 1.2345e4, the fixed point repr has as much digits as + the sci format. If exponent >> precision, it is + better to use scientific notation and round the + mantisse to 'precision'. + 2. The user says "show the information appropriately". Examples: + - "format my axis tick labels so that information is represented well + with very few space" + - "format my numbers such that absolute values above THRESH1 are + formatted with SCI, and absolute numbers below THRESH2 are formatted + with SCI, and those within with fixed pt. + - "format my numbers relatively to a reference number - I want to see + the difference!" + That may also be an appropriate choice for axis descriptions... + -> these informal requirements should be converted into a precise + definition. They should be available as configurable, predefined + "display strategies". + 3. The user may not only want to specify the NUMBER FORMAT (sci, fixed, ...), + but maybe he also wants to CONFIGURE THE GENERATED STRINGS. Examples: + - '1.002' vs '1,002' vs '1\cdot 002' , ... + - '1\cdot 10^4' vs '1e4' versus '1e+4' versus '1_{4}', .... + -> allow such possiblities. + Details for the display-methods (they don't round!): + - for log-displays: call \shownumberexponential{1}\empty\exponent + -> 10^i; 10^{0.702} + -> the precision should be used to round the exponent! + -> round exponent with \shownumberfixedpt. + Well, maybe a separate method like + \shownumberlogdisplay\exponent would be more appropriate. + - for scientific format: call + \shownumberexponential\sign\mantisse\exponent + There are different possible methods to display \mantisse: + - MAXIMUM precision + - FIXED precision + The same holds for the exponent: + - zero-pad to X digits + - minimum space + - for "normal" numbers, either with fixed or maximum precision: + \shownumberfixedpt\preperiod\postperiod + -> this should also be used for \mantisse! + My idea is that any input number HAS a period; then I simply need + to divide into the part before and after that. + -> conflicts with the idea of rounding: the rounded result may be + an integer! + Maybe I can return the \preperiod and \postperiod parts from the + rounding-routines. + Ideas: + - prettyprintnumber should access a bunch of configuration variables. + - these variables should be configurable by a key-value-parser. + - there should be a key-value-interface for prettyprintnumber, but it would + be best if that one is not necessarily needed. Most applications will not call + prettyprintnumber directly; they will configure the number format once and + invoke prettyprintnumber without options. + At least I think so.... + - I could create a tabular-column format for column pretty printing + (possibly with alignment) + - I guess I can take the manual for printf and re-implement all of its + features (together with some of LaTeX like subscript exponentials or so) + +- document 'legend plot pos' option + +- Most of my loops are quite inefficient. I have learned how to employ + \@ifnextchar (or the PGF-pendant) to create efficient loops on top of TeXs + parser: + - use \@ifnextchar to check for a TERMINATE token and recurse otherwise. + - linear runtime + - I fear, my loops have quadratic runtime + +- there are some clipping paths in the tick-placement loop which can be + replacement with simple \ifdim's. + I guess clipping is not the cheapest operation. + + +- remember unfiltered (non-logarithmized) input ticks with \listnew and provide + them like '\tick' during ticklabel typesetting + + +- Es sollte unbedingt moeglich sein, die TikZ-Styles zu verwenden. Das + \axispreset ist reichlich nervig und inkonsistent mit der restlichen nutzung + -> optimal: + \path (0,0) axis[xlabel=X,width=...] { + \addplot plot coordinates {...}; + }; + or + \path (0,0) axis[xlabel=X] { + \addplot plot coordinates {...}; + } + (1,1); + and the scaling would create a plot of dimension (1*x,1*y). + + What do I really need? + - Path commands, + - style support, + - ... ? + +- provide accessable names for external axis labels, for example + \path[use as bounding box] (0,0) rectangle (1,1) (axis x label.south); + -> would only use the axis rectangle and the x label as bounding box. + ++ improve tick placement (more) systematically + ++ provide auto tick labels at 5*i if appropriate + ++ implement the legend as tikz-matrix + -> width computation works correctly (there is a bug with font scaling) + ++ provide tick labels as a list like + axis[tick labels={A,B,1,4,5,$\frac 12$}] + -> convert to \listnew, use listpopfront to access elements + + +- provide options for log plot tick formatting: + 10^0.703 vs fixed point format + ++ I could provide a global coordinate transformation + T(x) = x * 10^{q-m} + where 'q' is the desired range of numbers. It depends on TeXs numerical + capacities and the desired size (cm) of the plot. + + The number 'm' is the order of the input data, \abs{x} \in O(10^m). + Advantages: + - such a transformation is purely based on period shifts + (multiplication/division by 10) + and is therefor purely TEXT BASED + - one can avoid TeXs limitations on numbers + - the full plot precision is maintained + Disadvantages: + - takes some more time, + - any \axispath commands need to use the transformation as well + - I need to provide a good implementation of T and T^{-1} + - needs a lot of care in programming + Ideas: + - the transformation could be included into my 'filter coordinates' + framework. However, one special treatment has to be done because + the transformation can only be done as soon as axis limits are known. + I guess it would be better to transform BEFORE TikZ touches the first + point. + - I should use my normalized floating point parser, possibly with some + simplifications + + implement numerics on floating point repr + + less than, + + minimum, + + format conversions, + + arithmetic shifts + - Maybe I could be evil and overwrite PGF's number parsing routine(s) + (\pgfmathparse?) + Advantage: I could apply log to user input; I could apply this + transformation transparently + -> maybe the number parsing is only performed by TikZ routines, not the + lowlevel PGF ones... perhaps thats easier to replace? + +- I could try to use the plot-stream framework of PGF directly instead of using + the 'plot coordinates' command of tikz. + Advantage: would be faster. And the additional features can't be used anyway + because of my own number parsing routines... + ++ rename manual.pdf to pgfplots.pdf -> allows texdoc pgfplots + + ++ alignment: vertikal kann ich jetzt mit baseline. Kann ich horizontales + alignment an (0,0) hinbekommen? + ++ axis hide option ? macht das sinn? + +- axis equal option + ++ legende anders formatierbar? + - ausserhalb des (und isoliert von dem) plots? + + horizontal? + ++ grid lines + + minor + + major + -> einfach als verlaengerung der kleinen tick lines + +- hintergrundfarbe des plots auf "weiss" fixierbar + -> sinnvoll fuer vortraege, bei denen anderer hintergrund ist + - option: GANZER plot oder nur achse + +- je eine autoplotspeclist fuer jeden achsentyp (d.h. 4 insgesamt) + +- es gibt scheinbar in PDF viewern die moeglichkeit, fuer den Druck ein anderes + dokument/dokumentteile zu verwenden als fuers Bildschirmbetrachten + (draft-package bspw?). + Kann man das nutzen, um sowohl farbige als auch S/W-plots zu generieren? + -> pruefe draftcopy paket + +- koennte man den kram auch aus (grossen) tabellen rauslesen? Also sowas wie + "plot X versus Y aus file Z"? + -> das geht sicher! + Ideen: + - abstrakte datenstruktur als liste von spalten, eine spalte ist ne liste + von nummern + - einlesen: + - zeilenweise, haengt an die jeweiligen spalten mit \listpushback + coordinaten dran + - read first line as header (optionally my $flags line for column + formatting advice) + - read just strings, no parsing + - optimal: '\t' as separator. How can I teach TeX to use '\t' as + separator!? + - would allow + \addplot plot table[x=X,y=Z] {\table} + and + \typesettable[columns=...,format=sci,...,formatting options=...] {\table} + - implementation: simple run through column lists + -> I need a method for simultaneous traversal of multiple lists, not + difficult + -> CONSISTENT data representation, powerful display options + + + ++ man sollte \addplot mit '+[OPTIONEN]' starten koennen. + ++ ich sollte das enlargelimits deaktivierbar machen! vllt. auch ne option 'tight' + ++ automatisches tick-platzieren koennte verbessert werden + -> insbesondere fuer normale plots + +- fehlerbars waeren nett + +- es waere schoen, wenn man auf legend extern zugreifen koennte oder diese sogar + plotten koennte + ++ es waere nicht schlecht, wenn man die ticklabels bessere angeben koennte + z.B. + ticklabellist={1\\2\\3\\} + oder so + +- prettyprintnumber: sollte SCI benutzen, wenn underflow + ++ baseline option, die die linke unter ecke als '(0,0)' koordinate annimmt. + Wuerde generell sinn machen, oder? + +- andere plot-befehle + - domain option verwenden zum update der limits + - kann man logs anwenden? + - plot function + - plot file + - plot (...) + -> see tikz.code.tex for how to implement that! - es waere schoen, wenn ich die ANZAHL der sinnvollen ticks angeben wuerde, d.h. TICKS PRO ACHSE anstelle von TICKS PRO UNIT DIFFERENZ @@ -118,29 +416,6 @@ FEATURES 2. beim lesen sucht er nach '\includegraphics{zeug.PDF}', was natuerlich NICHT funktioniert, weil das pdf keine bounding box hat. supi. -- ich brauche ne einbindung als Tikz paket. Ich wuerde bspw. gerne mit - tikzstyle{every axis}=[width=0.5\textwidth] oder so arbeiten koennen. - Wie geht das? - -- vllt. waere sowas wie 'filter' nicht schlecht: plotte einfach nichts, was - ausserhalb eines gewissen domains liegt - -- mache die default styles etwas professioneller: statt hellere marker lieber - dunklere - -- ich brauche ne option, die verspaetetes drawen erzwingt [selbst mit geg. - limits]. - -- ich koennte log implementieren. - EINGABE: - x = +m*10^e - -> log(x) = log(m) + e*log(10) - d.h. ich muesste nur ne implementierung fuer - log(m), 0<m<1 finden. - - Ich koennte auch ne beliebe Zahl x=DDDDD.DDDDDDD in SCI format konvertieren, - indem ich einfach kommas verschiebe und mitzaehle. Das geht alles ohne - tex-register! + passe bounding box und x/y-skalierung "sinnvoll" an. + mache ne option "width=" die die GESAMTbreite angibt. @@ -158,11 +433,9 @@ FEATURES + Nur mit der 'x=' bzw. 'y=' option sollte es NACH AUSSEN moeglich sein, direkt einfluss auf die koordinaten zu nehmen. -- entscheide automatisch, ob der abstand zwischen ticks an die skalierung ++ entscheide automatisch, ob der abstand zwischen ticks an die skalierung angepasst werden sollte. -- Einbinden als Tikz-Library - + [xy]min = auto -> berechne die werte numerisch Ideen: @@ -200,19 +473,3 @@ FEATURES \addplot[OPTIONS] plot coordinates {...}; -> das \addplot ersetzt gewissermaßen das \draw -------------------------------------------------------------- -Implementierungsideen -------------------------------------------------------------- -+ Eine einfache Datenstruktur mit - + push_back - + create - + copy - + pop_front() - + get(i) - waere sehr hilfreich. - Mir schwant sowas wie eine reihe von makros \array@index ... das kann man aber - nicht loeschen :-( - alternativ geht natuerlich - \array{{1}{2}{3}} - oder so. Das verbraet nur eine variable, hat aber hohe zugriffszeiten - |