以下代码无法编译。但是,如果我删除环境,itemize
它就会编译。我在 Google 上搜索了这个问题,发现有人建议使用 caption 包可以解决这个问题,但我没有找到任何关于问题发生原因的明确描述。例如
http://www.latex-community.org/forum/viewtopic.php?f=45&t=8774
我使用的是 Debian squeeze 和 TeX Live 2009-11。附带的版本caption
有
\ProvidesPackage{caption}[2009/10/09 v3.1k Customizing captions (AR)]
我也尝试下载并使用caption
来自
http://www.ctan.org/tex-archive/macros/latex/contrib/caption/
但这不会改变任何东西。我把 sty 文件放在我当前的目录中。我假设这会覆盖系统文件。这个对应于
\ProvidesPackage{caption}[2010/01/09 v3.1m Customizing captions (AR)]
错误消息和示例文件如下。
*******************************************
ERROR: Argument of \@caption has an extra }.
--- TeX said ---
<inserted text>
\par
l.13 }
--- HELP ---
From the .log file...
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.
******************************************************
\documentclass{article}
\usepackage{caption}
\begin{document}
\begin{figure}
\captionsetup{singlelinecheck=off}
\caption
{
foo
\begin{itemize}
\item bar
\end{itemize}
}
\end{figure}
\end{document}
答案1
来自caption
手册:
如果您想要排版一些特殊内容(例如表格)作为标题,您也需要为图形列表或表格列表提供一个可选参数,即使您不使用这样的列表
\caption
。\captionof
\documentclass{article}
\usepackage{caption}
\begin{document}
\begin{figure}
\captionsetup{singlelinecheck=off}
\caption[foo bar]{foo
\begin{itemize}
\item bar
\end{itemize}}
\end{figure}
\end{document}