diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/pgfplots/todo.txt')
-rw-r--r-- | Master/texmf-dist/doc/latex/pgfplots/todo.txt | 438 |
1 files changed, 189 insertions, 249 deletions
diff --git a/Master/texmf-dist/doc/latex/pgfplots/todo.txt b/Master/texmf-dist/doc/latex/pgfplots/todo.txt index e0d804e0d36..23880977b8f 100644 --- a/Master/texmf-dist/doc/latex/pgfplots/todo.txt +++ b/Master/texmf-dist/doc/latex/pgfplots/todo.txt @@ -2,11 +2,77 @@ BUGS ------------------------------------------------------------- +- the interrupt bounding box feature should still update the data bounding box. + Otherwise, transformations may fail. + +- to check: it *could* be possible that errorbars + stacked plots are + incompatible. + ++ the 'alias' and 'create on use' features may lead to errors. Check it! + ++ variables which are used both globally and locally seem to fill TeX's save + stack to due retained restores + ++ I have introduced incompatiblities with the 'log identify minor ticks' option. + Check how to solve that. Side conditions: + - compatibility with the modified log tick labels for small range + - compatibility with extra ticks + - compatibility with the manual + ++ check whether 'clip limits' works properly if only one data point falls into + the final region + ++ add '-halt-on-error' to externalize command + ++ handle rare case that auto limit computation leads to min > max (only possible + for clip limits=false) + ++ evaluate 'every axis plot' inside of \addplot command, even if that means a + small inefficiency because it is evaluated in the \draw command as well. + -> allows to get id, prefix, samples and other behaviorual options. + -> attention: then, every axis plot would contain BOTH display and behavioral + options; take care with key paths + ++ \addplot plot[#1] does not use /pgfplots as search path ++ 'every axis plot' does not use /pgfplots as search path + + ++ implement partial limit specification, for example 'xmin=5' -> only compute + 'xmax' + ++ check gnuplot on windows - there appear to be semicolon problems!? + ++ again, the disabledatascaletrafo key does not seem to work correctly. Check it! + +X active semicolons may be a problem + ++ [ CF: for tikzlibraryexternal : use double quotes instead of single quotes in + system calls -> win32 doesn't support single quotes ] + ++ problem with context: even simple images do not work correctly. Why does the example work!? + ++ table package: 'array' required for some examples -> document + ++ handle 'nan' and +-inf in plots + +- 'every axis plot post' is not reflected in legend (at least not properly) + ++ plot function: incompatibility with 'german' package and " catcodes + ++ improve error recovery + ++ grid lines and tick lines can obscure the axis lines, especially when used + with different colors. + -> draw axis lines on top of tick/grid lines!? + Or more generally: change drawing sequence to + 1. grid lines + 2. tick lines + 3. axis lines + 4. tick labels? + - extra ticks can be disabled by the tick special cases for axis lines (when two axis lines cross each other) -- \addplot plot[#1] does not use /pgfplots as search path - + eliminate any public reference to the '\\'-lists. They are inconsistent with PGF. + use '{}' for sci 'e' style - looks better @@ -36,7 +102,7 @@ BUGS + ytick=\empty is broken again :-( -- if a logplot has very small axis ranges, only ONE tick label will be placed. ++ 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: @@ -101,72 +167,136 @@ X Fix the scaling estimations. X 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 -+ tickpos packt nur die ticks woanders hin, nicht die tick labels +------------------------------------------------------------- +FEATURES +------------------------------------------------------------- + +- it would be interesting to get an high-level coordinate mapping + X : K -> \R + X(k) \in \R is the x-coordinate. + Idea: K can be any type of input, for example + - time, + - date, + - strings, + - ... + and K maps this transparently to numbers. Then: *all* input is given in K, and + all output (tick labels) are given in K as well (requires X^{-1}). + -> that's not difficult. -+ das log-ding prueft nicht auf 0. was soll es dann ueberhaupt tun!? -+ das log-ding kann - 1e7 nicht lesen, nur 1.0e7 ++ styles are named very unintuitively. I should add something more convenient + (for example like the 'legend style={}' command). Idea: use the *same* name + as the options which are affected, + 'xlabel style' 'title style' etc. My current naming scheme used the name of + the 'every style' which suffer from backwards compatibility with xkeyval... + :-( -+ 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! +- maybe it is possible to eliminate a lot of key macros to save string space? + Those family macros can be optimized (sure ?). -+ bei bel. ticks moechte ich nur ne gewisse anzahl stellen im tick label haben! +- provide access to axis limits and data bounding box. -+ beim auto-limit-lesen geht - \addplot[color=red,mark=x] - plot coordinates { ... } - nicht wegen nervigen white spaces. - genauer: das whitespace nach ']' verwirrt TeX. NERV. +- It would be useful to get access to axis coordinates, for example in 'circle (XXX)' -+ autoscale option ist falsch benannt. Die muesste enlargecanvas oder so - heissen. +- axis equal option -+ die Achsenticks in der y-log-achse werden nicht geclipped +- consider 'plot image[xmin=,xmax=,ymin=,ymax=] {<graphics>}; + -> load external plot image!? Only useful for matlab, if matlab would allow 100% + control over bounding box. Unfortunately, it doesn't. -+ bei nicht-integer-xmin oder ymin sollte der TICK nicht zur 0 hin runden, - sondern immer nach unten. Das funktioniert derzeit nicht bei negativen zahlen. - +- allow extended <col name> arguments inside of create column -+ die Achsenticks werden nicht geclipped ++ is it possible to create a *real* linked list? It should have the following + features: + 1. O(1) push/pop operations + 2. O(N) copy() + 3. O(N) convert to macro list + 4. O(N) traversal/loop -+ die Achsenbeschriftung wird nicht geclipped - + halb geloest: muss die sachen in tex-dimensionen parsen... ++ introduce \label and \ref for legend entries? ++ optimize tikz-interface -+ wenn man [xy]ticks nicht mit 1-abstand waehlt, werden die minor ticks - angezeigt ++ optimize macro-append issue from O(N^2) time to O(N) -+ durch skalieren mit [x=2cm] werden die tick-breiten mit skaliert ++ create a \pgfmathfloattosci method and use that for the numerics in table package -X durch die verwendung der TEX-Register scheinen ungeauigkeiten beim clippen - aufzutreten: - man sieht sachen, die aus der ungebungsbox rausragen. +X re-implement 'dec sep align' of table package natively, not as high-level + style. ++ It is not (easily) possible to replace single entries of tables with '-'. + (for example: gradient columns) -+ diese liste sollte nicht '\\' fuer die interne repr verwenden. ++ create a \pgfmathfloattosci method and use that for the numerics in table package +- check whether the new floating point routines can be used to + REALLY setup a linear map DATA RANGE -> DISPLAY RANGE + Technical thing: map the CLIPPED data range or the TOTAL data range? + What advantages/disadvantes appear? -+ fuehre optionen fuer die legende ein - (position, font) +- [Tikz] document how to use internal registers can be used in libraries. -+ wenn man mit 'font=\large' die gesamt fontgroesse anpasst, werden die legenden - bei 'auto' konfiguration nicht mit breiter. ++ [Tikz] add an 'every plot mark' option and adjust 'mark options' accordingly - Abhilfe vllt.: hole irgendwoher das '\font' argument .... ++ document the 'external' library of tikz (CVS only). -X Die gesamtbreite enthaelt zu viele nur grob einkalkulierte einfluesse! - - rechts gibt es einen randbereich; vermutl. durch ticks - - links gibt es das ylabel und die y-achsenbeschriftung ++ group 'All supported styles' section by content + + ++ allow arrow heads or other axis line styles + + styles for axis lines are missing + + for outer axis lines: introduce option 'separate axis line paths' + if one wants to use arrow heads + ++ set default styles for non-boxed axis labels + + label positions for centered axis lines + + tick scale labels + + tick align versus label positions + + think about axis label placement. Possibilities: + - on the same side as tick labels. + -> should be move away in normal direction + -> should avoid problems with tick scale labels + - opposite of tick labels +- perhaps math style {grid=major, axis x line=middle, axis y line=center, tick + align=outside} + + ++ the table package could use some sort of multicolumn feature which + allows something like 'columns={A,B,A,B,A,B}' and distributes entries of input + columns A and B equally to output columns. + ++ TDS directory structure is not completely correct. Should be everything under + directory 'pgfplots': + $package = "pgfplots"; + &SYSTEM ("$MV README ext_scripts test doc/generic/$package/"); + &SYSTEM ("$MV generic tex/generic/$package/"); + &SYSTEM ("$MV context latex plain tex/"); + and context files should be in + tex/context/third/pgfplots/... + doc/context/third/pgfplots/... + (reference: mail conversation with Karl Berry) + + ++ automatic disabling of enlargelimits when axis lines are not drawn as a box + ++ copy my personal' homepages short images to pgfplots website + +- interrupt single plots at discontinuities (for example tan(x)) + -> don't draw from +infty to -infty + +- optimize plot expression + ++ optimize tick generation code for speed + ++ alias 'axis x line=middle' and 'axis x line=center' + ++ an option which contains legend ENTRIES? + ++ the non-boxed axis lines are placed at 'ZERO'. Maybe this zero level should + get an anchor!? -> allows to place axis labels above it + +- default style for axis lines to: {thin, black!25} ? -------------------------------------------------------------- -FEATURES -------------------------------------------------------------- X implement an axis as path-command @@ -178,18 +308,6 @@ X implement an axis as path-command + Maybe I could perform a restore of the current bounding box at the END of an axis. Restore means: restore to the setting BEFORE the axis. - This is useful if - - the size of the inner axis - - the size of the final axis - remains known until after the complete axis. - - Motivation: the axis as such can have NO contribution to the pictures dimension, - and the user can call '\useasboundingbox (inner axis.north east) rectangle - (inner axis.south west); - or something like that. - - This affects \pgf@picminx and the other variables, see the manual. - + I could create a node which can be referenced and which has the axis' size [ That touches another open problem, see below] @@ -211,93 +329,8 @@ X implement an axis as path-command '#2' as just the current plot spec OPTIONS. -+ 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 + ++ document 'legend plot pos' option + there are some clipping paths in the tick-placement loop which can be replacement with simple \ifdim's. @@ -308,28 +341,6 @@ X implement an axis as path-command 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 @@ -346,43 +357,8 @@ X implement an axis as path-command 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 + ++ 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... @@ -395,8 +371,6 @@ X implement an axis as path-command + axis hide option ? macht das sinn? -- axis equal option - + legende anders formatierbar? - ausserhalb des (und isoliert von dem) plots? + horizontal? @@ -406,12 +380,6 @@ X implement an axis as path-command + 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?). @@ -419,7 +387,7 @@ X implement an axis as path-command -> pruefe draftcopy paket -- koennte man den kram auch aus (grossen) tabellen rauslesen? Also sowas wie ++ koennte man den kram auch aus (grossen) tabellen rauslesen? Also sowas wie "plot X versus Y aus file Z"? -> DEBUG! Ideen: @@ -449,43 +417,15 @@ X implement an axis as path-command + 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 ++ fehlerbars waeren nett -- 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 table[x=column1,y=column4] - - 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 - -- ich haette sehr gerne ein Skript, dass zu jeder figure ein eps und/oder pdf ++ ich haette sehr gerne ein Skript, dass zu jeder figure ein eps und/oder pdf macht, dass dann bitte schoen ordentlich includiert wird. - - DAS FUNKTIONIERT AUCH; siehe meine entsprechenden bemuehungen in dem skript. - - PROBLEM: - - der support fuer dvipdfm ist lausig. - 1. kein korrektes bestimmen der bounding box - 2. beim lesen sucht er nach '\includegraphics{zeug.PDF}', was natuerlich - NICHT funktioniert, weil das pdf keine bounding box hat. supi. + -> see tikzexternal june 2008 + passe bounding box und x/y-skalierung "sinnvoll" an. @@ -534,10 +474,10 @@ X implement an axis as path-command + option, minor ticks ein/auszuschalten -- option, die X/Y-Achsen anders zu formatieren. Moeglichkeiten: - - Kasten drumrum - - je eine Linie mit Pfeil am Ende - - Achse nach rechts oder so ++ option, die X/Y-Achsen anders zu formatieren. Moeglichkeiten: + + Kasten drumrum + + je eine Linie mit Pfeil am Ende + + Achse nach rechts oder so + aendere die das \addplot makro derart, dass beliebige plot-moeglichkeiten folgen koennen |