summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pynotebook/tex/pynotebook.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/pynotebook/tex/pynotebook.sty')
-rw-r--r--macros/latex/contrib/pynotebook/tex/pynotebook.sty57
1 files changed, 52 insertions, 5 deletions
diff --git a/macros/latex/contrib/pynotebook/tex/pynotebook.sty b/macros/latex/contrib/pynotebook/tex/pynotebook.sty
index 6a84f42a6b..f899c44b15 100644
--- a/macros/latex/contrib/pynotebook/tex/pynotebook.sty
+++ b/macros/latex/contrib/pynotebook/tex/pynotebook.sty
@@ -1,8 +1,10 @@
% Author : C. Pierquet
+% Thanks : F. Pantigny (for helping with piton/pyluatex)
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pynotebook}[2024/02/15 0.1.0 Present codes like in jupyter notebook]
+\ProvidesPackage{pynotebook}[2024/02/19 0.1.1 Present codes like in jupyter notebook]
+%0.1.1 New block In/Out
%0.1.0 Initial version
%------Usefull packages and libraries
@@ -108,6 +110,7 @@
\NewDocumentEnvironment{NotebookIn}{ s O{} m }%
{%
\SetJupyterLengths%
+ \addtolength{\LargeurNumbersJupyter}{0.5mm}%
\noindent%
\IfBooleanTF{#1}%
{\tcbset{tcbjpuptitlein/.style={title=\promptjupyter*{\JupyterPromptIn}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupyter}}}}}%
@@ -132,7 +135,7 @@
\NewDocumentEnvironment{NotebookConsole}{ O{} m }%
{%
\SetJupyterLengths%
- \addtolength{\LargeurNumbersJupyter}{0.5mm}
+ \addtolength{\LargeurNumbersJupyter}{0.5mm}%
\noindent%
\tcblisting{%
breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#2,tcbjpuparskip,
@@ -151,7 +154,7 @@
\NewDocumentEnvironment{NotebookOut}{ s O{} m }%
{%
\SetJupyterLengths%
- \addtolength{\LargeurNumbersJupyter}{0.5mm}
+ \addtolength{\LargeurNumbersJupyter}{0.5mm}%
\IfBooleanTF{#1}%
{\tcbset{tcbjpuptitleout/.style={title=\promptjupyter*{\JupyterPromptOut}{blue!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupyter}}}}}%
{\tcbset{tcbjpuptitleout/.style={title=\promptjupyter{\JupyterPromptOut\ifnum\value{JupyterIn}<10~\fi}{blue!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupyter}}}}}%
@@ -175,7 +178,7 @@
\NewDocumentEnvironment{NotebookRaw}{ O{} m }%
{%
\SetJupyterLengths%
- \addtolength{\LargeurNumbersJupyter}{0.5mm}
+ \addtolength{\LargeurNumbersJupyter}{0.5mm}%
\noindent%
\tcblisting{%
breakable,sharp corners=all,boxrule=0.5pt,enhanced,size=small,width=#2,tcbjpuparskip,
@@ -195,7 +198,7 @@
\NewDocumentEnvironment{NotebookMarkdown}{ O{} m }%
{%
\SetJupyterLengths%
- \addtolength{\LargeurNumbersJupyter}{0.5mm}
+ \addtolength{\LargeurNumbersJupyter}{0.5mm}%
\noindent%
\tcolorbox[breakable,sharp corners=all,boxrule=0.3pt,enhanced,size=small,width=#2,tcbjpuparskip,colframe=lightgray!15,colback=white,left skip=\LargeurPromptJupyter+\OffsetPromptJupyter-2mm,
attach title to upper,fontupper=\footnotesize,tcbjpuparskip,#1]%
@@ -309,6 +312,50 @@
\endtcolorbox%
}%
+\NewDocumentEnvironment{NotebookPitonInOut}{ s O{} m }%
+{%
+ \PyLTVerbatimEnv%
+ \begin{pythonq}%
+}%
+{%
+ \end{pythonq}%
+ %
+ \SetJupiterLengths%
+ \IfBooleanTF{#1}%
+ {%
+ \tcbset{tcbjpuptitlein/.style={title=\promptjupyter*{\JupyterPromptIn}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}%
+ }%
+ {%
+ \refstepcounter{JupyterIn}%
+ \tcbset{tcbjpuptitlein/.style={title=\promptjupyter{\JupyterPromptIn\ifnum\value{JupyterIn}<10~\fi}{red!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}%
+ }%
+ \noindent%
+ \tcolorbox[breakable,sharp corners=all,boxrule=0.5pt,enhanced,size=small,width=#3,colframe=gray,colback=lightgray!15,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitlein,fonttitle=\linespread{1}\footnotesize,
+ attach title to upper,fontupper=\footnotesize,overlay={\begin{tcbclipinterior}\draw[line width=0.375pt,gray!75] ([xshift={\LargeurNumbersJupiter+2.25mm}]frame.south west)--([xshift={\LargeurNumbersJupiter+2.25mm}]frame.north west) ;\end{tcbclipinterior}},bottom=-0.5mm,tcbjpuparskip,#2]%
+ \directlua{%
+ tex.print("\\begin{Piton}[left-margin=\\LargeurNumbersJupiter+1.75mm,all-line-numbers,tabs-auto-gobble,break-lines,indent-broken-lines]")
+ tex.print(pyluatex.get_last_code())
+ tex.print("\\end{Piton}")
+ }%
+ \endtcolorbox%
+ \IfBooleanTF{#1}%
+ {%
+ \tcbset{tcbjpuptitleout/.style={title=\promptjupyter*{\JupyterPromptOut}{blue!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}%
+ }%
+ {%
+ \tcbset{tcbjpuptitleout/.style={title=\promptjupyter{\JupyterPromptOut\ifnum\value{JupyterIn}<10~\fi}{blue!75!black}{\theJupyterIn}{\hspace*{\OffsetPromptJupiter}}}}%
+ }%
+ \tcbset{reset}%
+ \noindent%
+ \tcolorbox[breakable,sharp corners = all,boxrule=0.3pt,enhanced,size=small,width=#3,colframe=lightgray!15,colback=white,left skip=\LargeurPromptJupiter+\OffsetPromptJupiter-2mm,tcbjpuptitleout,fonttitle=\linespread{1}\footnotesize,attach title to upper,fontupper=\footnotesize,bottom=-0.5mm,tcbjpuparskip,#2]%
+ \directlua{%
+ tex.print("\\begin{Piton}[tabs-auto-gobble,break-lines,indent-broken-lines]")
+ tex.print(pyluatex.get_last_output())
+ tex.print("\\end{Piton}")
+ }%
+ \endtcolorbox%
+}
+
\fi
\fi