包 caption 中的命令 \captionsetup 存在问题

包 caption 中的命令 \captionsetup 存在问题

以下 MWE:

\documentclass[11pt]{memoir}

\usepackage{caption}

\captionsetup[table]{
         listformat=empty,
         tablename=Table,
         justification=justified,
         labelsep=quad,
         position=above,
         skip=\onelineskip,
         width=\linewidth,
         labelfont={small},
         font={small}
         }

\begin{document}

    \begin{table}
        \caption{A table.}
    \end{table}

\end{document}

生成错误消息! Package caption Error: Can be used only in preamble。如果我注释该\captionsetup命令,则不会出现这样的错误消息。我知道该类memoir提供了自己的字幕工具,但我宁愿使用该包caption。有人可以解释一下这个问题吗?

编辑:我一评论密钥tablename,问题就消失了。但即使它有效,我也不会称其为令人满意的解决方案。

答案1

编辑:感谢 Gonzalo Medina,我想我有一个解释。:)

tablenamefigurename确实是 的有效条目\captionsetup,只要您使用它时不使用可选参数。想法:不使用可选参数全局有效,因此分别通过和设置和名称\captionsetup是有意义的。figuretablefigurenametablename

以下代码有效:

\captionsetup{
   tablename=Table,
   listformat=empty,
   justification=justified,
   labelsep=quad,
   position=above,
   skip=\onelineskip,
   width=\linewidth,
   labelfont={small},
   font={small}
}

我们正在全局设置标题布局。

现在,当我们提供可选参数时,我们将范围限制在要设置的浮点数内。假设我们使用\captionsetup[table]{...},我们将在范围内配置标题table,因此没有必要使用tablename,而只能使用name

我们可以使用name键代替tablename,因为我们正在配置table

\documentclass[11pt]{memoir}

\usepackage{caption}

\captionsetup[table]{
   name=Table,
   listformat=empty,
   justification=justified,
   labelsep=quad,
   position=above,
   skip=\onelineskip,
   width=\linewidth,
   labelfont={small},
   font={small}
}

\begin{document}

\begin{table}
\caption{A table.}
\end{table}

\end{document}

如果我们想使用tablename,则必须使用\captionsetup不带可选参数:

\documentclass[11pt]{memoir}

\usepackage{caption}

\captionsetup{
   tablename=Table,
   listformat=empty,
   justification=justified,
   labelsep=quad,
   position=above,
   skip=\onelineskip,
   width=\linewidth,
   labelfont={small},
   font={small}
}

\begin{document}

\begin{table}
\caption{A table.}
\end{table}

\end{document}

仅供参考,重命名表名的另一种方法是使用。但是,正如AstroPig在评论中提到的那样,如果我们使用该语言\renewcommand{\tablename}{Table},它不起作用。babelfrench

答案2

caption 包的某些选项与回忆录文档类的定义相冲突。以下 Google 群组帖子应该会有所帮助。

参考文献 1:Google 群组

相关内容