我想在 latex 中制作双列代码,但标题位于两列上方。例如:
Program 1 : some text here for the caption
1 //col 1 7 //col2
2 void main (void) 8 void foo(void)
3 { 9 {
4 //just a test 10 int c;
5 return 0; 11 c = 0;
6 } 12 }
我正在使用列表。为了完成上面的布局,我在一张表中插入了两个列表。这种方法存在一些问题,我必须手动划分代码并在 PDF 中观察结果。
我想使用 [multicol=2] 选项,但这样,标题堆栈仅在第一列上。现在有人如何克服(如果可能的话?)
Program 1 : some text 7 //col2
here for the caption 8 void foo(void)
1 //col 1 9 {
2 void main (void) 10 int c;
3 { 11 c = 0;
4 //just a test 12 }
5 return 0;
6 }
下面是不起作用的代码
\documentclass{article}
\usepackage{listings}
\usepackage{multicol}
\begin{document}
\lstset{
language=C,
breaklines=true,
prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
}
\begin{lstlisting}[stepnumber=1,multicols=2,caption=Caption test to confirm that multicol does not like large captions]
void MudaDigito(char val)
{
if (pos == 0)
{
v0 = val;
}
if (pos == 1)
{
v1 = val;
}
if (pos == 2)
{
v2 = val;
}
if (pos == 3)
{
v3 = val;
}
}
\end{lstlisting}
\end{文档}
最佳答案
我也遇到了同样的问题。我找到了解决方案。 它不干净,但有效。 下面是工作代码。
<小时/>\documentclass{article}
\usepackage{listings}
\usepackage{multicol}
\newcommand{\listingcaption}[1]%
{%
\refstepcounter{lstlisting}\hfill%
Listing \thelstlisting -- #1\hfill%\hfill%
}%
\begin{document}
\lstset{
language=C,
breaklines=true,
prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
}
\listingcaption{Caption test to confirm that multicol does not like large captions\label{list1}}
\begin{lstlisting}[stepnumber=1,multicols=2]
void MudaDigito(char val)
{
if (pos == 0)
{
v0 = val;
}
if (pos == 1)
{
v1 = val;
}
if (pos == 2)
{
v2 = val;
}
if (pos == 3)
{
v3 = val;
}
}
\end{lstlisting}
See listing \ref{list1}
\end{document}
关于latex - 使用 multicol (latex) 在列表环境中配置标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3981837/