在标题中使用 itemize 环境

在标题中使用 itemize 环境

以下代码无法编译。但是,如果我删除环境,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}

相关内容