标题内的逐项说明不起作用

标题内的逐项说明不起作用

我一直在尝试解决这个问题,但尽管我确实找到了另一个有同样问题的帖子,但我不明白他们具体做了什么来解决这个问题。所以我正在使用这个包

\usepackage{caption}

并希望得到下图及标题:

\begin{figure}
 \centering
 \includegraphics[scale=0.47]{HP.png}
 \captionsetup{singlelinecheck=off}
 \caption{
  text1:

  \begin{itemize}
   \renewcommand\labelitemi{--}
   \item blue: $0.1 - 0.36$
   \item green: $0.36 - 0.98$
   \item red: $0.98 - 3.5$
   \item purple: $3.5 +$
  \end{itemize}

  text2 }
 \label{HP}
\end{figure}

它给了我这个错误:

! Argument of \@caption has an extra }.

另一个解决方案做了一些事情,但我不知道是什么,因为他们使用“foo”“bar”而不是真正的命令。

更新:建议的解决方案如下

\begin{figure}
  \centering
  \includegraphics[scale=0.3]{HP.png}
  \captionsetup{singlelinecheck=off}
  \caption[]{text1:

    \begin{itemize}[label={--}]
      \item blue: 0.1 -- 0.36
      \item green: 0.36 -- 0.98
      \item red: 0.98 -- 3.5
      \item purple: 3.5 +
    \end{itemize}

    text2}
\end{figure}

我现在收到错误! LaTeX Error: Something's wrong--perhaps a missing \item.

其他人可以尝试一下并看看是否会遇到同样的错误吗?

答案1

请注意,标题是一个浮动参数,它们很脆弱。虽然singlelinecheck=off有一定的安全性,但您应该提供非段落标题作为浮动参数:

在此处输入图片描述

\documentclass{article}

\usepackage{caption,graphicx,enumitem}

\begin{document}

\begin{figure}
  \centering
  \includegraphics[scale=0.3]{example-image}
  \captionsetup{singlelinecheck=off}
  \caption[]{text1:

    \begin{itemize}[label={--}]
      \item blue: 0.1 -- 0.36
      \item green: 0.36 -- 0.98
      \item red: 0.98 -- 3.5
      \item purple: 3.5 +
    \end{itemize}

    text2}
\end{figure}

\end{document}

请注意,可选参数的使用不包含任何段落。它目前为空白,如果您不使用,则这无关紧要\listoffigures

答案2

如果你的清单冒犯了你,就把它删掉

\caption{}一个简单而安全的解决方案是在逐项列表和剩余文本之后移出。

如果某个类/包/宏控制标题的位置(即,你将标题放在图像后面,但标题将打印在顶部位置),或者更改字体,或者在标题后设置一些垂直跳过(\belowcaptionskip),那么这种方法可能会出现一些问题,但除此之外......为什么不呢?

不要低估minipages

人们经常寻找可以用简单边界框解决的复杂解决方案。对于标题,标题内的逐项列表minipage只是一个牢不可破的框。这可以规避标题限制,例如避免段落中断。

一些例子:

姆韦]

\documentclass[a5paper]{article}
\usepackage[margin=1cm]{geometry}
\usepackage{graphicx}
\begin{document}
\begin{figure}[h]
  \centering
  \includegraphics[scale=0.1]{example-image-a}\par
  \caption[Text1]{Some short text 1:}
      \leftmargini.4\linewidth
       \begin{itemize}
          \renewcommand\labelitemi{--}
          \itemsep0pt\parskip0pt
          \item blue: 0.1 -- 0.36
          \item green: 0.36 -- 0.98
          \item red: 0.98 -- 3.5
          \item purple: 3.5 +
       \end{itemize}
       Some short text 2.
\end{figure}
\hrule
\begin{figure}[h]
  \centering
  \includegraphics[scale=0.1]{example-image-b}
  \caption[Text1]{
    \begin{minipage}[t]{3cm}
       Some short text 1:
       \leftmargini0pt
       \begin{itemize}
          \renewcommand\labelitemi{--}
          \itemsep0pt\parskip0pt
          \item blue: 0.1 -- 0.36
          \item green: 0.36 -- 0.98
          \item red: 0.98 -- 3.5
          \item purple: 3.5 +
       \end{itemize}
       Some short text 2.
    \end{minipage}}
\end{figure}
\hrule
\begin{figure}[h]
  \centering
  \includegraphics[scale=0.1]{example-image-c}
  \caption[Text1]{Some long text 1. Some long text 1.
    Some long text 1.Some long text 1: \parskip.5em\par
{\centering\begin{minipage}{.3\linewidth}
    \begin{itemize}
\renewcommand\labelitemi{--}
\itemsep0pt\parskip0pt
      \item blue: 0.1 -- 0.36
      \item green: 0.36 -- 0.98
      \item red: 0.98 -- 3.5
      \item purple: 3.5 +
    \end{itemize}
\end{minipage}\par}
Some long text 2. Some long text 2. Some long text 2. Some long text 2.}
\end{figure}
\hrule
\end{document}

相关内容