Directory macros/luatex/latex/pyluatex
PyLuaTeX
Execute Python code on the fly in your LaTeX documents
PyLuaTeX allows you to execute Python code and to include the resulting output in your LaTeX documents in a single compilation run. LaTeX documents must be compiled with LuaLaTeX for this to work.
Example
1. LaTeX document example.tex
\documentclass{article} \usepackage{pyluatex} \begin{python} import math import random random.seed(0) greeting = 'Hello PyLuaTeX!' \end{python} \newcommand{\randint}[2]{\py{random.randint(#1, #2)}} \begin{document} \py{greeting} $\sqrt{371} = \py{math.sqrt(371)}$ \randint{2}{5} \end{document}
2. Compile using LuaLaTeX (shell escape is required)
lualatex --shell-escape example.tex
Note: PyLuaTeX starts Python 3 using the command python3
by default. If python3
does not start Python 3 on your system, find the correct command and replace \usepackage{pyluatex}
with \usepackage[executable=<your python command>]{pyluatex}
. For example, \usepackage[executable=python.exe]{pyluatex}
.
Note: Running LaTeX with the shell escape option enabled allows arbitrary code to be executed. For this reason, it is recommended to compile trusted documents only.
Requirements
- LuaLaTeX
- Python 3
- Linux, macOS or Windows
License
LPPL 1.3c for LaTeX code and MIT license for Python and Lua code and other files.
Further Information
Author: Tobias Enderle
Development: https://github.com/tndrle/PyLuaTeX
Download the contents of this package in one zip archive (114.1k).
PyLuaTeX – Execute Python code on the fly in your LaTeX documents
PyLuaTeX allows you to execute Python code and to include the resulting output in your LaTeX documents in a single compilation run. LaTeX documents must be compiled with LuaLaTeX for this to work.
PyLuaTeX runs a Python InteractiveInterpreter (actually several if you use different sessions) in the background for on-the-fly code execution. Python code from your LaTeX file is sent to the background interpreter through a TCP socket. This approach allows your Python code to be executed and the output to be integrated in your LaTeX file in a single compilation run. No additional processing steps are needed. No intermediate files have to be written. No placeholders have to be inserted.
Package | PyLuaTeX |
Bug tracker | https://github.com/tndrle/PyLuaTeX/issues |
Repository | https://github.com/tndrle/PyLuaTeX |
Version | 0.6.3 |
Licenses | MIT License The LaTeX Project Public License 1.3c |
Copyright | 2021–2024 Tobias Enderle |
Maintainer | Tobias Enderle |
Contained in | TeX Live as pyluatex MiKTeX as pyluatex |
Topics | LuaTeX Callback Experimental LaTeX3 |