使用 labelenumi 引用项目

使用 labelenumi 引用项目

我正在用 LaTeX 写一本书,其中我将问题 mn 标记为第 m 章,问题 n(例如,问题 6.10 是第 6 章中的第 10 个问题)。我使用声明

\renewcommand{\theenumi}{\arabic{enumi}}
\renewcommand{\labelenumi}{\thechapter.\theenumi}

并且这可以在列出问题的枚举环境中正确打印问题标签。但是,当我在其他地方引用问题时,它只会打印问题编号(例如,“参见问题 6.10”写为“参见问题 10”)。有没有针对此问题的全局修复?

答案1

正如 Christian 所建议的,使用枚举项包可能是最好的方法。我会比他提到的答案更进一步,problems为你的问题定义一个新的环境。使用以下命令执行你想要的操作enumitem非常简单:

\newlist{problems}{enumerate}{1}% or 2 or 3 if you want to nest
\setlist[problems]{label=\thechapter.\arabic*, 
                   ref=Problem \thechapter.\arabic*
}

这里我假设您想要\ref{...}打印类似 的内容Problem 1.2。如果您只想打印,1.2则省略ref=...。有关更多详细信息,请参阅非常易读的enumitem手册。

事实上,如下所示,我还会让problems环境自动为问题添加标题,您可以使用选项before=来执行此操作。。enumitem下面我已经使用了,\section{...}但也许\section*{...}\subsection{...}等会更适合您。

这里有一个完整的最小工作示例

\documentclass{book}
\usepackage{enumitem}

\newlist{problems}{enumerate}{1}% or 2 or 3 if you want to nest
\setlist[problems]{label=\thechapter.\arabic*,
                   ref=Problem \thechapter.\arabic*,
                   before={\section{Problems for Chapter \thechapter}}
}

\begin{document}

\chapter{First chapter}

\begin{problems}
  \item Is the Riemann hypothesis true? \label{Riemann}
  \item Find the first counter-example to the twin primes conjecture
  \label{twins}
\end{problems}

Actually, \ref{Riemann} and \ref{twins} are quite hard, so allow at
least an extra week.
\end{document}

为了完整性,这将产生:

在此处输入图片描述

答案2

引用计数器使用\the<cntr>其引用内容。因此,您应该重新定义\theenumi以完全包含您的表示(因为它将被设置并因此被引用):

在此处输入图片描述

\documentclass{book}

\newenvironment{questions}
  {\renewcommand{\theenumi}{\thechapter.\arabic{enumi}}%
   \begin{enumerate}}
  {\end{enumerate}}

\begin{document}

\setcounter{chapter}{9}% Just for this example

\chapter{Questions}

See questions \ref{q:first}--\ref{q:last}.

\begin{questions}
  \item \label{q:first}
  First question

  \item
  Second question

  \item
  Third question

  \item \label{q:last}
  Last question
\end{questions}

\end{document}

上述示例重新定义\theenumi为新环境的一部分questions。这允许您本地化定义的更改,而不会影响其他enumerate环境(如果使用它们)。

相关内容