问题描述

在使用amsthm宏包之后,我们能够使用如下代码得到证明(proof)环境,即amsthm 中的 proof 环境:
\documentclass{article}
\usepackage{amsmath,amsthm}
\usepackage{times}
\begin{document}

\begin{proof}
The content of the new proof style $x \succ y, y\succeq z$ and $x \preceq y$.
\end{proof}

\end{document}
environproof1 现在我们想实现如下效果
  • 通过proof环境得到solution环境,要求基本格式一致;
  • 将编译之后的PDF中的proof环境中的proof格式改为加粗,缩进等。

提问者的尝试

提问者自己经过自己的翻阅和查询得到了下面的想法,为了得到 Solution 环境,将\proofname修改为 Solution,使用如下代码(放在导言区)
\renewcommand{\proofname}{\indent \textbf {Solution}}
上述代码是能建立solution环境,但是,弊端是,我们的proof环境不复存在。

一点新尝试

为了找到好的解决方法,我们做了一点尝试,我们使用上面的代码,但是,在proof环境后面加个参数,用以修改格式,使用如下:
\documentclass{article}
\usepackage{amsmath,amsthm}
\usepackage{times}
\begin{document}

\begin{proof}[\indent \bfseries Solution]
The content of the new proof style $x \succ y, y\succeq z$ and $x \preceq y$.
\end{proof}

\end{document}
environproof2 从图中效果,我们看到,我们得到了我们想要的solution环境,但是,存在一个问题,我们的proof环境的格式还是原来的,当然,我们可以使用solution环境的方法,但是,这太繁琐了。或者有人说,那修改proofname达到我们想要的proof环境格式,然后在使用solution环境的时候使用可选参数,逐个修改格式,或者可以借助新建命令简化我们的工作。说实话,这些方法都可以去尝试,而且,应该都能达到我们的想要的目的,但是,这些方法有各种问题,最重要的问题是:它们看起来那么不统一,修改格式很麻烦的,很纠结,不是吗?

可行的办法

通过上面的尝试,我们似乎可以得到启发,我们应该能够使用新建环境达到我们的目的,比如说:
\documentclass{article}
\usepackage{amsmath,amsthm}
\usepackage{times}
%新增加的宏包
\usepackage{environ}
%新建环境iproof
\NewEnviron{iproof}[1][Proof]{\begin{proof}[\indent\bfseries #1]\BODY\end{proof}}{}
\begin{document}

\begin{proof}[\indent\bfseries Solution]
The content of the new solution style $x \succ y, y\succeq z$ and $x \preceq y$.
\end{proof}

\begin{iproof}
The content of the new proof style $x \succ y, y\succeq z$ and $x \preceq y$.
\end{iproof}

\begin{iproof}[Solution]
The content of the new solution style $x \succ y, y\succeq z$ and $x \preceq y$.
\end{iproof}

\end{document}
实现的效果如下: environproof3 注意 本博已经多次使用environ宏包了,如果大家有对环境的定制需求,不妨去看看environ宏包 View environ package on CTAN

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部