使用“定理”和“证明”环境

使用“定理”和“证明”环境

我知道我们可以使用该包创建问题解决方案对exercise,但我正在寻找更简单且theoremproof环境相似的东西。我用两种不同的方法解决了这个问题。

使用“定理”和“证明”环境

这是编写问题陈述并随后提供解决方案的一种方法。

\documentclass{article}
\usepackage{amsthm}
\newtheorem*{theorem}{Problem}
\renewcommand{\qedsymbol}{}

\begin{document}

\begin{theorem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc quis
volutpat tellus. Morbi dapibus dolor quis ligula porta eget adipiscing
nibh consectetur. Nulla fringilla dolor id elit vulputate ac posuere
ligula auctor.
\end{theorem}

\begin{proof}[Solution]
Ut at turpis felis. Donec venenatis fermentum volutpat.
Aliquam erat volutpat. Nulla fringilla adipiscing metus, eget porta
turpis facilisis vel. Nulla facilisi. Vivamus tristique ultricies
imperdiet. Cras non sapien erat, et tincidunt enim. Praesent vel ipsum
elit. Donec tincidunt, sem vitae scelerisque volutpat, diam dui
elementum est, quis ullamcorper libero sapien laoreet sem. 
\end{proof}

\end{document}

输出如下所示。

定理环境

使用自定义“问题”和“解决方案”环境

这个问题也可以通过如下定义我自己的环境来解决。

\documentclass{article}

\newenvironment{problem}[1][Problem]
{\begin{trivlist} \item[\hskip \labelsep {\bfseries #1.}] \itshape}
{\end{trivlist}}

\newenvironment{solution}[1][Solution]
{\begin{trivlist} \item[\hskip \labelsep {\itshape #1.}]}
{\end{trivlist}}

\begin{document}

\begin{problem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc quis
volutpat tellus. Morbi dapibus dolor quis ligula porta eget adipiscing
nibh consectetur. Nulla fringilla dolor id elit vulputate ac posuere
ligula auctor.
\end{problem}

\begin{solution}[Solution]
Ut at turpis felis. Donec venenatis fermentum volutpat.
Aliquam erat volutpat. Nulla fringilla adipiscing metus, eget porta
turpis facilisis vel. Nulla facilisi. Vivamus tristique ultricies
imperdiet. Cras non sapien erat, et tincidunt enim. Praesent vel ipsum
elit. Donec tincidunt, sem vitae scelerisque volutpat, diam dui
elementum est, quis ullamcorper libero sapien laoreet sem. 
\end{solution}

\end{document}

输出如下所示。

自定义环境

我对此有三个问题。

  1. 解决这个问题的首选方法是什么? 上述两种方法中的哪一种是解决这个问题的更好方法?
  2. 您会建议对我在第二种方法中定义的problem和环境进行任何改进或修改吗?solution
  3. 这两个输出非常相似,但并不完全相似。如果你打开第一个输出图像第二个输出图像在浏览器的两个不同标签页中切换时,你会看到一些差异。为什么会出现这些差异?
    • 斜体文本中字符之间的间距不同。
    • 问题和解决方案之间的垂直空间不同。

答案1

您的第一种方法有两个缺点:

  • 从语义上讲,它在某种程度上是模棱两可的,因为您正在使用proof环境并且必须更改标签中使用的默认名称;我认为最好有一个带名称的专用环境solution(或比更接近解决方案proof)。
  • 使用 的默认proof环境amsthm,您需要重新定义\qedsymbol,以便结束标记不会出现在您修改的环境中。

您的第二种方法有一个潜在的缺点,由您注意到的垂直间距问题可以看出;如果您\trivlist对这两个环境使用该方法,但最终使用amsthm包中的某些环境,则间距可能会导致不一致。

我可能会选择混合使用您的方法;我会使用包\theoremstyle中的amsthm方法来定义解决方案的样式:

\documentclass{article}
\usepackage{amsthm}

\newtheorem*{problem}{Problem}
\newtheoremstyle{solution}%
  {\topsep}{\topsep}{\normalfont}{}%
  {\itshape}{.}{5pt}{}
\theoremstyle{solution}
\newtheorem*{solution}{Solution}

\begin{document}

\begin{problem}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc quis
volutpat tellus. Morbi dapibus dolor quis ligula porta eget adipiscing
nibh consectetur. Nulla fringilla dolor id elit vulputate ac posuere
ligula auctor.
\end{problem}

\begin{solution}
Ut at turpis felis. Donec venenatis fermentum volutpat.
Aliquam erat volutpat. Nulla fringilla adipiscing metus, eget porta
turpis facilisis vel. Nulla facilisi. Vivamus tristique ultricies
imperdiet. Cras non sapien erat, et tincidunt enim. Praesent vel ipsum
elit. Donec tincidunt, sem vitae scelerisque volutpat, diam dui
elementum est, quis ullamcorper libero sapien laoreet sem. 
\end{solution}

\end{document}

在此处输入图片描述

关于你的第三个问题,当我运行你的示例代码时,我无法重现斜体文本中字符之间的任何不同间距(但你链接的图像有效地显示了差异,所以这让我想知道你是如何运行你的示例的?)。间距的差异来自使用 定义的定理结构周围的垂直间距的默认设置amsthm

相关内容