所以几个月前我创建了自己的包。里面的所有东西都运行良好,到目前为止,它按照我需要的方式完成了我需要的一切。但我想改变一件事。当我创建包时,我发现有必要在包中创建一个结构声明,声明如下
\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
类似于proof
amsthm
使用以下结构:
\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
定义。我唯一改变的是标题。