diff options
Diffstat (limited to 'Master/texmf-dist/doc/lualatex/pyluatex/example/typesetting-minted.tex')
-rw-r--r-- | Master/texmf-dist/doc/lualatex/pyluatex/example/typesetting-minted.tex | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/lualatex/pyluatex/example/typesetting-minted.tex b/Master/texmf-dist/doc/lualatex/pyluatex/example/typesetting-minted.tex new file mode 100644 index 00000000000..f36c7b802b8 --- /dev/null +++ b/Master/texmf-dist/doc/lualatex/pyluatex/example/typesetting-minted.tex @@ -0,0 +1,81 @@ +%% Copyright 2021-2022 Tobias Enderle +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. + +\documentclass{article} + +\usepackage{pyluatex} +\usepackage{minted} + +\usepackage{luacode} +\begin{luacode} +function pytypeset() + tex.print("\\begin{minted}[bgcolor=gray!10!white]{python}") + tex.print(pyluatex.get_last_code()) + tex.print("\\end{minted}") + tex.print("") -- ensure newline +end + +function pytypeset_inline() + -- assume there is only one line of code in get_last_code() + tex.print("\\mintinline{python}@" .. pyluatex.get_last_code()[1] .. "@") +end +\end{luacode} + +\newcommand*{\pytypeset}{% + \noindent\textbf{Input:} + \directlua{pytypeset()} + \textbf{Output:} + \begin{center} + \directlua{tex.print(pyluatex.get_last_output())} + \end{center} +} +\newcommand*{\coderaw}{\directlua{tex.print(pyluatex.get_last_code())}} +\newcommand*{\codeinline}{\directlua{pytypeset_inline()}} +\newcommand*{\outputraw}{\directlua{tex.print(pyluatex.get_last_output())}} + +\title{PyLuaTeX Example -- Typesetting Code Using the \emph{minted} Package} +\author{Tobias Enderle} + +\begin{document} + +\maketitle + +\section*{Typesetting of Code Blocks and Ouput} +\begin{pythonq} +msg = 'Hello' + +print(msg) +\end{pythonq} +\pytypeset + +\section*{Typesetting of Inline Code and Ouput} +Calling \pycq{print('test', end='')}\codeinline\ in Python outputs ``\outputraw''. + +\begin{python} +x = 4 +\end{python} +The value of \pyq{x}\codeinline\ is \outputraw. + +The result of \pyq{17 + 300}$\coderaw$ is \outputraw. + +\section*{Custom Environments} +You can create a custom environment for typesetting: + +\newenvironment{typesetpython} +{\PyLTVerbatimEnv\begin{pythonq}} +{\end{pythonq}\pytypeset} + +\begin{typesetpython} +msg = 'Custom environment' + +print(msg) +\end{typesetpython} + +\end{document} |