我目前在每个 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}