类似定理的方法

类似定理的方法

我正在写一本书,一个常见的问题是,当我对问题进行编号时,我会写一个列表,然后发现自己必须返回并重新编号所有问题。这很奇怪,但这个网站会出于某种原因自动更正它(可能使用了我没有的软件包)。例如,假设我有一份包含九十九个问题的列表。

  1. 问题 1 写作

  2. 问题 2 写作

  3. 问题 3 写作

  4. 问题 4 写作...

然后我意识到我应该把问题放在一和二之间。有没有办法创建一个持续的列表,这样我就不必重新编号所有的问题了?

答案1

在文档的开头写下以下内容:

\newcounter{question}
\setcounter{question}{0}
\newcounter{answer}
\setcounter{answer}{0}

另外,输入

\newcommand\que[1]{%
   \leavevmode\par
   \stepcounter{question}
   \noindent
   \thequestion. #1\par}. 

此外,对于\ans{..},执行相同的操作。

然后,继续提问并回答,例如:

\que{Put question here}
\ans{Put answer here}

答案2

我使用的标准方法是将它们视为类似定理的构造。另一种方法是列表 (enumerate构造),见下文。

类似定理的方法

\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{problem}{Problem}[section]

然后为您提供一个标有“问题 #.##”的环境,#这是部分编号,也是##该部分内的问题编号。然后您可以使用标准 LaTeX\label...\ref机制来引用问题编号。

示例输出

\documentclass{article}

\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{problem}{Problem}[section]

\begin{document}
\section{First section}
\begin{problem}
  First problem
\end{problem}
Text.
\begin{problem}
  \label{prob:sec}
  Second problem
\end{problem}

\section{Second section}

\begin{problem}
  Third problem, but first in second section.
\end{problem}

Have a look at Problem~\ref{prob:sec}.

\end{document}

如果您只想在整个文档中连续编号问题,请[section]\newtheorem上面的命令中删除。如果您希望在另一个单元(例如章节)内编号,请替换[section][chapter]或任何其他命令。

为了便于引用,请考虑使用cleveref包(最后加载所有包)。以下内容产生与上述相同的输出,但您只需编写\cref而不是Problem~\ref

\documentclass{article}

\usepackage{amsthm}
\usepackage[capitalize]{cleveref}
\theoremstyle{definition}
\newtheorem{problem}{Problem}[section]

\begin{document}
\section{First section}
\begin{problem}
  First problem
\end{problem}
Text.
\begin{problem}
  \label{prob:sec}
  Second problem
\end{problem}

\section{Second section}

\begin{problem}
  Third problem, but first in second section.
\end{problem}

Have a look at \cref{prob:sec}.

\end{document}

列表方法

使用标准枚举,每个问题都可以只是一个,\item并且您可以使用该\label...\ref机制。

示例列表

\documentclass{article}

\begin{document}

\section{Problems}
\begin{enumerate}
\item The first problem.
\item\label{prob:second} The second problem.
\item The third problem uses problem~\ref{prob:second}.
\end{enumerate}

\end{document}

当然,编号会与普通列表混淆。为了避免这种情况,您可以定义具有不同标签的专用环境。

更详细的列表

\documentclass{article}

\newenvironment{problems}{\renewcommand{\theenumi}{\thesection.\arabic{enumi}}\begin{enumerate}}{\end{enumerate}}

\begin{document}

\section{A section}

\begin{enumerate}
\item\label{it:ord} Ordinary list item.
\end{enumerate}

\section{Problems}
\begin{problems}
\item The first problem.
\item\label{prob:second} The second problem.
\item The third problem uses problem~\ref{prob:second}.
\end{problems}

\section{Another section}

\begin{enumerate}
\item\label{it:ord2} Ordinary list item.
\end{enumerate}

Problem~\ref{prob:second} item~\ref{it:ord} and item~\ref{it:ord2}.

\end{document}

相关内容