通过枚举

通过枚举

我希望整本书中的问题都能连续编号,而不管它们出现在哪个章节。

例如

第1章
[文本]
1. 一些问题
第 1 部分
2. 一些问题
[文本]
第 2 部分
3. 一些问题
ETC

做到这一点最简单的方法是什么?

答案1

您可以创建自己的计数器环境。它还允许您自由管理问题排版的格式。以下是示例:

\documentclass{book}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\newcounter{problem}
\newenvironment{problem}{%
  \refstepcounter{problem}% For correct referencing
  \textbf{Problem~\theproblem.}\ 
}{\par}

\begin{document}

\chapter{First chapter} \lipsum[1]
\section{first section} \lipsum[2]
\begin{problem}
Here is a very interesting problem that you can do. \label{problem1}
\end{problem}
\lipsum[3]
\section{Second section} \lipsum[4]
\begin{problem}
Wow, have you seen this problem? \label{problem2}
\end{problem}
\section{Last section} \lipsum[5]
\begin{problem}
This is the final problem of the book. It is actually much harder than
Problems~\ref{problem1} and~\ref{problem2} combined.
\end{problem}
\lipsum[7]

\end{document}

lipsum包裹提供用于填充“书”的虚拟文本。在上面的例子中,问题被排版为段落,形式如下:

问题 1.等等等等等等

...

问题2。等等等等等等

...

由于计数器不与其他计数器绑定,因此它无需重置即可贯穿整本书。也可以使用传统方式的标签进行引用。

问题

答案2

很大程度上取决于你如何定义问题环境。如果你正在创建自己的环境,那么请将相关计数器定义为不依赖任何内容。

如果您的问题环境是由定理包(例如amsthm)创建的,那么您通常可以在定义定理类型时指定计数器之间的关系。

最后,如果您使用的包定义了自己的问题环境,并自动确定计数器依赖项,则可以使用chngcntr包可以轻松控制现有计数器之间的编号关系。

答案3

使用该enumitem包您可以轻松恢复列表。

\documentclass[12pt]{book}
\usepackage{enumitem}
\newcounter{ProblemNumber}%
\newenvironment{Problem}{%
    \begin{enumerate}\setcounter{enumi}{\theProblemNumber}
}{%
   \setcounter{ProblemNumber}{\value{enumi}}
   \end{enumerate}
}%

\begin{document}
\chapter{Chapter One}
Text
\begin{Problem}
  \item Some Problem
\end{Problem}
\section{Section One}
Some Text
\begin{Problem}
  \item Some Problem
\end{Problem}
\section{Section Two}
\begin{Problem}
  \item Some Problem
\end{Problem}
\end{document} 

答案4

至少有三个软件包 —— theoremntheoremamsthm—— 可以创建带编号的环境,这些环境的标题和正文的字体具有各种样式,环境前后有各种垂直跳跃量等。虽然这些软件包最初是为需要定理、推论等环境的作者创建的,但它们的代码确实适用于各种情况。下面的 MWE 使用了该ntheorem软件包。祝您 TeXing 愉快!

\documentclass{article}
\usepackage{ntheorem,lipsum}
\theorembodyfont{\slshape}
\newtheorem{problem}{Problem}
\begin{document}
\section{First section}
\lipsum[2]
\begin{problem}[Apollo 13]\label{prob:houston}
Houston, we have a problem.
\end{problem}
\lipsum[2]
\section{Next section}
\lipsum[2]
\begin{problem}[Cool Terminator] \label{prob:term}
No problemo.
\end{problem}
\section{Still another section}
As might be noted from Problems \ref{prob:houston} 
and \ref{prob:term}, \ldots
\end{document}

相关内容