图片标题中的 inparaenum

图片标题中的 inparaenum

为什么我发现很难将内联列表放在图片标题中?有什么原因吗?

我已经定义了这个:

\newcommand{\inlinelist}[1]{\begin{inparaenum}[(a)] #1 \end{inparaenum}}

但我看不出有什么问题。似乎只有字幕有问题。

答案1

其实没什么问题本身您要尝试执行的操作。但是,让您感到困惑的是,命令的参数\caption不能包含 LaTeX 所称的“移动”或“移动”部分。要使脆弱的命令“坚固”,可以在命令前加上前缀\protect

单独的注释:如果您有需要创建“图形列表”(可以使用命令完成\listoffigures),则应在命令的可选参数中提供标题文本的“简短”版本\caption。否则,您将收到更多神秘的错误消息,这次是 形式Argument of \@caption has an extra }。解决该问题的方法是创建一个简短版本的标题,根本不使用任何“移动”命令,如以下 MWE 所示。

\documentclass{article}
\usepackage{paralist}
\usepackage[demo]{graphicx}
\newcommand{\inlinelist}[1]{\begin{inparaenum}[(a)] #1 \end{inparaenum}}

\begin{document}
\listoffigures

\begin{figure}[h]
\caption[Hello and Goodbye]% 
   {\inlinelist{%
     \protect\item Hello. 
     \protect\item Goodbye.}%
   }
\centering
\includegraphics{hello.pdf}
\end{figure}
\end{document}

在此处输入图片描述

答案2

你只给出了回答问题所需的部分信息。但问题似乎是你在移动论证中处理了很多脆弱的命令。尝试

\documentclass{article}

\usepackage{paralist}

\begin{document}
\DeclareRobustCommand{\inlinelist}[1]{\begin{inparaenum}[(a)] #1 \end{inparaenum}}

\begin{figure}
  \centering
  \caption{\inlinelist{\protect\item foo\protect\item bar}}
\end{figure}



\end{document} 

相关内容