以下代码会产生奇怪的结果。如果我不包含subfig
包或不使用参数,一切看起来都很好xleftmargin
。如果我使用,它也可以正常工作captionpos=t
。这个问题有解决方法吗?我必须使用subfig
,xleftmargin
和captionpos=b
。我正在使用安装了所有更新的 TexLive 2013。
\documentclass{article}
\usepackage[english]{babel}
\usepackage{subfig}
\usepackage{blindtext}
\usepackage{listings}
\lstset{
breaklines=true,
captionpos=b,
numbers=left,
xleftmargin=20em
}
\begin{document}
\begin{lstlisting}[caption={information information information information information information information}]
A = B
C = D
\end{lstlisting}
\blindtext
\end{document}
结果:
答案1
如果你只是需要subfig
但不需要caption
包中的功能(这是此行为的真正原因),subfig
请使用caption=false
如下选项加载
\usepackage[caption=false]{subfig}
一个完整的示例与您的代码,其中我还包含了 \pretolerance 建议的更改赫伯特在他的回答到列表标题中的连字符无法正常工作:
\documentclass{article}
\usepackage[english]{babel}
\usepackage[caption=false]{subfig}
\usepackage{listings}
\usepackage{blindtext}
\lstset{
breaklines=true,
captionpos=b,
numbers=left,
xleftmargin=20em
}
\begin{document}
\begin{lstlisting}[caption={\pretolerance=100 information information information information information information information}]
A = B
C = D
\end{lstlisting}
\blindtext
\end{document}