siunitx 和 amsmath 与 listoffigures 不兼容?

siunitx 和 amsmath 与 listoffigures 不兼容?

我正在编写一份需要图表列表的文档(在 Overleaf 中),因此我\listoffigures在目录之后添加了图表,但出现了错误。我认为问题与我在图表标题中Missing number, treated as zero使用图表有关。但是,出于某种原因,如果我删除该包,一切都会正常。\SI{number}{unit}amsmath

以下是重现此问题的 MWE

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{amsmath} % <- Remove this and the error goes away
\usepackage{siunitx}

\begin{document}

\listoffigures

\begin{figure}[t]
    \centering
    \includegraphics{example-image-a}
    \caption{Let's test it \SI{30}{\square\deg}}
    \label{fig:my_label}
\end{figure}

\end{document}

我尝试搜索类似的问题,但没有一个能解决我的问题(据我所知)。

您知道如何解决这个问题吗?

答案1

该命令\deg不是 接受的单位名称之一siunitx,而是 之类的操作员名称\log

您可以定义自己的单位或覆盖的标准输出\degree

\documentclass{book}
\usepackage{amsmath}
\usepackage{siunitx}

\DeclareSIUnit{\degree}{deg}

\begin{document}

\listoffigures

\begin{figure}[t]
    \centering
    \fbox{figure}
    \caption{Let's test it \SI{30}{\square\degree} or \SI{30}{\degree\squared}}
    \label{fig:my_label}
\end{figure}

\end{document}

在此处输入图片描述

相关内容