解决方案结构末尾的块

解决方案结构末尾的块

所以几个月前我创建了自己的包。里面的所有东西都运行良好,到目前为止,它按照我需要的方式完成了我需要的一切。但我想改变一件事。当我创建包时,我发现有必要在包中创建一个结构声明,声明如下

\newtheorem*{solution}{Solution}

到目前为止,我对它非常满意。但我决定(为了将解决方案与周围的文本分开)每次结构结束时,我都希望结构在末尾添加一个黑色方块。有人能告诉我如何修改我的代码来做到这一点吗?

答案1

而不是\newtheorem*{solution}{Solution},添加以下行:

\RequirePackage{thmtools}

\declaretheoremstyle[
  qed=$\blacksquare$,
  numbered=no,
  bodyfont=\itshape
]{mystyle}
\declaretheorem[style=mystyle]{solution}

由于\blacksquare需要amssymb,您还需要这个包(如果您尚未加载它):

\RequirePackage{amssymb}

带有文档的示例:

\documentclass{article}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{lipsum}

\declaretheoremstyle[
  qed=$\blacksquare$,
  numbered=no,
  bodyfont=\itshape
]{mystyle}
\declaretheorem[style=mystyle]{solution}

\begin{document}

\begin{solution}
\lipsum*[4]
\end{solution}

\end{document}

在此处输入图片描述

答案2

你可以做solution类似于proofamsthm使用以下结构:

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm,amsmath,amssymb}% http://ctan.org/pkg/{amsthm,amsmath,amssymb}

\renewcommand{\qedsymbol}{$\blacksquare$}
\makeatletter
\newcommand{\solutionname}{\textbf{Solution}}
\newenvironment{solution}[1][\solutionname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
\makeatother

\begin{document}
\begin{solution}
  \begin{equation*}
    G(t)=L\gamma!\,t^{-\gamma}+t^{-\delta}\eta(t) \qedhere
  \end{equation*}
\end{solution}
\end{document}

上述定义solution直接取自amsclass.dtx在哪里proof定义。我唯一改变的是标题。

相关内容