forked from JelteF/PyLaTeX
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update setup.py with the new README and version number
- Loading branch information
Showing
1 changed file
with
94 additions
and
88 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,155 +2,161 @@ | |
PyLaTeX | ||
------- | ||
PyLaTeX is a Python library for creating LaTeX files. The goal of this library | ||
is being an easy, but extensible interface between Python and LaTeX. | ||
PyLaTeX is a Python library for creating and compiling LaTeX files. The goal of | ||
this library is being an easy, but extensible interface between Python and | ||
LaTeX. | ||
Features | ||
~~~~~~~~ | ||
The library contains some basic features I have had the need for so far. | ||
Currently those are: | ||
-------- | ||
- Document generation and compilation | ||
- Section, table, math and package classes | ||
- Section, table, math, figure and package classes | ||
- A matrix class that can compile NumPy ndarrays and matrices to LaTeX | ||
- An escape function | ||
- Bold and italic functions | ||
- Every class has a dump method, which writes the output to a filepointer | ||
- Very exstensible base classes that you can use to easily add new features | ||
- Contextmanager style class hierarchy | ||
- Functionality to escape special LaTeX characters | ||
- Bold, italic and verbatim functions | ||
- Every class has a dump method, which writes the output to a filepointer this way you can use snippets in in normal LaTeX files using \\input | ||
Everything else you want you can still add to the document by adding LaTeX | ||
formatted strings instead of classes or regular strings. | ||
formatted strings to the container class you want it to be in. | ||
Dependencies | ||
~~~~~~~~~~~~ | ||
------------ | ||
- Python 3.x or Python 2.7 | ||
- ordered-set | ||
Optional dependencies | ||
~~~~~~~~~~~~~~~~~~~~~ | ||
- pdflatex (only if you want to compile the tex file) | ||
- NumPy (only if you want to convert it's matrixes) | ||
- ordered-set | ||
- awkwardduet (only if you want to compile to python 2 source code yourself) | ||
Installation | ||
~~~~~~~~~~~~ | ||
------------ | ||
:: | ||
pip install pylatex | ||
Example | ||
~~~~~~~ | ||
------- | ||
This is generated by the code below: | ||
.. image:: https://raw.github.com/JelteF/PyLaTeX/master/docs/static/screenshot.png | ||
.. code:: python | ||
import numpy as np | ||
from pylatex import Document, Section, Subsection, Table, Math, TikZ, Axis, \ | ||
Plot | ||
from pylatex import Document, Section, Subsection, Table, Math, TikZ, Axis, \\ | ||
Plot, Figure, Package | ||
from pylatex.numpy import Matrix | ||
from pylatex.utils import italic | ||
from pylatex.utils import italic, escape_latex | ||
doc = Document() | ||
section = Section('Yaay the first section, it can even be ' + italic('italic')) | ||
section.append('Some regular text') | ||
math = Subsection('Math that is incorrect', data=[Math(data=['2*3', '=', 9])]) | ||
section.append(math) | ||
table = Table('rc|cl') | ||
table.add_hline() | ||
table.add_row((1, 2, 3, 4)) | ||
table.add_hline(1, 2) | ||
table.add_empty_row() | ||
table.add_row((4, 5, 6, 7)) | ||
table = Subsection('Table of something', data=[table]) | ||
section.append(table) | ||
doc.packages.append(Package('geometry', options=['tmargin=1cm', | ||
'lmargin=10cm'])) | ||
with doc.create(Section('The simple stuff')): | ||
doc.append('Some regular text and some ' + italic('italic text. ')) | ||
doc.append(escape_latex('\\nAlso some crazy characters: $&#{}')) | ||
with doc.create(Subsection('Math that is incorrect')) as math: | ||
doc.append(Math(data=['2*3', '=', 9])) | ||
with doc.create(Subsection('Table of something')): | ||
with doc.create(Table('rc|cl')) as table: | ||
table.add_hline() | ||
table.add_row((1, 2, 3, 4)) | ||
table.add_hline(1, 2) | ||
table.add_empty_row() | ||
table.add_row((4, 5, 6, 7)) | ||
a = np.array([[100, 10, 20]]).T | ||
M = np.matrix([[2, 3, 4], | ||
[0, 0, 1], | ||
[0, 0, 2]]) | ||
math = Math(data=[Matrix(M), Matrix(a), '=', Matrix(M*a)]) | ||
equation = Subsection('Matrix equation', data=[math]) | ||
section.append(equation) | ||
tikz = TikZ() | ||
axis = Axis(options='height=6cm, width=6cm, grid=major') | ||
plot1 = Plot(name='model', func='-x^5 - 242') | ||
coordinates = [ | ||
(-4.77778, 2027.60977), | ||
(-3.55556, 347.84069), | ||
(-2.33333, 22.58953), | ||
(-1.11111, -493.50066), | ||
(0.11111, 46.66082), | ||
(1.33333, -205.56286), | ||
(2.55556, -341.40638), | ||
(3.77778, -1169.24780), | ||
(5.00000, -3269.56775), | ||
] | ||
plot2 = Plot(name='estimate', coordinates=coordinates) | ||
axis.append(plot1) | ||
axis.append(plot2) | ||
tikz.append(axis) | ||
plot_section = Subsection('Random graph', data=[tikz]) | ||
section.append(plot_section) | ||
doc.append(section) | ||
with doc.create(Section('The fancy stuff')): | ||
with doc.create(Subsection('Correct matrix equations')): | ||
doc.append(Math(data=[Matrix(M), Matrix(a), '=', Matrix(M*a)])) | ||
with doc.create(Subsection('Beautiful graphs')): | ||
with doc.create(TikZ()): | ||
plot_options = 'height=6cm, width=6cm, grid=major' | ||
with doc.create(Axis(options=plot_options)) as plot: | ||
plot.append(Plot(name='model', func='-x^5 - 242')) | ||
coordinates = [ | ||
(-4.77778, 2027.60977), | ||
(-3.55556, 347.84069), | ||
(-2.33333, 22.58953), | ||
(-1.11111, -493.50066), | ||
(0.11111, 46.66082), | ||
(1.33333, -205.56286), | ||
(2.55556, -341.40638), | ||
(3.77778, -1169.24780), | ||
(5.00000, -3269.56775), | ||
] | ||
plot.append(Plot(name='estimate', coordinates=coordinates)) | ||
with doc.create(Subsection('Cute kitten pictures')): | ||
with doc.create(Figure(position='h!')) as kitten_pic: | ||
kitten_pic.add_image('docs/static/kitten.jpg', width='120px') | ||
kitten_pic.add_caption('Look it\\'s on its back') | ||
doc.generate_pdf() | ||
This code will generate this: | ||
.. image:: https://raw.github.com/JelteF/PyLaTeX/master/docs/static/screenshot.png | ||
Future development | ||
~~~~~~~~~~~~~~~~~~ | ||
------------------ | ||
I will keep adding functionality I need to this library, an interface for | ||
graphics and math will probably be added in a future version. | ||
I will keep adding functionality I need to this library. | ||
If you add a feature yourself, or fix a bug, please send a pull request. | ||
If you add a feature yourself, or fix a bug, please send a pull request. The | ||
code is not very difficult and mostly speaks for itself. If you have a question | ||
just let me know. | ||
You can submit issues, but it will not be my priority to fix them. My job and | ||
education are a bit higher on the priority list. | ||
You can submit issues and I will probably respond quite quick. However, it might | ||
take a lot more time for me to fix something. I also have a job, education and a | ||
personal life to worry about. If you want something done try to fix it yourself | ||
as well. Accepting pull requests costs way less time. | ||
Support | ||
~~~~~~~ | ||
------- | ||
This library is being developed in and for Python 3. Because of a conversion | ||
script the current version also works in Python 2.7. For futere versions, no | ||
such promise will be made. Uncompatible Python 3 features will not be headed to | ||
keep supporting Python 2.7. | ||
script the current version also works in Python 2.7. For future versions, no | ||
such promise will be made. Python 3 features that are useful but incompatible | ||
with Python 2 will be used. If you find a bug for Python 2 and it is fixable | ||
without ugly hacks feel free to send a pull request. | ||
The platform this library is developed for is Linux. I have no intention to | ||
write fixes or test for platform specific bugs. Pull requests that fix those | ||
are always welcome though. | ||
write fixes or test for platform specific bugs with every update. Pull requests | ||
that fix those issues are always welcome though. | ||
Copyright and License | ||
~~~~~~~~~~~~~~~~~~~~~ | ||
--------------------- | ||
Copyright 2014 Jelte Fennema, under `the MIT license | ||
<https://github.com/JelteF/PyLaTeX/blob/master/LICENSE>`_. | ||
""" | ||
|
||
from distutils.core import setup | ||
try: | ||
from setuptools import setup | ||
except ImportError: | ||
from distutils.core import setup | ||
import sys | ||
|
||
|
||
|
@@ -167,7 +173,7 @@ | |
source_dir = 'python2_source' | ||
|
||
setup(name='PyLaTeX', | ||
version='0.5', | ||
version='0.6', | ||
author='Jelte Fennema', | ||
author_email='[email protected]', | ||
description='A Python library for creating LaTeX files', | ||
|