Entrada/salida de Jupyter sin desbordamiento

Entrada/salida de Jupyter sin desbordamiento

EnEstilo de entrada y salida de JupyteryLa última línea en fancyvrb tiene un espaciado extrañoPedí una solución clara para realizar un estilo Jupyter dentro de LaTeX.

Eso es genial hasta ahora y funciona bastante bien y de manera sólida. Sin embargo, sería perfecto que los números de entrada/salida no se desbordaran a la izquierda. ¿Es eso posible sin demasiado esfuerzo?

El ejemplo mínimo con el que estoy trabajando se adopta de la respuesta enLa última línea en fancyvrb tiene un espaciado extraño.

Respuesta1

Puede mover el tcolorboxhacia la derecha especificando un archivo left skip. En el código siguiente, proporciono dos longitudes para el ancho del mensaje y su separación del cuadro de salida.

Salida de muestra

\documentclass[twoside,a4paper]{scrartcl}

%-------
%   Typography
%-------

\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}
\usepackage{dsfont}
\usepackage{microtype}
\usepackage[onehalfspacing]{setspace}

%-------
%   Notebook Styling
%-------

\usepackage[most]{tcolorbox}
\tcbuselibrary{listings}
\tcbset{nobeforeafter}

\definecolor{outcolor}{HTML}{D84315}

\newlength{\promptwidth}
\setlength{\promptwidth}{30pt}
\newlength{\promptsep}
\setlength{\promptsep}{5.5pt}

\newcommand{\prompt}[4]{%
    \makebox[0pt][r]{\texttt{\color{#2}#1[#3]:#4}}\vspace{-\baselineskip}%
}

\newcounter{NBin}

\newtcblisting{NotebookOut}{
    breakable,
    boxrule=.5pt,
    size=fbox,
    left skip = \promptwidth + \promptsep,
    pad at break*=1mm,
    opacityfill=1,
    phantom=\refstepcounter{NBin},
    title=\prompt{}{outcolor}{\theNBin}{\hspace{\promptsep}},
    fonttitle=\linespread{1}\small,
    attach title to upper,
    listing only,
    listing options={
        language=python,
        basicstyle=\linespread{1}\small\ttfamily,
        basewidth=.5em,
        aboveskip=0pt,
        belowskip=0pt,
        showstringspaces=false,
    }
}

\begin{document}

\begin{NotebookOut}
print('Hello World!')
print('Hello World!')
\end{NotebookOut}

\noindent
Text
\begin{NotebookOut}
print('Hello World!')
print('Hello World!')
\end{NotebookOut}

\end{document}

información relacionada