2

I'm using minted to highlight code. And I put that into a listing environment in order to get those numbered. By it self minted breaks code across pages. But when I put it into a listing, I get code on a separate page. Here's an MWE:

\documentclass{article}

\usepackage{minted}

\usepackage{lipsum}

\begin{document}

\lipsum[1-3]

\begin{listing}[H]
\begin{minted}{python}
# defs:
def fitfunc(p, coords):
    x0, y0, z0, R = p
    x, y, z = coords.T
    return sqrt((x-x0)**2 + (y-y0)**2 + (z-z0)**2)

# initial fit values:
BeadsCenter = (Beads.coordinates().max(axis=0)
              + Beads.coordinates().min(axis=0)) / 2
BeadsInSwell = Beads.selectAtoms("point {0} {1} {2} {3}".format(
               BeadsCenter[0], BeadsCenter[1], BeadsCenter[2],
               args.radius))

MaxZ = (BeadsInSwell.coordinates().max(axis=0)[2])
MinZ = (BeadsInSwell.coordinates().min(axis=0)[2])
b = MaxZ - MinZ

MaxY = (BeadsInSwell.coordinates().max(axis=0)[1])
MinY = (BeadsInSwell.coordinates().min(axis=0)[1])
a = MaxY - MinY

R0 = (a**2 / 4 + b**2) / (2 * b)

x0, y0, z0 = (BeadsInSwell.coordinates().max(axis=0)
             + BeadsInSwell.coordinates().min(axis=0)) / 2.
z0 = MaxZ - R0

# data:
coords = BeadsInSwell.coordinates()

# initial fit paramters:
p0 = [x0, y0, z0, R0]

# fit:
errfunc = lambda p, x: fitfunc(p, x) - p[3]
p1, flag = leastsq(errfunc, p0, args=coords)
\end{minted}
  \caption{Fit code (crucial part).\label{lst:fit}}
\end{listing}

\end{document}

I tried to put the listing environment in minipage, but it doesn't work.

jub0bs
  • 58,916
Adobe
  • 3,037

0 Answers0