交叉引用整个枚举列表

交叉引用整个枚举列表

我想enumerate通过在列表中应用标签来引用环境中的所有项目。我试过这个

\documentclass{article}[10pt]
\usepackage{amsmath, hyperref, enumerate}
\begin{document}
\setcounter{section}{1}
\begin{enumerate}\label{listref}
\item Mary
\item Had
\item A little
\item Lamb
\end{enumerate}
The poem \eqref{listref} is one of the best known childrens' rhymes.
\end{document}

但这并没有产生所需的结果。我认为标记列表中的第一个和最后一个项目是一种选择,但我想知道是否有更流畅的方式来做到这一点。

答案1

对于可以引用的编号环境,LaTeX 提供了定理环境。它们不仅仅是定理或定义,你可以更广泛地使用它们。你可以

  • 使用标题,
  • 将计数器连接到分区,
  • 股票柜台,
  • 而不必关心定义环境和管理计数器。

此外,还有几个用于定制这些编号环境的软件包,例如amsthmntheoremthmtools。它们提供了预定义样式和定义您自己的样式的方法。

例子:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{poem}{Poem}
\begin{document}
\begin{poem}\mbox{}\\[-\baselineskip]
  \begin{enumerate}\label{listref}
    \item Mary
    \item Had
    \item A little
    \item Lamb
    \end{enumerate}
\end{poem}
\noindent The poem \eqref{listref} is one of the best known childrens' rhymes.
\end{document}

编号枚举环境

要选择用于自定义格式的定理包,请查看:定理包:使用哪一个,哪些会冲突?

答案2

我想你想要这样的东西:

\newcounter{poemcnt}

\newenvironment{poem}%
  {\refstepcounter{poemcnt}\par Poem~\arabic{poemcnt}\begin{verse}}%
  {\end{verse}}

\begin{poem}
  \label{poemref}
  Mary\\
  Had\\
  A Little\\
  Lamb
\end{poem}

The poem~\ref{poemref} is one of the best known childrens' rhymes.

PS Mico 要求可选标题。这有点复杂 :)

\newcounter{poemcnt}

\makeatletter
\newenvironment{poem}[1][]%
  {\refstepcounter{poemcnt}\par Poem~\arabic{poemcnt}%
    \def\@tempa{#1}\ifx\@tempa\@empty\else\space(#1)\fi
    \begin{verse}}%
  {\end{verse}}
\makeatother

\begin{poem}[Mary's Little Lamb]
  \label{poemref}
  Mary\\
  Had\\
  A Little\\
  Lamb
\end{poem}

答案3

为了将整首诗作为一个整体进行交叉引用,您需要将其放置在一个本身已编号的环境中(更具体地说,一个带有某种计数器的环境或分组)。例如,可以通过将标签附加到各个项目来交叉引用枚举列表中的项目。考虑创建一个诗歌枚举列表,如下例所示,它也使用该cleveref包及其将可选参数分配给\label语句的功能。

\documentclass{article}
\usepackage[colorlinks=true]{hyperref}
\usepackage{cleveref}
\crefname{poem}{poem}{poems}

\begin{document}
\section*{Nursery Rhymes}
\begin{enumerate}
\item Mary Had a Little Lamb \label[poem]{poem:mary}
   \begin{verse}
   Mary had a little lamb\\
   Its fleece was white as snow\\
   And everywhere that Mary went\\
   The lamb was sure to go.
   \end{verse}
\item Humpty Dumpty \label[poem]{poem:humpty}
   \begin{verse}
   Humpty Dumpty sat on a wall\\
   Humpty Dumpty had a great fall\\
   And all the king's horses and all the king's men\\
   Couldn't put Humpty together again.
   \end{verse}
\end{enumerate}

\Cref{poem:mary,poem:humpty} are among the best known nursery rhymes.
\end{document}

在此处输入图片描述

答案4

请记住,即使向列表中添加了(可引用的)计数器,列表也不会默认在文本中显示其“数字”。考虑将列表放在环境中,figure并为该图提供一个名称\caption——这样,您就可以引用该图。

注意:\eqref{listref}MWE 中不会产生任何内容,因为文档中没有任何内容可供引用。\section{foo}在 之后立即添加\begin{document},您\eqref将(错误地)引用第 1 节。

相关内容