A document object model and related tools for Latex
Project description
The latextree Package
Creates a document object model for LaTeX and provides some useful functions. The parser understands the syntax of most common macros but is NOT a replacement for a full LaTeX engine. The parser should only be invoked only after the input has been successfully compiled under LaTeX.
Example:
>>> from latextree.parser import LatexParser
>>> pa = LatexParser()
>>> filename = "/path/to/main.tex""
>>> doc = pa.parse_latex_file(filename)
>>> doc.make_website() # create website
>>> bbqs = doc.bbq() # extract mc/ma questions in Blackboard format (plain text)
>>> docx = doc.root.get_xml() # create xml document
>>> from lxml import etree
>>> print(etree.tostring(docx, pretty_print=True))
If latextree is installed as a package:
>>> import latextree
>>> filename = "/path/to/main.tex""
>>> doc = load(filename)
>>> doc.make_website() # create website
>>> bbqs = doc.bbq() # extract mc/ma questions in Blackboard format (plain text)
>>> exit()
Standards
The following are yet to be implemented properly.
- Exception handling
- Testing
- Logging
- Documentation
make_website
>>> doc.make_website(copy_static=True, copy_figures=True, WEB_ROOT=None)
By default, the website is created in a folder called web-latexmainfilename in the directory containing the main latex source file. . The output directory can be changed by setting the WEB_ROOT variable.
- html files are written to WEB_ROOT
- style files are copied to WEB_ROOT/static/css. These can be modified post-production.
- figures are copied to WEB_ROOT/static/img
- urls are constructed from chapter and/or section numbers (if any)
Templates
The LatexDocument.make_website() function uses jinja2 templates.
scripts.htmlloads theMathJaxandjqueryCDNs from cloudflare.node.htmldoes most of the work. This needs to be broken up.
Static files
css/: The stylesheets are rough-and-ready and need a lot of work (especially for phones and tablets).img/: Image files are copied into here.js/: Currently contains only a simple show/hide function.
Modules
bibliography: wrapper forbibtexparsercontent: content nodesdocument:LatexDocumentclass and output functionsfactory: creates node classes and objectsltree: command line toolsmacrosdef: macro definitions forpylatexenc.latexwalkernode: base class forLatexTreeNodeobjects.parser:LatexParserclass. CreatesLatexDocumentobjects.preprocessor: prepare latex source forpylatexenc.latexwalker(replace $$...$$ etc.)reader: input functions and utilitiessettings: website settings (e.g. mathjax cdn)tabular: parse tabular environments.taxonomy: register of species (e.g.list) and genera (e.g.itemize).walker: wrapper forpylatexenc.latexwalker.
Dependencies
bibtexparserjinja2lxmlpylatexenc
Test files
The tex directory contains:
LatexTreeTestBookfor testing thebookdocument classLatexTreeTestArticlefor testing thearticledocument classLatexTreeTestExamfor testing theexamdocument class
Existing software for Latex processing
-
pylatexenc
- LaTeX -> Unicode
- python package
-
plasTeX
- LaTeX -> XML and XHTML
- python package
-
tex4ht
- LaTeX -> XML, HTML and Braille!
- java and c libraries
- provides a
htlatexcmd to replace latex.
-
pandoc
- LaTeX -> HTML
- haskell library
-
tralics (INRIA)
- LaTeX -> XML
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file latextree-0.2.tar.gz.
File metadata
- Download URL: latextree-0.2.tar.gz
- Upload date:
- Size: 35.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a33738f469e5759730526291050a9e2f45b658be64850262c1fd236ed82f3de3
|
|
| MD5 |
9d28d939921dc5cfef63988a0f11278f
|
|
| BLAKE2b-256 |
1918f9b118866e38e3829f96dab632f2e6b8eac5db74ace0ce8e59492e3426d8
|
File details
Details for the file latextree-0.2-py3-none-any.whl.
File metadata
- Download URL: latextree-0.2-py3-none-any.whl
- Upload date:
- Size: 41.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5e084fac37421f2513bf93a56336855bc55bcef5553609af01bc9d411d08bc3
|
|
| MD5 |
311430e157e1bc65ea52d3ed70eff4b9
|
|
| BLAKE2b-256 |
6a07379c8363d9b6926147e947ebd97dbdfa8cb55b76b66b2ca7b2d8da7e314c
|