이전에는 listings 라이브러리를 활용하여 코드를 첨부하는 포스팅을 작성했었다.
간단하게 코드를 붙일 때는 위의 글로도 충분하지만 좀 더 예쁘게 해볼 수 없을까 고민하다가 찾은 코드를 저장한다.
*overleaf 기준으로 작성되었음.
\usepackage{tcolorbox}
\usepackage[left=2cm,right=2cm]{geometry}
\tcbuselibrary{minted,breakable,xparse,skins}
\definecolor{bg}{gray}{0.95}
\DeclareTCBListing{mintedbox}{O{}m!O{}}{%
breakable=true,
listing engine=minted,
listing only,
minted language=#2,
minted style=default,
minted options={%
linenos,
gobble=0,
breaklines=true,
breakafter=,,
fontsize=\small,
numbersep=8pt,
#1},
boxsep=0pt,
left skip=0pt,
right skip=0pt,
left=25pt,
right=0pt,
top=3pt,
bottom=3pt,
arc=5pt,
leftrule=0pt,
rightrule=0pt,
bottomrule=2pt,
toprule=2pt,
colback=bg,
colframe=orange!70,
enhanced,
overlay={%
\begin{tcbclipinterior}
\fill[orange!20!white] (frame.south west) rectangle ([xshift=20pt]frame.north west);
\end{tcbclipinterior}},
#3}
다음과 같이 code box를 정의한다. 안에 있는 것을 커스터마이징할 수 있다.
\begin{document}
\begin{mintedbox}{python}
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from math import exp
# the logistic function
def logistic_func(theta, x):
t = x.dot(theta)
g = np.zeros(t.shape)
# split into positive and negative to improve stability
g[t>=0.0] = 1.0 / (1.0 + np.exp(-t[t>=0.0]))
g[t<0.0] = np.exp(t[t<0.0]) / (np.exp(t[t<0.0])+1.0)
return g
\end{mintedbox}
\end{document}
