这minted
包裹用于代码高亮的 带有一个名为 的浮动环境listing
。现在我想将这两个代码清单放在一起,但我不知道该怎么做。我尝试使用该multicol
包,但两个清单的代码重叠了。
关于如何做到这一点有什么建议吗?
编辑:这是我为了方便而创建的一些小宏及其使用示例。
\newcommand{\insertminted}[2]{\inputminted[linenos=true,
frame=lines,
framesep=2mm,
xleftmargin=2cm,
xrightmargin=2cm]{#1}{#2}}
\begin{listing}[H]
\insertminted{xml}{code_examples/user.xml}
\insertminted{js}{code_examples/user.js}
\caption{SomeCaption}
\label{lst:representation_examples}
\end{listing}
这样, 的代码user.xml
就位于 的代码上方user.js
。我希望将代码并排放在两列中,以便进行比较。我还希望每个代码都有单独的标题。整个列表应出现在 的输出中\listoflistings
。
答案1
该minted
软件包提供了listing
环境,即float
。我第一次尝试将环境与自己的 放在minipages
一起listing
。captions
遗憾的是,这没有奏效。
相反,我使用了caption
包(compatibility=false
如文档中所述minted
),然后将两个minted
环境放在一个figure
环境中(使其浮动),并使用captionof
命令获取适当的标题。
\documentclass{article}
\usepackage[compatibility=false]{caption}
\usepackage{minted}
\begin{document}
\listoflistings
\vspace{2cm}
\begin{figure}[!h]
\begin{minipage}{0.5\textwidth}
\centering
\begin{minted}{python}
some code
\end{minted}
\captionof{listing}{Sub caption}
\end{minipage}
\begin{minipage}{0.5\textwidth}
\centering
\begin{minted}{python}
some other code
\end{minted}
\captionof{listing}{Another sub caption}
\end{minipage}
\captionof{listing}{SomeCaption}
\label{lst:representation_examples}
\end{figure}
\end{document}
对于任何刚接触此minted
软件包的人来说,你需要python-pygments
sudo apt-get install python-pygments
pdflatex
你需要
pdflatex -shell-escape myfile.tex
两者都在文档中有详细说明。
答案2
使用 aminipage
是让两个东西相邻的简单方法。以下是使用包lstlisting
中的一个例子listings
。您应该能够将其调整为适合minted
包。
\documentclass[border=2pt]{standalone}
\usepackage{listings}
\begin{document}
\begin{minipage}[t]{0.45\linewidth}
\begin{lstlisting}[caption={Some XML Caption}]
.. xml code ...
.. xml code ...
.. xml code ...
.. xml code ...
.. xml code ...
.. xml code ...
\end{lstlisting}
\end{minipage}
%
\begin{minipage}[t]{0.45\linewidth}
\begin{lstlisting}[caption={Some Javascript Caption}]
... javascript code ...
... javascript code ...
... javascript code ...
\end{lstlisting}
\end{minipage}
\end{document}