我发现只有非空的标题文本才能使标题出现在输出文件中,即使是空格字符\
。这是一个例子:
\documentclass{article}
\usepackage{listings}
\lstset{
language=C++,
frame = t
}
\usepackage{caption}
\captionsetup{
singlelinecheck = false
}
\begin{document}
\begin{lstlisting}[caption={\ }] %note the character '\ ' here!
class MyClass
{
public:
MyClass()
{
// Constructor
}
~MyClass()
{
// Destructor
}
};
\end{lstlisting}
\end{document}
\
好吧,当我删除的空格字符时caption = {\ }
,输出文件中的标题就会消失:
\documentclass{article}
\usepackage{listings}
\lstset{
language=C++,
frame = t
}
\usepackage{caption}
\captionsetup{
singlelinecheck = false
}
\begin{document}
\begin{lstlisting}[caption={}] % look here, nothing in caption
class MyClass
{
public:
MyClass()
{
// Constructor
}
~MyClass()
{
// Destructor
}
};
\end{lstlisting}
\end{document}
我想知道是否有某种方法可以在调用时输出标题,即使caption = {...}
花括号 ( ) 中没有任何内容,就像 float或environmentcaption = {}
一样。有人能给我一些提示吗?table
figure
答案1
如果您希望所有列表都有编号,但可能没有标题文字,您可以caption=\mbox{}
设置\lstset
。
\documentclass{article}
\usepackage{listings}
\usepackage{caption}
\lstset{
language=C++,
frame = t,
caption=\mbox{},
columns=fullflexible,
}
\captionsetup[lstlisting]{
singlelinecheck = false
}
\begin{document}
\begin{lstlisting}
class MyClass
{
public:
MyClass()
{
// Constructor
}
~MyClass()
{
// Destructor
}
};
\end{lstlisting}
\begin{lstlisting}[caption=This has a caption]
class MyClass
{
public:
MyClass()
{
// Constructor
}
~MyClass()
{
// Destructor
}
};
\end{lstlisting}
\end{document}
笔记。
我添加了
columns=fullflexible
,因为像等宽字体这样的比例字体会让我的眼睛刺痛。设置
caption
仅限于lstlisting
字幕。