
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 tcolorbox
hacia 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.
\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}