以下跳过铸造?

以下跳过铸造?

是否可以删除环境代码下方的间距minted?当我在另一个代码块下方有一个代码块时,它不会产生任何间距(这是我想要的),但它会对文本产生间距(我不想要)。有没有类似包belowskip的东西listings可以用作全局选项?

\documentclass{article}

\usepackage{minted}

\begin{document}

\newminted{python3}{linenos=true} % belowskip=0pt?

\begin{python3code}
print("Hello world")
\end{python3code}

Some text

\end{document}

答案1

minted使用包fancyvrb来创建环境。fancyvrb使用 的修改trivlist。因此,您必须修改trivlist

下面显示了一种可能性。这里我创建了一个新密钥belowskip

编辑

在组合宽度下\newminted它也能起作用(见下面的评论):

% pdflatex --shell-escape 
\documentclass{article}

\usepackage{minted}
\makeatletter
\newlength\minted@belowskip
\define@key{minted@opt}{belowskip}[\@topsepadd]
{\setlength{\minted@belowskip}{#1}}

\def\minted@endparenv{%
  \addpenalty\@endparpenalty\addvspace\minted@belowskip\@endpetrue}
\def\FV@EndList{%
  \FV@ListProcessLastLine
  \FV@EndListFrame
  \minted@endparenv
  \endgroup
  \@endpetrue}
\makeatother
\newminted{python3}{linenos=true, belowskip=4cm}
\begin{document}

\begin{python3code}
print("Hello world")
\end{python3code}

Some text


\begin{python3code}
print("Hello world")
\end{python3code}

Some text

\end{document}

原件

% pdflatex --shell-escape 
\documentclass{article}

\usepackage{minted}
\makeatletter
\newlength\minted@belowskip
\define@key{minted@opt}{belowskip}[\@topsepadd]
{\setlength{\minted@belowskip}{#1}}

\def\minted@endparenv{%
  \addpenalty\@endparpenalty\addvspace\minted@belowskip\@endpetrue}
\def\FV@EndList{%
  \FV@ListProcessLastLine
  \FV@EndListFrame
  \minted@endparenv
  \endgroup
  \@endpetrue}
\makeatother
\begin{document}

\begin{minted}[belowskip=4cm]{python}
print("Hello world")
\end{minted}

Some text


\begin{minted}[belowskip=0pt]{python}
print("Hello world")
\end{minted}

Some text

\end{document}

相关内容