Расстояние между отчеканенной средой и текстом и разделом

Расстояние между отчеканенной средой и текстом и разделом

Я использую mintedи почему-то расстояние между отчеканенным окружением и текстом вокруг или (под)разделом не одинаковое и слишком сильно отличается от обычного интервала.

Вот мой MWE:

\documentclass{article}   
\usepackage{minted}
\newminted{py}{bgcolor=gray!5, breaklines = true,gobble=0,  fontfamily=courier}
\newmintinline[picode]{python}{}

\newcounter{ea}[subsubsection]
\newenvironment{ea}[1][]{\refstepcounter{ea}\par\medskip
\noindent \textit{Example~\theea. #1} \rmfamily}{\medskip}
\begin{document}
\section{Sample}
\subsection{Sample 1}
The code goes here: 

\begin{ea}
\begin{pycode}
440//11
40
117//5
23
\end{pycode}
\end{ea}
%THIS DISTANCE IS TOO MUCH
\subsection{range()}
\begin{ea}
\begin{pycode}
for i in range(2): 
    print(i)
#Output
0 
1
\end{pycode}
\end{ea} 
Some text goes here
\subsection{Unknown}

\end{document} 

Вот он на картинке:

введите описание изображения здесь

С текстом после окружения ea или без него, кажется, что расстояние между ними большое. Как это исправить? Я пробовал установить framsep = 2ptили framesep=2mmбезуспешно.

решение1

Вы не хотите \medskip, но скорее \addvspace{\medskipamount}. СмотритеРазница между \addvspace и \vspace

\documentclass{article}   
\usepackage{minted}

\newminted{py}{bgcolor=gray!5, breaklines = true,gobble=0,  fontfamily=courier}
\newmintinline[picode]{python}{}

\newcounter{ea}[subsubsection]
\newenvironment{ea}[1][]{\refstepcounter{ea}\par\addvspace{\medskipamount}
\noindent \textit{Example~\theea. #1} \rmfamily}{\par\addvspace{\medskipamount}}

\begin{document}

\section{Sample}

\subsection{Sample 1}

The code goes here: 

\begin{ea}
\begin{pycode}
440//11
40
117//5
23
\end{pycode}
\end{ea}

\subsection{range()}

\begin{ea}
\begin{pycode}
for i in range(2): 
    print(i)
#Output
0 
1
\end{pycode}
\end{ea} 

Some text goes here

\subsection{Unknown}

\end{document} 

введите описание изображения здесь

Не жалуйтесь на большой пробел перед заголовком раздела, так как это связано с большим размером шрифта в заголовке.

Однако я бы использовал более стандартные методы.

\documentclass{article}   
\usepackage{minted}
\usepackage{amsthm}

\newminted{py}{bgcolor=gray!5, breaklines = true,gobble=0,  fontfamily=courier}
\AddToHook{env/pycode/before}{\leavevmode\vspace*{-\baselineskip}}
\newmintinline[picode]{python}{}

\newtheoremstyle{example}
  {\topsep}   % ABOVESPACE
  {\topsep}   % BELOWSPACE
  {\normalfont}  % BODYFONT
  {0pt}       % INDENT (empty value is the same as 0pt)
  {\itshape} % HEADFONT
  {.}         % HEADPUNCT
  {\newline} % HEADSPACE
  {\thmname{#1}\thmnumber{ #2}\thmnote{\/{\normalfont\space(#3)}}} % CUSTOM-HEAD-SPEC
\theoremstyle{example}
\newtheorem{ea}{Example}[subsection]

\begin{document}

\section{Sample}

\subsection{Sample 1}

The code goes here: 

\begin{ea}
\begin{pycode}
440//11
40
117//5
23
\end{pycode}
\end{ea}

\subsection{range()}

\begin{ea}[Interesting]
\begin{pycode}
for i in range(2): 
    print(i)
#Output
0 
1
\end{pycode}
\end{ea} 

Some text goes here

\subsection{Unknown}

Some text

\begin{pycode}
for i in range(2): 
    print(i)
#Output
0 
1
\end{pycode}

\end{document} 

введите описание изображения здесь

Связанный контент