pfb -> pfa converter in pure python
[PyX/mjg.git] / CHANGES
blob570def81527b2313a696559a5c99f5eeea57778d
1 PyX
3 - ATT: refactoring of attributes in progress!!!
5 TODO:
6   - graph module
7     - rect style (and errorbars?) should use clipping (TODO: should they or do the now?)
8     - do not include unneeded line segments when the axis range is set manually
9     - allow for an iteration of a graph style, when it is used several times
10     - common bboxes for different graphs
11     - automatic datafile key title
12     - exceptions in drawsymbol & friends...
13     - 3d graphs, circular graphs
14     - symbols + lines -> symbollines (??). Symbols should not allow setting lineattrs, and
15       lines not symbolattrs
16     - allow for graph.changesymbol.square(size=0.15) etc.
17     - rect style (and errorbars?) should use clipping
18     - paths are to be drawn instead of inserted
19   - style module:
20     - default patterns
21     - make dash length available
22   - text module:
23     - split into two modules: text and dvi 
24     - SlantFont & Co support
25   - mathtree module:
26      - consider rewrite using the python compiler module
27   - bbox module:
28      - __iadd__ and inplace enlarge, transform,...
29   - path module:
30     - reverse needs to be fixed
31     - there should be a path._at, path._begin, path._end
32     - use math.degrees and math.radians
33   - data module:
34     - data.data should add line number like data.datafile
35     - use csv module (new in 2.3)
36   - connnector module:
37     - use math.degrees and math.radians instead of self-written functions
39 0.5 (????/??/??):
40   - setup.py and distribution:
41     - allow customization of the extension modules built (via setup.cfg)
42     - disable building pykpathsea module by default
43     - more detailed description of install process in INSTALL
44     - include example data files in distribution (suggested by Andrea Riciputi)
45     - force dvips to write ps files instead of printing them (suggested by Otto Tronarp)
46   - text module:
47     - improved is-readable test for lfs files and pyx.def file
48     - explicitly quit (La)TeX in cleantmp (helps when quitting with <Ctrl>C)
49     - showwaitfortex implemented following a suggestion by Fernando Perez
50       (waitfortex is increased to 60 seconds now)
51     - support of TeX extention --ipc for reading dvi results while TeX keeps running
52     - configurable font mapping files (via pyxrc or parameter of the texrunner constructor)
53     - markers to get access to positions within TeX expressions
54     - fix: allow for e-tex in texmessage.start (reported by Andrea Riciputi)
55     - fix: print warning at syntax errors in font mapping file and continue (cf. bug #795271)
56     - remove limitation on number of fonts in dvi file
57     - added native virtual font support
58     - dvicopy support not needed anymore (it is still available, but obsolete and
59       removed from the documentation)
60     - do not include too many glyphs in the eps file
61   - dvifile module (NEW):
62     - separated from the text module
63     - dvifile class returns standard pyx canvas instances on readpage
64   - graph module:
65     - removed manualpart and partitioners mix keyword
66     - results of the splitting at "=" in graph.function were not stripped
67     - skip title=None in key (cf. bug #821284), properly align a single key entry
68     - another (the last?!) axis redesign: axispos -> class of its own
69     - some axispos name have changed slightly (zeroline -> zeropath etc.)
70     - tick/data-vmin/vmax removed (TODO: documentation)
71     - pathaxis (TODO: example and documentation)
72     - various linkaxis (TODO: example and documentation, FAQ?)
73   - canvas module:
74     - stroke and fill now support trafos (TODO: documentation)
75     - uppercase version of a4, a3, ... paperformats
76   - config module:
77     - new module for loading PyX configuration information
78   - pyx module:
79     - automatically import main modules into pyx namespace as suggested by Fernando 
80       Perez.
81   - path module:
82     - check for sorting of parameter list passed to path.split method
83   - deco module (NEW): 
84     - contains decoratedpath and decorators from canvas module
85     - all predefined arrows are classes now (like all decorators) and
86       attributes have to be passed explicitely (e.g. earrow.small(attrs=color.rgb.red))
87     - TODO: document me
88   - style module (NEW):
89     - contains all line- and fillstyles which formerly had been defined in the canvas module
90     - dash now supports relative dash lengths (as suggested by Otto Tronarp)
91     - TODO: document me
92   - mathtree module:
93     - fixed incorrect handling of - (for instance -x**2 was not negative)
94   - attrlist module:
95     - contents have been moved to the (obsolete) tex module, which was the only user anyhow, and
96       the module itself was removed
98   TODO for PyX 0.5 (please feel free to move items up to the general TODO list)
99   - path module:
100     - path.split takes several points (as *args) while lentopar takes a list of points
101     - path.tangent is missing in the documentation
102   - color module:
103      - should colors and palettes exclude each other?
104   - graph module:
105     - multiple finish calles in linkaxis!
106   - documentation!!!
107   - check FAQ
109 0.4.1 (2003/09/17):
110   - canvas module:
111     - "in" to "inch" in paperformats
112   - text module:
113     - fix pyx.def hack occuring whenever \ProcessOptions* was used by a package
114   - pykpathsea module:
115     - implement different file formats for Python version of module
116   - t1strip module:
117     - python fallback solution should behave the same way as c extension module (closes SF bug #799182 reported
118       by Marcus Mendenhall)
119   - __init__.py:
120     - added "connector" to __all__
122 0.4 (2003/08/22):
123   - graph module:
124     - separate texter out of the axispainter
125     - axis/partitioner/texter/painter/axispos redesign & interfaces
126     - tick.text is renamed to tick.label
127     - ticks and labels are renamed to tickpos/tickdist and labelpos/labeldist in partitioning
128     - ticks can be used in the part to mix a partitioner with some manual ticks
129       -> manualpart and the mix technique is not needed anymore
130          (both things are still available and working, but they will be removed in the future)
131     - _ensurefrac is implemented inside the frac constructor now; initialization is possible by:
132       - a (enum, denom) tuple now (previously there were two arguments)
133       - a string (as before via _ensurefrac)
134       - exponential strings are allowed as well (e.g. "1e10" etc.)
135       - a float (precision is determined by floatprecision -- the number of decimal places)
136     - dense -> density
137     - axis.maxworse
138     - axis interface
139   - text module:
140     - reset() method for the texrunner
141     - automatic restart of a TeX instance with the same preamble (preamble changes are not possible)
142     - texmessage.loadfd for accepting font description loading
143     - don't bail out on width_index == 0, but mark character invalid instead
144     - dvicopy flag
145     - support for specials; pyxgraphics flag
146     - support psfonts.map: font names, font encodings
147     - bugfix \def\ProcessPyXBox -> \long\def\ProcessPyXBox
148     - improved lfs handling
149   - data module:
150     - full documentation via doc strings
151   - connector module:
152     - some preliminary version
153   - box module:
154     - multiple radii (up to two per point) and softnesses
155     - ensurecenter added --- do we always force the creation of a center?
156   - path module:
157     - lentopar methods added including some tests
158   - epsfile module:
159     - new parameter bbox allows to override the bounding box of the eps file
161   bugfixes:
162   - text module:
163     - derive TFMError and DVIError correctly from exceptions.Exception
164     - close files and pipes, if they are no longer used (thanks to Marcus Mendenhall)
165     - remove DeprecationWarning in Python 2.3 (thanks to Marcus Mendenhall)
166   - box module:
167     - correct rounding algorithm (Michael Schindler)
168   - graph module:
169     - refer to the graphs texrunner instead of the defaulttexrunner (cf. #728209)
170     - rounding towards zero bugfix in autolinpart
171     - log axis range rating bugfix
172   - mathtree module:
173     - addarg bugs (#738724)
174   - epsfile module:
175     - fix mixing up of height and width in scale calculation
176   - and various other fixer here and there
178 0.3.1 (2003/04/04):
179   - text module:
180     - fix bug in dvi rule code where width was height
181     - fix preamble attribute checking bug
182     - fix texmessage.load pattern search instead of pattern match bug
183     - renamed vbox to parbox (was done in 0.3 partially only)
184   - data module:
185     - allow for tuples in arguments of the data class
186     - convenience: exchanged order of named parameters in data.data
187   - graph module:
188     - convenience: allow for part=None in _axis (base of linaxis and logaxis)
189   - examples:
190     - added a latex example (requested)
191     - added a attributechange example (requested)
192     - added back the integral example (requested; prior PyX 0.3 it was part of the user manual)
193     - small change in vector example (allow for the access to the texrunner)
194     - examples included in source distribution
195   - canvas module:
196     - correct arrow template calculation for very short paths
198 0.3 (2003/03/31):
199   - examples
200     - new easy to use example generation (will hopefully lead to nice examples)
201   - unit box:
202     - new module for handling of convex polygons (taken out of the graph module)
203   - unit helper:
204     - new module containing a collection of helper functions (taken out of the graph module)
205     - moved the attrlist into helper -- as plain functions; attrlist becomes obsolete
206   - text module:
207     - new module: a new and preferable integration of TeX/LaTeX
208   - t1strip module:
209     - strip glyphs from pfa/pfb-fonts
210     - there is a C implementation taken from pdftex
211     - fallback solution via an external program (pfb2pfa)
212   - pykpathsea module:
213     - (partial) C binding to libkpathsea
214     - fallback solution via an external program (kpsewhich)
215   - graph module:
216     - removed some code duplication (various axis painters)
217     - use text module instead of the obsolete tex module
218     - allow for tailing zeros of automatic generated labels
219     - allow for missing data in bar graphs -> skipmissing parameter
220     - remove the support for variables given as keyword arguments in data constructor
221     - use context instead of extern for extern variables and functions
222     - graph keys; titles in data/function/etc.
223   - unit module:
224     - new classes for visual and width lengths, aliases for user length (u_pt = pt)
225     - all length classes have now by default a quantifier 1 (instead of 0), such that,
226       for instance, 5*unit.t_cm() == unit.t_cm(5)
227     - default_unit now has to be set via unit.set. For instance: unit.set(defaultunit="m").
228     - convert_to is now an internal function, which moreover does not longer accept tuples or lists
229   - bbox module:
230     - new class _bbox (the former bbox) which accepts points in the constructor. This is used
231       for internal purposes.
232     - the bbox constructor now accepts user lengths in the constructor.
233     - new methods height, width, top, bottom, left, right
234     - ll & ur ???, what about ul and lr -> ugly!
235     - enlarge (was enhance) now allows selective enlargement to the left, bottom, right and top
236     - output HiResBoundingBox
237     - never reduce bbox upon output
238   - epsfile module:
239     - new constructor signature, more in line with rest of PyX:
240       epsfile(x, y, filename, **additional_args)
241   - data module:
242     - removed additional column support in addcolumn; removed _addcolumn
243     - line reduction for datafile like the every parameter in gnuplot
244   - canvas module:
245     - new way of PS prolog generation that writes only necessary parts
246     - added support for patterns
247     - canvas.insert() now supports arguments
248     - bbox of canvas can be specified in writetofile command explicitely
249     - writetofile does not return self anymore
250     - arrow template now uses intersection with circle to get size right
251       (as per a suggestion by Michael Schindler)
252   - mathtree module:
253     - added abs function
254     - changed the handling of extern functions and all variables
255   - color module:
256     - gradient renamed to palette
257   - numerous bugfixes:
258     - problem with sizefile on windows (tex module)
259     - allow for strings in graphxy's width and height; allow for width only (graph module)
260     - disable rating for labelattrs equals None (graph module)
261     - defaultstyle selection, when a list of data is provided to the plot function (graph module)
262     - traverse when adding functions as arguments of operators (mathtree module)
263     - allow for extern functions in addcolumn (data module)
264     - just one common place for the version number
265     - fix incorrect exception name MathError (path module)
266     - prevent double return of intersections for closed sub paths
267     - ...
269 0.2 (2003/01/17):
270   - unit module:
271     - allow division of length by numbers
272   - trafo module:
273     - new transformation: slant
274     - renamed all trafo methods to use the participle (i.e translate->translated)
275     - the name of all trafo subclasses are verbs (i.e. translation->translate)
276   - graph module:
277     - mark class renamed to symbol
278     - (text-)box distance measurement
279     - moved axis partitioning to axis and axis painter
280     - automatic axis partitioning (now officially: general cleanup, distance measurement, documentation)
281     - splitaxis
282     - baraxis, baraxispainter, and bar style
283   - data module:
284     - previously named datafile module
285     - class "_datafile" renamed to class "data"
286     - class sectionfile added
287     - testsuite
288   - mathtree module:
289     - extern variables and functions (support in graph.function, graph.paramfunction and data.data)
290     - testsuite
291   - text module:
292     - deferred to Version 0.3
293     - running TeX "on the fly" is basically implemented
294   - numerous bugfixes:
295     - transformation bug (#624068, trafo module)
296     - canvas transformations (canvas module???)
297     - textbox alignment (graph module)
298     - return linewidth upon calculation with linewidths (unit module)
299     - allow column number variables with several digits
300     - ...
301   - british and american spellings (color module, graph module)
302   - small logo modifications
304 0.1 (2002/10/07):
305   - initial release