From c42603e27f2d6af845d82162be47078a816fc715 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 24 Sep 2019 20:07:38 +0000 Subject: pythontex (24sep19) git-svn-id: svn://tug.org/texlive/trunk@52174 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/pythontex/pythontex.sty | 87 +++++++++++++++------- 1 file changed, 59 insertions(+), 28 deletions(-) (limited to 'Master/texmf-dist/tex/latex/pythontex/pythontex.sty') diff --git a/Master/texmf-dist/tex/latex/pythontex/pythontex.sty b/Master/texmf-dist/tex/latex/pythontex/pythontex.sty index 1300db470fc..afcad2243e1 100644 --- a/Master/texmf-dist/tex/latex/pythontex/pythontex.sty +++ b/Master/texmf-dist/tex/latex/pythontex/pythontex.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2012-2016 by Geoffrey M. Poore +%% Copyright (C) 2012-2019 by Geoffrey M. Poore %% -------------------------------------------------------------------------- %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -20,11 +20,10 @@ %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{pythontex} - [2017/07/20 v0.16 execute and typeset Python code and other languages] - + [2019/09/22 v0.17 execute and typeset Python code and other languages] \newcommand{\pytx@packagename}{PythonTeX} -\newcommand{\pytx@packageversion}{0.16} +\newcommand{\pytx@packageversion}{0.17} \RequirePackage{fvextra} \RequirePackage{etoolbox} \RequirePackage{xstring} @@ -847,7 +846,7 @@ }% \xdef\pytx@type{CC:#2:#1}% \edef\pytx@cmd{c}% - \def\pytx@context{}% + \pytx@SetContext \def\pytx@group{none}% \let\pytx@InlineShow\@empty \let\pytx@InlineSave\pytx@InlineSaveCode @@ -1038,6 +1037,22 @@ }% {\end{VerbatimOut}% \xdef\pytx@stdfile{\pytx@type_\pytx@session_\pytx@group_\arabic{\pytx@counter}}% + \ifcsname pytx@nonpyconsole@\pytx@type\endcsname + \ifcsname pytx@code@as@console\endcsname + \setcounter{FancyVerbLine}{\value{\pytx@linecount}}% + \pytx@FVSet + \ifdefstring{\pytx@fvopttmp}{}{}{\expandafter\fvset\expandafter{\pytx@fvopttmp}}% + \pytx@ConfigPygments + \InputIfFileExists{\pytx@outputdir/\pytx@stdfile.stdout}% + {\DepyFile{p:\pytx@outputdir/\pytx@stdfile.stdout}}% + {\par\textbf{??~\pytx@packagename~??}\par + \PackageWarning{\pytx@packagename}{Non-existent console content}}% + \setcounter{\pytx@linecount}{\value{FancyVerbLine}}% + \else + \fi + \let\pytx@EnvAutoprint\relax + \else + \fi \setcounter{FancyVerbLine}{\value{pytx@FancyVerbLineTemp}}% \stepcounter{\pytx@counter}% \pytx@EnvAutoprint @@ -1047,12 +1062,16 @@ \ifstrempty{#1}{\edef\pytx@session{default}}{\StrSubstitute{#1}{:}{-}[\pytx@session]}% \xdef\pytx@counter{pytx@\pytx@type @\pytx@session @\pytx@group}% \pytx@CheckCounter{\pytx@counter}% + \edef\pytx@linecount{\pytx@counter @line}% + \pytx@CheckCounter{\pytx@linecount}% \pytx@WriteCodefileInfo \begingroup \obeylines \@ifnextchar[{\endgroup\pytx@BeginCodeEnv@i}{\endgroup\pytx@BeginCodeEnv@i[]}% }% \def\pytx@BeginCodeEnv@i[#1]{% + \def\pytx@fvopttmp{#1}% + \def\pytx@argspprint{#1}% \setcounter{pytx@FancyVerbLineTemp}{\value{FancyVerbLine}}% \let\FVB@VerbatimOut\pytx@FVB@VerbatimOut \let\FVE@VerbatimOut\pytx@FVE@VerbatimOut @@ -1069,7 +1088,7 @@ }% \xdef\pytx@type{CC:#2:#1}% \edef\pytx@cmd{code}% - \def\pytx@context{}% + \pytx@SetContext \def\pytx@group{none}% \pytx@BeginCodeEnv[none]}% {\end{VerbatimOut}% @@ -1079,7 +1098,7 @@ \newcommand{\pytx@MakeSubFV}[1]{% \expandafter\newenvironment{#1sub}{% \VerbatimEnvironment - \Depythontex{env:#1sub:om|:p}% + \Depythontex{env:#1sub:oo|:p}% \xdef\pytx@type{#1}% \edef\pytx@cmd{sub}% \pytx@SetContext @@ -1266,6 +1285,27 @@ \newcounter{pytx@#2@default@default}% } \@onlypreamble\makepythontexfamily +\newcommand{\makepythontexfamily@con}[2][text]{% + \pgfkeys{/PYTX/family, name=#2con, default, pyglexer=#1, console=true}% + \expandafter\xdef\csname pytx@macroformatter@#2con\endcsname{\pytx@tmp@pprinter}% + \expandafter\gdef\csname pytx@fvsettings@#2con\endcsname{}% + \expandafter\xdef\csname pytx@pyglexer@#2con\endcsname{\pytx@tmp@pyglexer}% + \expandafter\xdef\csname pytx@pygopt@#2con\endcsname{\pytx@tmp@pygopt}% + \expandafter\xdef\csname pytx@console@#2con\endcsname{\pytx@tmp@console}% + \AtEndDocument{\immediate\write\pytx@codefile{pygfamily=#2con|% + \csname pytx@pyglexer@#2con\endcsname|% + \csname pytx@pygopt@#2con\endcsname}% + }% + \pytx@MakeCodeFV{#2con}% + \expandafter\global\expandafter\let\csname pytx@nonpyconsole@#2con\endcsname\relax + \newenvironment{#2console}% + {\VerbatimEnvironment + \def\pytx@type{#2con}% + \let\pytx@code@as@console\relax + \begin{#2concode}}% + {\end{#2concode}}% +} + \newcommand{\setpythontexpyglexer}[2][]{% \Depythontex{cmd:setpythontexpyglexer:om:n}% \ifstrempty{#1}{\def\pytx@pyglexer{#2}}{% @@ -1308,34 +1348,17 @@ }% } \@onlypreamble\setpythontexprettyprinter -\makepythontexfamily[pyglexer=python]{py} +\makepythontexfamily[pyglexer=python3]{py} \makepythontexfamily[pyglexer=pycon, console=true]{pycon} -\makepythontexfamily[pyglexer=python]{sympy} +\makepythontexfamily[pyglexer=python3]{sympy} \makepythontexfamily[pyglexer=pycon, console=true]{sympycon} -\makepythontexfamily[pyglexer=python]{pylab} +\makepythontexfamily[pyglexer=python3]{pylab} \makepythontexfamily[pyglexer=pycon, console=true]{pylabcon} \renewcommand{\do}[1]{% \ifstrequal{#1}{ruby}{\makepythontexfamily[pyglexer=ruby]{ruby}}{}% \ifstrequal{#1}{rb}{\makepythontexfamily[pyglexer=ruby]{rb}}{}% \ifstrequal{#1}{julia}{\makepythontexfamily[pyglexer=julia]{julia}}{}% - \ifstrequal{#1}{juliacon}{\pgfkeys{/PYTX/family, name=juliacon, default, pyglexer=jlcon}% - \expandafter\xdef\csname pytx@macroformatter@juliacon\endcsname{\pytx@tmp@pprinter}% - \expandafter\gdef\csname pytx@fvsettings@juliacon\endcsname{}% - \expandafter\xdef\csname pytx@pyglexer@juliacon\endcsname{\pytx@tmp@pyglexer}% - \expandafter\xdef\csname pytx@pygopt@juliacon\endcsname{\pytx@tmp@pygopt}% - \expandafter\xdef\csname pytx@console@juliacon\endcsname{\pytx@tmp@console}% - \AtEndDocument{\immediate\write\pytx@codefile{pygfamily=juliacon|% - \csname pytx@pyglexer@juliacon\endcsname|% - \csname pytx@pygopt@juliacon\endcsname}% - }% - \pytx@MakeCodeFV{juliacon}% - \newenvironment{juliaconsole}% - {\VerbatimEnvironment - \def\pytx@type{juliacon}% - \pytx@ConfigPygments - \begin{juliaconcode}}% - {\end{juliaconcode}% - \ifbool{pytx@opt@autoprint}{}{\printpythontex{}}}}{}% + \ifstrequal{#1}{juliacon}{\makepythontexfamily@con[jlcon]{julia}}{}% \ifstrequal{#1}{jl}{\makepythontexfamily[pyglexer=julia]{jl}}{}% \ifstrequal{#1}{matlab}{\makepythontexfamily[pyglexer=matlab]{matlab}}{}% \ifstrequal{#1}{octave}{\makepythontexfamily[pyglexer=octave]{octave}}{}% @@ -1343,6 +1366,14 @@ \ifstrequal{#1}{sage}{\makepythontexfamily[pyglexer=sage]{sage}}{}% \ifstrequal{#1}{rust}{\makepythontexfamily[pyglexer=rust]{rust}}{}% \ifstrequal{#1}{rs}{\makepythontexfamily[pyglexer=rust]{rs}}{}% + \ifstrequal{#1}{R}{\makepythontexfamily[pyglexer=r]{R}}{}% + \ifstrequal{#1}{Rcon}{\makepythontexfamily@con[rconsole]{R}}{}% + \ifstrequal{#1}{perl}{\makepythontexfamily[pyglexer=perl]{perl}}{}% + \ifstrequal{#1}{pl}{\makepythontexfamily[pyglexer=perl]{pl}}{}% + \ifstrequal{#1}{perlsix}{\makepythontexfamily[pyglexer=perl6]{perlsix}}{}% + \ifstrequal{#1}{psix}{\makepythontexfamily[pyglexer=perl6]{psix}}{}% + \ifstrequal{#1}{javascript}{\makepythontexfamily[pyglexer=js]{javascript}}{}% + \ifstrequal{#1}{js}{\makepythontexfamily[pyglexer=js]{js}}{}% } \expandafter\docsvlist\expandafter{\pytx@families} \newbool{pytx@listingenv} -- cgit v1.2.3