
EmEstilo Jupyter dentro e foraeA última linha no fancyvrb tem espaçamento estranhoPedi uma solução interessante para implementar um estilo Jupyter no LaTeX.
Isso é ótimo até agora e funciona muito bem e sólido. No entanto, seria perfeito se os números de entrada/saída não transbordassem à esquerda. Isso é possível sem muito esforço?
O exemplo mínimo com o qual estou trabalhando é adotado da resposta emA última linha no fancyvrb tem espaçamento estranho.
Responder1
Você pode mover tcolorbox
para a direita especificando um arquivo left skip
. No código abaixo forneci dois comprimentos para a largura do prompt e sua separação da caixa de saída.
\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}