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.html
loads theMathJax
andjquery
CDNs from cloudflare.node.html
does 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 forbibtexparser
content
: content nodesdocument
:LatexDocument
class and output functionsfactory
: creates node classes and objectsltree
: command line toolsmacrosdef
: macro definitions forpylatexenc.latexwalker
node
: base class forLatexTreeNode
objects.parser
:LatexParser
class. CreatesLatexDocument
objects.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
bibtexparser
jinja2
lxml
pylatexenc
Test files
The tex
directory contains:
LatexTreeTestBook
for testing thebook
document classLatexTreeTestArticle
for testing thearticle
document classLatexTreeTestExam
for testing theexam
document 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
htlatex
cmd 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
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
|