`\item[0.]\label{fst}` 则 `\ref{fst}` 给出 `1.2` 而不是 `0`;如何正确标记 `enumerate` 块项?

`\item[0.]\label{fst}` 则 `\ref{fst}` 给出 `1.2` 而不是 `0`;如何正确标记 `enumerate` 块项?
\begin{enumerate}
  \item[0.] \label{fst} Foo
  \item In \ref{fst} I said
\end{enumerate}

想:

In 0 I said

得到:

In 1.2 I said

(很高兴有额外的句号;即0.

答案1

\item[...]没有生成数字。

您可以使用enumitem及其start密钥。

\documentclass{article}
\usepackage{enumitem}

\begin{document}

\begin{enumerate}[start=0]
\item \label{zero} text
\item text
\end{enumerate}

Item~\ref{zero}

\end{document}

在此处输入图片描述

你甚至可以开始全部您的enumerate环境从 0 开始。

\documentclass{article}
\usepackage{enumitem}

\setlist[enumerate]{start=0}

\begin{document}

\begin{enumerate}
\item \label{zero} text
\item text
\end{enumerate}

Item~\ref{zero}

\begin{enumerate}
\item another
\item test
\end{enumerate}

\end{document}

在此处输入图片描述

答案2

正如您所发现的,如果您有[]一个项目,则可以删除其编号以供参考。如果您希望整个列表从零开始,那么最简单的方法是调整计数器,使其执行以下操作:

\documentclass{article}
\begin{document}
\begin{enumerate}\addtocounter{enumi}{-1}
  \item \label{fst} Foo
  \item In \ref{fst} I said
\end{enumerate}
\end{document}

给出“在 0 中我说”(我假设您希望 1 位于 0 之后)。如果您想要更多,我建议您查看该enumitem包。例如,setlist[enumerate]{start=0}将允许您的所有枚举从 0 开始,而不仅仅是这个,而 ref 键将允许您的引用有句号。

相关内容