由此话题,我已经实现了 Mico 的答案。现在,我也想引用这个枚举。例如,
\documentclass{article}
\usepackage{enumitem,cleveref}
\newlist{myenum}{enumerate}{3}
\setlist[myenum,1]{label=\textbf{\arabic*.},
ref =\textbf{\arabic*.}}
\setlist[myenum,2]{label=\textbf{(\alph*)},
ref =\themyenumi\textbf{(\alph*)}}
\setlist[myenum,3]{label=\bfseries(\roman*),
ref =\themyenumii\textbf{.(\roman*)}}
\crefname{myenumi}{item}{items}
\crefname{myenumii}{item}{items}
\crefname{myenumiii}{item}{items}
\usepackage{graphicx,amsmath}
\numberwithin{figure}{myenumi}
\begin{document}
\begin{myenum}
\item
\begin{figure}
\caption{The Universe.\label{fig:universe}}
\includegraphics{universe}
\end{figure}
\end{myenum}
As shown in \cref{fig:universe}.
\end{document}
但是,这些行给我带来了这个错误:“缺少 \endcsname 插入。\caption”。有什么办法可以解决这个问题吗?谢谢。
答案1
正如@barbarabeeton 在评论中指出的那样,不能figure
在枚举中使用 LaTeX“浮点”对象(例如环境)。为了解决这个问题,我建议您加载caption
包并使用\captionof{figure}{...}
指令来生成标题。我还建议您使用minipage
环境来包裹图形及其相关\captionof
指令。这样,您就可以确保标题位于相应图形上方的中心。
另外,我还想建议交叉引用不以粗体显示。
最后一条评论,呼应@AlanMunn 的评论:除非全部图表与 1 级枚举项相关联,您提议的设置没有太多(印刷)意义。事实上,应该避免这种情况。
\documentclass[demo]{article} % remove 'demo' option in real doc.
\usepackage{graphicx,amsmath,enumitem}
\usepackage[skip=0.333\baselineskip]{caption} % for "\captionof" macro
\usepackage{cleveref}
\newlist{myenum}{enumerate}{3}
\setlist[myenum,1]{label=\textbf{\arabic*.},
ref =\arabic*}
\setlist[myenum,2]{label=\textbf{(\alph*)},
ref =\themyenumi.(\alph*)}
\setlist[myenum,3]{label=\bfseries(\roman*),
ref =\themyenumii.(\roman*)}
\crefname{myenumi}{item}{items}
\crefname{myenumii}{item}{items}
\crefname{myenumiii}{item}{items}
\numberwithin{figure}{myenumi}
\begin{document}
\begin{myenum}
\item
\begin{minipage}[t]{0.5\linewidth} % choose width suitably
\captionof{figure}{The Universe.}
\label{fig:universe}
\includegraphics[width=\textwidth]{universe}
\end{minipage}
\end{myenum}
As shown in \cref{fig:universe}, \dots
\end{document}