我正在尝试将一个例子(使用 amsmath 中的定理环境)分成两部分:
例 1...
更多讨论
示例 1(续)...
做这个的最好方式是什么 ?
我目前拥有的代码是
\documentclass{article}
\usepackage{amsmath}
\newtheorem{example}{Example}
\begin{document}
Consider the following example:
\begin{example}
$a = b + c$
\end{example}
Now, consider what happens if we add $d$ to $a$:
\begin{example}[continued] % I'd like to have this to output Example 1 (continued)
$a + d$
\end{example}
\end{document}
答案1
我认为您可以保留大部分以前的代码。您需要做的就是在序言中添加一些说明 - 具体来说,加载包ntheorem
并修改的默认定义(仅当您想查看而不是时才theoremstyle
需要后者) - 并记住在输入之前发出命令。, continued
(continued)
\addtocounter{example}{-1}
\begin{example}[continued]
请参阅以下 MWE:
\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath]{ntheorem}
\makeatletter
\renewtheoremstyle{plain}%
{\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}%
{\item[\hskip\labelsep \theorem@headerfont ##1\ ##2, ##3\theorem@separator]}
\makeatother
\newtheorem{example}{Example}
\begin{document}
\section{Some thoughts}
Consider the following example:
\begin{example}
$a = b + c$
\end{example}
Now consider what happens if we add $d$ to $a$:
\addtocounter{example}{-1}
\begin{example}[continued]
$a + d$
\end{example}
\end{document}
编辑:根据 cmhughes 的建议,这里有一个与前面的 MWE 非常相似的版本,但作者不必记住\addtocounter{example}{-1}
在开始示例之前键入内容。这是通过创建一个我命名为 的新环境来实现的contexample
;它的样式与环境的样式相同example
,只是它附加", continued"
到环境的标题中。请注意,使用此设备,任何示例都可以根据需要“继续”。
\documentclass{article}
\usepackage{amsmath}
\usepackage[amsmath]{ntheorem}
\makeatletter
\renewtheoremstyle{plain}%
{\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}%
{\item[\hskip\labelsep \theorem@headerfont ##1\ ##2, ##3\theorem@separator]}
\makeatother
\newtheorem{example}{Example}
\newenvironment{contexample}{
\addtocounter{example}{-1} \begin{example}[continued]}{
\end{example}}
\begin{document}
\section{Some thoughts}
Consider the following example:
\begin{example}
$a = b + c$.
\end{example}
Now consider what happens if we add $d$ to $a$:
\begin{contexample}
$a + d$.
\end{contexample}
And if we wish to continue along these lines, we also find
\begin{contexample}
$x = y$.
\end{contexample}
\end{document}
答案2
使用thm工具amsmath
包作为(或)的前端,您可以使用和键ntheorem
轻松实现所需功能。一个小例子:label=<key>
continues=<key>
\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheorem[style=definition]{example}
\begin{document}
\renewcommand\thmcontinues[1]{Continued}
\begin{example}[label=exa:cont]
This is an example.
\end{example}
\begin{example}[continues=exa:cont]
And here's the continuation of the example.
\end{example}
\end{document}
显示的文本由命令控制\thmcontinues
,您可以根据需要重新定义该命令,就像我在示例代码中所做的那样;默认情况下,它将显示类似的内容(continuing from p. <the_page>)
,其中<the_page>
是示例第一次出现的页码。
答案3
改编 cmhughes 的想法,但保留命令的使用\newtheorem
,您可以简单地为延续创建一个新的定理类型,并将该定理的计数器设置为与主示例计数器匹配:
\documentclass{article}
\usepackage{amsmath}
\newtheorem{example}{Example}
\newtheorem{excont}{Example}
\renewcommand{\theexcont}{\theexample}
\begin{document}
Consider the following example:
\begin{example}
$a = b + c$
\end{example}
Now, consider what happens if we add $d$ to $a$:
\begin{excont}[Continued]% I'd like to have this to output Example 1 (continued)
$a + d$
\end{excont}
\end{document}
答案4
以下代码定义了两个环境:example
和examplecont
。请注意,只有example
环境才会增加计数器。
\documentclass{article}
\usepackage{lipsum}% only needed for sample text
\newcounter{example}
\newenvironment{example}{%
\refstepcounter{example}%
{\bfseries Example \theexample}}{}
\newenvironment{examplecont}{%
{\bfseries Example \theexample} (cont\ldots)}{}
\begin{document}
\begin{example}
\lipsum[1]
\end{example}
\lipsum[2]
\begin{examplecont}
\lipsum[3]
\end{examplecont}
\end{document}
编辑 如果您想要一个使用可选参数的解决方案,这里有一个:
\documentclass{article}
\usepackage{lipsum}% only needed for sample text
\usepackage{ifthen}
\newcounter{example}
\newenvironment{example}[1][]{%
\ifthenelse{\equal{#1}{continued}}%
{%
{\bfseries Example \theexample (continued\ldots)\quad}%
}%
{%
\refstepcounter{example}%
{\bfseries Example \theexample \quad}%
}%
}{}
\begin{document}
\begin{example}
\lipsum[1]
\end{example}
\lipsum[2]
\begin{example}[continued]
\lipsum[3]
\end{example}
\end{document}