File: environment_ex.py

package info (click to toggle)
python-pylatex 1.4.2%2Bds-5
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,044 kB
  • sloc: python: 3,810; sh: 209; makefile: 169; xml: 12
file content (53 lines) | stat: -rw-r--r-- 1,530 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env python3
"""
Wrapping existing LaTeX environments with the Environment class.

..  :copyright: (c) 2014-2016 by Jelte Fennema, Scott Wallace
    :license: MIT, see License for more details.
"""

# begin-doc-include
from pylatex import Document, Section
from pylatex.base_classes import Environment
from pylatex.package import Package
from pylatex.utils import NoEscape


class AllTT(Environment):
    """A class to wrap LaTeX's alltt environment."""

    packages = [Package("alltt")]
    escape = False
    content_separator = "\n"


# Create a new document
doc = Document()
with doc.create(Section("Wrapping Latex Environments")):
    doc.append(
        NoEscape(
            r"""
        The following is a demonstration of a custom \LaTeX{}
        command with a couple of parameters.
        """
        )
    )

    # Put some data inside the AllTT environment
    with doc.create(AllTT()):
        verbatim = (
            "This is verbatim, alltt, text.\n\n\n"
            "Setting \\underline{escape} to \\underline{False} "
            "ensures that text in the environment is not\n"
            "subject to escaping...\n\n\n"
            "Setting \\underline{content_separator} "
            "ensures that line endings are broken in\n"
            "the latex just as they are in the input text.\n"
            "alltt supports math: \\(x^2=10\\)"
        )
        doc.append(verbatim)

    doc.append("This is back to normal text...")

# Generate pdf
doc.generate_pdf("environment_ex", clean_tex=False)