From: <ds...@us...> - 2008-06-08 18:02:08
|
Revision: 5423 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5423&view=rev Author: dsdale Date: 2008-06-08 11:01:58 -0700 (Sun, 08 Jun 2008) Log Message: ----------- added documentation for usetex added a static_figs directory for scripts that require optional features to generate images for the documentation Modified Paths: -------------- trunk/matplotlib/doc/devel/outline.rst trunk/matplotlib/doc/faq/index.rst trunk/matplotlib/doc/faq/installing_faq.rst trunk/matplotlib/doc/static_figs/README trunk/matplotlib/doc/users/figures/make.py trunk/matplotlib/doc/users/index.rst trunk/matplotlib/examples/pylab_examples/tex_demo.py trunk/matplotlib/examples/pylab_examples/tex_unicode_demo.py Added Paths: ----------- trunk/matplotlib/doc/_static/tex_demo.png trunk/matplotlib/doc/_static/tex_unicode_demo.png trunk/matplotlib/doc/faq/environment_variables_faq.rst trunk/matplotlib/doc/static_figs/make.py trunk/matplotlib/doc/static_figs/tex_demo.png trunk/matplotlib/doc/static_figs/tex_demo.py trunk/matplotlib/doc/static_figs/tex_unicode_demo.py trunk/matplotlib/doc/users/usetex.rst Added: trunk/matplotlib/doc/_static/tex_demo.png =================================================================== (Binary files differ) Property changes on: trunk/matplotlib/doc/_static/tex_demo.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/matplotlib/doc/_static/tex_unicode_demo.png =================================================================== (Binary files differ) Property changes on: trunk/matplotlib/doc/_static/tex_unicode_demo.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/matplotlib/doc/devel/outline.rst =================================================================== --- trunk/matplotlib/doc/devel/outline.rst 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/doc/devel/outline.rst 2008-06-08 18:01:58 UTC (rev 5423) @@ -32,7 +32,7 @@ mathtext Michael ? submitted John fonts et al Michael ? no author Darren pyplot tut John submitted Eric ? -usetex Darren has author ? +usetex Darren submitted ? configuration Darren preliminary ? colormapping Perry ? no author Eric ? win32 install Charlie ? no author Darren @@ -64,8 +64,7 @@ the artist John has author ? transforms Michael submitted John documenting mpl Darren submitted ? -coding guide John submitted Eric (Darren -suggests)? +coding guide John submitted Eric ? and_much_more ? ? ? =============================== ==================== =========== =================== Added: trunk/matplotlib/doc/faq/environment_variables_faq.rst =================================================================== --- trunk/matplotlib/doc/faq/environment_variables_faq.rst (rev 0) +++ trunk/matplotlib/doc/faq/environment_variables_faq.rst 2008-06-08 18:01:58 UTC (rev 5423) @@ -0,0 +1,28 @@ +.. _environment-variables: + +********************* +Environment Variables +********************* + +====================== ======================================================= +Environment Variable Description +====================== ======================================================= +.. envvar:: PATH The list of directories searched to find executable + programs +.. envvar:: PYTHONPATH The list of directories that is searched to find Python + packages and modules +====================== ======================================================= + + + + +Setting Environment Variables +============================= + +Linux/OS-X +---------- + + + +Windows +------- Modified: trunk/matplotlib/doc/faq/index.rst =================================================================== --- trunk/matplotlib/doc/faq/index.rst 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/doc/faq/index.rst 2008-06-08 18:01:58 UTC (rev 5423) @@ -14,4 +14,4 @@ installing_faq.rst troubleshooting_faq.rst howto_faq.rst - + environment_variables_faq.rst Modified: trunk/matplotlib/doc/faq/installing_faq.rst =================================================================== --- trunk/matplotlib/doc/faq/installing_faq.rst 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/doc/faq/installing_faq.rst 2008-06-08 18:01:58 UTC (rev 5423) @@ -1,8 +1,8 @@ .. _installing-faq: -================== +****************** Installation FAQ -================== +****************** How do I report a compilation problem? ====================================== Modified: trunk/matplotlib/doc/static_figs/README =================================================================== --- trunk/matplotlib/doc/static_figs/README 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/doc/static_figs/README 2008-06-08 18:01:58 UTC (rev 5423) @@ -1,4 +1,9 @@ -Scripts that require optional system configurations to generate scripts should go here. The -figures will be generated in doc/_static, and will be named based on the name of the script, -so we can avoid unintentionally overwriting any existing figures. Please add a line to this -file for any additional requirements necessary to generate a new figure. +Scripts that require optional system configurations to generate scripts should +go here. The figures will be generated in doc/_static, and will be named based +on the name of the script, so we can avoid unintentionally overwriting any +existing figures. Please add a line to this file for any additional +requirements necessary to generate a new figure. + +tex demos: + latex + dvipng Added: trunk/matplotlib/doc/static_figs/make.py =================================================================== --- trunk/matplotlib/doc/static_figs/make.py (rev 0) +++ trunk/matplotlib/doc/static_figs/make.py 2008-06-08 18:01:58 UTC (rev 5423) @@ -0,0 +1,58 @@ +#!/usr/bin/env python +import sys, os, glob +import matplotlib +import IPython.Shell +matplotlib.rcdefaults() +matplotlib.use('Agg') + +mplshell = IPython.Shell.MatplotlibShell('mpl') + +def figs(): + print 'making figs' + import matplotlib.pyplot as plt + for fname in glob.glob('*.py'): + if fname.split('/')[-1] == __file__.split('/')[-1]: continue + basename, ext = os.path.splitext(fname) + outfile = '../_static/%s.png'%basename + + if os.path.exists(outfile): + print ' already have %s'%outfile + continue + else: + print ' building %s'%fname + plt.close('all') # we need to clear between runs + mplshell.magic_run(basename) + plt.savefig(outfile) + print 'all figures made' + + +def clean(): + patterns = ['#*', '*~', '*.png', '*pyc'] + for pattern in patterns: + for fname in glob.glob(pattern): + os.remove(fname) + print 'all clean' + + + +def all(): + figs() + +funcd = {'figs':figs, + 'clean':clean, + 'all':all, + } + +if len(sys.argv)>1: + for arg in sys.argv[1:]: + func = funcd.get(arg) + if func is None: + raise SystemExit('Do not know how to handle %s; valid args are'%( + arg, funcd.keys())) + func() +else: + all() + + + + Property changes on: trunk/matplotlib/doc/static_figs/make.py ___________________________________________________________________ Name: svn:executable + * Added: trunk/matplotlib/doc/static_figs/tex_demo.png =================================================================== (Binary files differ) Property changes on: trunk/matplotlib/doc/static_figs/tex_demo.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/matplotlib/doc/static_figs/tex_demo.py =================================================================== --- trunk/matplotlib/doc/static_figs/tex_demo.py (rev 0) +++ trunk/matplotlib/doc/static_figs/tex_demo.py 2008-06-08 18:01:58 UTC (rev 5423) @@ -0,0 +1 @@ +link ../mpl_examples/pylab_examples/tex_demo.py \ No newline at end of file Property changes on: trunk/matplotlib/doc/static_figs/tex_demo.py ___________________________________________________________________ Name: svn:special + * Added: trunk/matplotlib/doc/static_figs/tex_unicode_demo.py =================================================================== --- trunk/matplotlib/doc/static_figs/tex_unicode_demo.py (rev 0) +++ trunk/matplotlib/doc/static_figs/tex_unicode_demo.py 2008-06-08 18:01:58 UTC (rev 5423) @@ -0,0 +1 @@ +link ../mpl_examples/pylab_examples/tex_unicode_demo.py \ No newline at end of file Property changes on: trunk/matplotlib/doc/static_figs/tex_unicode_demo.py ___________________________________________________________________ Name: svn:special + * Modified: trunk/matplotlib/doc/users/figures/make.py =================================================================== --- trunk/matplotlib/doc/users/figures/make.py 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/doc/users/figures/make.py 2008-06-08 18:01:58 UTC (rev 5423) @@ -22,7 +22,7 @@ print ' building %s'%fname plt.close('all') # we need to clear between runs mplshell.magic_run(basename) - plt.savefig('%s.png'%basename) + plt.savefig(outfile) print 'all figures made' Modified: trunk/matplotlib/doc/users/index.rst =================================================================== --- trunk/matplotlib/doc/users/index.rst 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/doc/users/index.rst 2008-06-08 18:01:58 UTC (rev 5423) @@ -16,5 +16,6 @@ customizing.rst artists.rst event_handling.rst + usetex.rst Added: trunk/matplotlib/doc/users/usetex.rst =================================================================== --- trunk/matplotlib/doc/users/usetex.rst (rev 0) +++ trunk/matplotlib/doc/users/usetex.rst 2008-06-08 18:01:58 UTC (rev 5423) @@ -0,0 +1,129 @@ +.. _usetex-tutorial: + +************************* +Text Rendering With LaTeX +************************* + +Matplotlib has the option to use LaTeX to manage all text layout. This +option is available with the following backends: + +* \*Agg +* PS +* PDF + +The LaTeX option is activated by setting text.usetex : true in your rc +settings. Text handling with matplotlib's LaTeX support is slower than +matplotlib's very capable :ref:`mathtext <mathtext-tutorial>`, but is more +flexible, since different LaTeX packages (font packages, math packages, etc.) +can be used. The results can be striking, especially when you take care to use +the same fonts in your figures as in the main document. + +Matplotlib's LaTeX support requires a working LaTeX_ installation, dvipng_ +(which may be included with your LaTeX installation), and Ghostscript_ +(GPL Ghostscript 8.60 or later is recommended). The executables for these +external dependencies must all be located on your :envvar:`PATH`. + +There are a couple of options to mention, which can be changed using :ref:`rc +settings <customizing-matplotlib>`. Here is an example matplotlibrc file:: + + font.family : serif + font.serif : Times, Palatino, New Century Schoolbook, Bookman, Computer Modern Roman + font.sans-serif : Helvetica, Avant Garde, Computer Modern Sans serif + font.cursive : Zapf Chancery + font.monospace : Courier, Computer Modern Typewriter + + text.usetex : true + +The first valid font in each family is the one that will be loaded. If the +fonts are not specified, the Computer Modern fonts are used by default. All of +the other fonts are Adobe fonts. Times and Palatino each have their own +accompanying math fonts, while the other Adobe serif fonts make use of the +Computer Modern math fonts. See the PSNFSS_ documentation for more details. + +To use LaTeX and select Helvetica as the default font, without editing +matplotlibrc use:: + + from matplotlib import rc + rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) + ## for Palatino and other serif fonts use: + #rc('font',**{'family':'serif','serif':['Palatino'])) + rc('text', usetex=True) + +Here is the standard example, `tex_demo.py`: + + .. literalinclude:: ../mpl_examples/pylab_examples/tex_demo.py + +.. image:: ../_static/tex_demo.png + +Note that display math mode (``$$ e=mc^2 $$``) is not supported, but adding the +command ``\displaystyle``, as in `tex_demo.py`, will produce the same +results. + +It is also possible to use unicode strings with the LaTeX text manager, here is +an example taken from `tex_unicode_demo.py`: + + .. literalinclude:: ../mpl_examples/pylab_examples/tex_unicode_demo.py + +.. image:: ../_static/tex_unicode_demo.png + +In order to produce encapsulated postscript files that can be embedded in a new +LaTeX document, the default behavior of matplotlib is to distill the output, +which removes some postscript operators used by LaTeX that are illegal in an +eps file. This step produces fonts which may be unacceptable to some users. One +workaround is to to set ``ps.distiller.res`` to a higher value (perhaps 6000) in +your rc settings. A better workaround, which requires Poppler_ or Xpdf_, can be +activated by changing the ``ps.usedistiller`` rc setting to ``xpdf``. This +alternative produces postscript with text that can be edited in Adobe +Illustrator, and searched text in pdf documents. + + += Possible Hangups = + + * On Windows, the PATH environment variable may need to be modified to find + the latex, dvipng and ghostscript executables. This is done by going to the + control panel, selecting the "system" icon, selecting the "advanced" tab, + and clicking the "environment variables" button (and people think Linux is + complicated. Sheesh.) Select the PATH variable, and add the appropriate + directories. + + * Using MiKTeX with Computer Modern fonts, if you get odd -Agg and PNG + results, go to MiKTeX/Options and update your format files + + * The fonts look terrible on screen. You are probably running Mac OS, and + there is some funny business with dvipng on the mac. Set text.dvipnghack : + True in your matplotlibrc file. + + * On Ubuntu and Gentoo, the base texlive install does not ship with the + type1cm package. You may need to install some of the extra packages to get + all the goodies that come bundled with other latex distributions. + + * Some progress has been made so Matplotlib uses the dvi files directly for + text layout. This allows latex to be used for text layout with the pdf and + svg backends, as well as the \*Agg and PS backends. In the future, a latex + installation may be the only external dependency. + += In the event that things dont work = + * Try deleting `tex.cache` from your :envvar:`MATPLOTLIBDATA` directory + + * Make sure LaTeX, dvipng and ghostscript are each working and on your PATH. + + * Make sure what you are trying to do is possible in a LaTeX document, that + your LaTeX syntax is valid and that you are using raw strings if necessary + to avoid unintended escape sequences. + + * Most problems reported on the mailing list have been cleared up by + upgrading Ghostscript_. If possible, please try upgrading to the latest + release before reporting problems to the list. + + * The text.latex.preample rc setting is not officially supported. This option + provides lots of flexibility, and lots of ways to cause problems. Please + disable this option before reporting problems to the mailing list. + + * If you still need help, please see :ref:`reporting-problems` + +.. _LaTeX: http://www.tug.org +.. _dvipng: http://sourceforge.net/projects/dvipng +.. _Ghostscript: http://www.cs.wisc.edu/~ghost/ +.. _PSNFSS: http://www.ctan.org/tex-archive/macros/latex/required/psnfss/psnfss2e.pdf +.. _Poppler: http://poppler.freedesktop.org/ +.. _Xpdf: http://www.foolabs.com/xpdf \ No newline at end of file Modified: trunk/matplotlib/examples/pylab_examples/tex_demo.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/tex_demo.py 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/examples/pylab_examples/tex_demo.py 2008-06-08 18:01:58 UTC (rev 5423) @@ -17,7 +17,8 @@ rc('text', usetex=True) -figure(1) +rc('font', family='serif') +figure(1, figsize=(6,4)) ax = axes([0.1, 0.1, 0.8, 0.7]) t = arange(0.0, 1.0+0.01, 0.01) s = cos(2*2*pi*t)+2 Modified: trunk/matplotlib/examples/pylab_examples/tex_unicode_demo.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/tex_unicode_demo.py 2008-06-08 02:25:39 UTC (rev 5422) +++ trunk/matplotlib/examples/pylab_examples/tex_unicode_demo.py 2008-06-08 18:01:58 UTC (rev 5423) @@ -11,14 +11,13 @@ from matplotlib.pyplot import figure, axes, plot, xlabel, ylabel, title, \ grid, savefig, show -figure(1) +figure(1, figsize=(6,4)) ax = axes([0.1, 0.1, 0.8, 0.7]) t = arange(0.0, 1.0+0.01, 0.01) s = cos(2*2*pi*t)+2 plot(t, s) xlabel(r'\textbf{time (s)}') -s = unicode(r'\textit{Velocity (\xB0/sec)}','latin-1') ylabel(unicode(r'\textit{Velocity (\xB0/sec)}','latin-1'),fontsize=16) title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!", fontsize=16, color='r') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |