在 Minted 中添加额外的空白行

在 Minted 中添加额外的空白行

我目前在每个 minipage 环境中都有两个 minted 环境,这样它们就可以彼此相邻:

\begin{figure}[!h]
\centering
\begin{minipage}{0.45\linewidth}

\begin{python}
  from pycsp_import import *

  @process
  def producer(cout):
    for i in [1,2,3,4,5]:
      cout(i)
    retire(cout)

  @process
  def worker(cin):
    while True:
      print cin()

  c = Channel()

  Parallel(
    producer(-c),
    worker(+c)
  )
\end{python}

\end{minipage}
\qquad
\begin{minipage}{0.45\linewidth}

\begin{python}
  1
  2
  3
  4
  Exception













  .
\end{python}

\end{minipage}
\end{figure}

有没有办法摆脱对 的需求.。我能以某种方式告诉 minted 应该有 19 行,以便两个 python 环境具有相同的高度吗?

答案1

如果要执行此操作,您必须通过 更改编译pygmentize。所需选项是stripnl。有关更多详细信息,请参阅:可用的词法分析器

要设置运行选项,您必须更改内部定义:

\makeatletter
\renewcommand\minted@pygmentize[2][\jobname.pyg]{
  \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
    \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
    \minted@opt{startinline} \minted@opt{funcnamehighlighting}
    \minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
    -O stripnl=false -o \jobname.out.pyg #1}
  \immediate\write18{\minted@cmd}
  % For debugging, uncomment:
  %\immediate\typeout{\minted@cmd}
  \ifthenelse{\equal{\minted@opt@bgcolor}{}}
   {}
   {\begin{minted@colorbg}{\minted@opt@bgcolor}}
  \input{\jobname.out.pyg}
  \ifthenelse{\equal{\minted@opt@bgcolor}{}}
   {}
   {\end{minted@colorbg}}
  \DeleteFile{\jobname.out.pyg}}
\makeatother

然而这会影响所有编译pygmentize。为了避免这种情况,您可以声明一个新选项。

在此处输入图片描述

答案2

Minted 2.1 有一个stripnl选项,你可以设置为 false:

\begin{minted}[stripnl=false]{bash}
    exit
\end{minted}

答案3

如果你使用

 \begin{minipage}[t]{0.45\linewidth}
                 %%%

即使尺寸不同,它们也会排在第一行/

答案4

不幸的是,使用 接受的答案stripnl对我来说不起作用。虽然[t]选项minipage使它们在第一行对齐(参见上面的答案),但我的代码块是彩色的,所以看起来仍然很丑。

我找到了一种解决方法,将 minted 选项escapeinside与 结合使用\phantom。只需输入转义\phantom命令,这样行号就会相加(较大的 minted 块在这里有三行,因此 phantom 位于较短块的第三行)。

\begin{figure}[!h]
\begin{minipage}{0.49\textwidth} % first minipage
\centering
\begin{minted}{python}
a = 1
b = 2
c = 3
\end{minted}
\end{minipage}
\begin{minipage}{0.49\textwidth} % second minipage
\centering
\begin{minted}[escapeinside=||]{python}
a = 1

|\phantom|
\end{minted}
\end{minipage}
\end{figure}

相关内容