Skip to main content

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:

  1. The pdf file in a binary string;
  2. The log file generated by pdflatex as text;
  3. An instance of subprocess.CompleteProcess with the results of the pdflatex execution.

Also, create_pdf takes a few parameters:

  1. 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;
  2. keep_log_file: same thing, for the log file.
  3. 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

pdflatex-0.1.3.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

pdflatex-0.1.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

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

Hashes for pdflatex-0.1.3.tar.gz
Algorithm Hash digest
SHA256 b8109ff5a5b813e15d6a9e05b4c4c1ae3893b407ad1f8567ef5b89ec37a7aed5
MD5 11c941973e3133ae261d8215b3c1df43
BLAKE2b-256 adc84328fc20c2fcdc7db89b86203b93dd53889eba5b6260b8b499c47947c8be

See more details on using hashes here.

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

Hashes for pdflatex-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0e22bf240dd2dc2dd348686e5d259ff00af9ccc8bb1db481c38d03f29184e56e
MD5 3e704c0ab2693bcd6a9c2aa2f59b428a
BLAKE2b-256 c57d22617944ceff84c65a515a0a8f7d61386c7ea61a3c592313510525a207ae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page