Simple wrapper to calling pdflatex
Project description
Overview
This is a simple module to execute pdflatex in an easy and clean way. The pdflatex command line utility by default generates a lot of output and can create many files.
Instantiation
The PDFLaTeX class can be instantiated directly or through helpers:
- from_texfile(filename)
- from_binarystring(binstr, jobname)
- from_jinja2_template(jinja2_template, jobname = None, **render_kwargs)
jobname is any string that can be used to create a valid filename;
Examples:
In all the following examples, no files are left on the filesystem, unless requested with the keep_pdf_file and keep_log_file parameters to the create_pdf method.
Create PDF from .tex file
from pdflatex import PDFLaTeX
pdfl = PDFLaTeX.from_texfile('my_file.tex')
pdf, log, completed_process = pdfl.create_pdf(keep_pdf_file=True, keep_log_file=True)
The function create_pdf returns 3 results:
- The pdf file in a binary string;
- The log file generated by pdflatex as text;
- An instance of subprocess.CompleteProcess with the results of the pdflatex execution.
Also, create_pdf takes a few parameters:
- keep_pdf_file: an optional boolean. Default to False. If True a pdf file is maintained. Its location and name depends on the value of the -output-directory and -jobname parameters. It is also derived from the tex filename or the jinja2 template filename if no parameter is given;
- keep_log_file: same thing, for the log file.
- env: a default ENV mapping for the execution of pdflatex. You probably want to skip this.
Create PDF from Jinja2 Template
import os
import pdflatex
import jinja2
env = pdflatex.JINJA2_ENV
env['loader'] = jinja2.FileSystemLoader(os.path.abspath('.'))
env = jinja2.Environment(**env)
template = env.get_template('jinja.tex')
pdfl = pdflatex.PDFLaTeX.from_jinja2_template(template, data='Hello world!')
pdf, log, cp = pdfl.create_pdf()
Quite self explanatory, just note that pdflatex includes a dictionary JINJA2_ENV with a suggestion of environment parameters for you to use with jinja2 and LaTeX. It os defined as:
JINJA2_ENV = {'block_start_string': '\BLOCK{',
'block_end_string': '}',
'variable_start_string': '\VAR{',
'variable_end_string': '}',
'comment_start_string': '\#{',
'comment_end_string': '}',
'line_statement_prefix': '%%',
'line_comment_prefix': '%#',
'trim_blocks': True,
'autoescape': False }
Create PDF file from binary string:
import pdflatex
with open('my_file.tex', 'rb') as f:
pdfl = pdflatex.PDFLaTeX.from_binarystring(f.read(), 'my_file')
pdf, log, cp = pdfl.create_pdf()
Project details
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 pdflatex-0.1.3.tar.gz
.
File metadata
- Download URL: pdflatex-0.1.3.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.11 CPython/3.6.7 Linux/4.18.0-13-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8109ff5a5b813e15d6a9e05b4c4c1ae3893b407ad1f8567ef5b89ec37a7aed5 |
|
MD5 | 11c941973e3133ae261d8215b3c1df43 |
|
BLAKE2b-256 | adc84328fc20c2fcdc7db89b86203b93dd53889eba5b6260b8b499c47947c8be |
File details
Details for the file pdflatex-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: pdflatex-0.1.3-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.11 CPython/3.6.7 Linux/4.18.0-13-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e22bf240dd2dc2dd348686e5d259ff00af9ccc8bb1db481c38d03f29184e56e |
|
MD5 | 3e704c0ab2693bcd6a9c2aa2f59b428a |
|
BLAKE2b-256 | c57d22617944ceff84c65a515a0a8f7d61386c7ea61a3c592313510525a207ae |