我正在尝试并排显示两个列表。我使用 minipage 实现了此目的:
\noindent\begin{minipage}[t]{0.45\textwidth}
\begin{lstlisting}[title=Bad]
some bad code
\end{lstlisting}
\end{minipage}
\noindent\begin{minipage}[t]{0.45\textwidth}
\begin{lstlisting}[title=Good]
some good code
and another good code
\end{lstlisting}
\end{minipage}
在这个例子中,左边的显示一行,右边的显示两行,所以两个列表的高度不一样。
是否可以让较短的一个与较长的一个具有相同的高度,以便我可以得到如下结果:?
答案1
一个具有和的解决方案tcbraster
,raster equal height
将的选项tcbraster
提供给底层tcblisting
环境,在那里可以使用本地选项,像往常一样,使用tcolorbox
。
如果使用lualatex
或xelatex
,请务必添加listing options={}
以删除tcblatex
加载的默认样式inputenc
。
一行中的框数可以用来设置raster columns=2
,例如,当然这取决于具体的需求,因为listings
通常不使用环绕的文本行,所以2
不建议超过列。
tcolorbox
请注意,除了包裹在外部环境中的环境之外,不能有任何其他东西tcbraster
。
\documentclass{article}
\usepackage{listings}
\usepackage[most]{tcolorbox}
\begin{document}
\begin{tcbraster}[raster columns=2, raster equal height,enhanced, sharp corners,listing only,colbacktitle={yellow},coltitle=black,colback=white,boxrule=1pt]
\begin{tcblisting}{title=Bad}
some bad code
\end{tcblisting}
\begin{tcblisting}{title=Good}
some good code
and another good code
\end{tcblisting}
\end{tcbraster}
\end{document}