![如何在定义末尾添加“qed方块”?](https://linux22.com/image/472789/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%AE%9A%E4%B9%89%E6%9C%AB%E5%B0%BE%E6%B7%BB%E5%8A%A0%E2%80%9Cqed%E6%96%B9%E5%9D%97%E2%80%9D%EF%BC%9F.png)
我正在使用acmart
documentclass 提交会议论文。我提供了一个简单的示例(下面的代码),目前呈现以下输出:
问题:
- 我如何改变“定义”环境,以便文本“定义”看起来与文本“定理”相同(删除斜体并且字体似乎也不同)?
- 我如何添加一个新的“备注”环境,使其显示与已经存在的内容(定理、引理、推论等)相同的内容?
- 我怎样才能在这些环境的末尾添加相同大小的“qed方块”(即使它们没有“证明”)?
代码:
\documentclass[acmtog,anonymous,review]{acmart}
\usepackage{graphicx}
\AtEndPreamble{%
\theoremstyle{acmtheorem}
\newtheorem{remark}[theorem]{Remark}}
\begin{document}
\section{}
\begin{theorem}
A theorem.
\begin{proof}
\end{proof}
\end{theorem}
\begin{definition}
A definition.
\begin{flushright}
$\square$
\end{flushright}
\end{definition}
\begin{remark}
A remark.
\begin{flushright}
$\square$
\end{flushright}
\end{remark}
\end{document}
答案1
如果您要向会议提交论文,则不应尝试修改其标准。无论如何,您可以这样做。
\documentclass[acmtog,anonymous,review]{acmart}
\AtEndPreamble{%
\theoremstyle{acmplain}%
% note to copy editors: remove the following
% two lines if standard ACM style is preferred
\let\definition\relax\let\enddefinition\relax
\newtheorem{definition}[theorem]{Definition}%
% end note to copy editors
\newtheorem{remark}[theorem]{Remark}%
\AtBeginEnvironment{definition}{\pushQED{\qed}}%
\AtEndEnvironment{definition}{\popQED}%
\AtBeginEnvironment{remark}{\pushQED{\qed}}%
\AtEndEnvironment{remark}{\popQED}%
}
\begin{document}
\section{Test}
\begin{theorem}
A theorem.
\end{theorem}
\begin{proof}
And its proof.
\end{proof}
\begin{definition}
A definition.
\end{definition}
\begin{remark}
A remark.
\end{remark}
\end{document}
笔记。
- 标准定理风格是
acmplain
。 - 证明不属于定理。
答案2
我理解你的问题是,你想要定理、定义和注释全部具有相同的样式。在这种情况下,我将按顺序回答您的问题:
- 我如何添加一个新的“备注”环境,使其显示与已经存在的内容(定理、引理、推论等)相同的内容?
编辑:根据您的评论,我相信您希望所有三个环境的标题都使用小写字母,正文都使用非斜体字体。
首先,你需要定义一个新的定理样式,因为acmart
预定义定理样式都不符合您的需要。acmart
类文档提供了定理样式定义的源代码acmplain
(我相信在第 110 页),因此您可以将该定义复制粘贴到您自己的代码中并根据需要进行修改。然后您可以使用它\theoremstyle{your-style-name}
来设置自定义定理环境的样式。
- 我如何改变“定义”环境,以便文本“定义”看起来与文本“定理”相同(删除斜体并且字体似乎也不同)?
由于没有直接的方法来修改定理环境的定义,因此您必须自己定义definition
(和theorem
) 的样式。您有两个选择:
- 使用不同的名称定义您自己的定义和定理环境,这样它们就不会与现有环境发生冲突。我推荐这个选项,因为它最直接,并且不会覆盖现有定义(以防这可能导致您的提交出现问题)。
- 使用类选项抑制现有的环境定义
acmthm=false
。然后,您可以定义自己的definition
环境,theorem
而不会与任何现有环境发生冲突。请注意,这会抑制所有定理环境均由acmart
,包括theorem
、、、、等等。因此,如果您选择此选项proposition
,则必须根据需要自行定义所有其他环境。definition
example
- 我怎样才能在这些环境的末尾添加相同大小的“qed方块”(即使它们没有“证明”)?
我建议使用该thmtools
包进行自定义环境定义,因为这使得设置 QED 符号非常容易。建议的解决方案是邮报@barbara-beeton 在评论中提供了链接,但它排在第三。请参阅thmtools
包装文档更多细节。
新的和改进的 MWE(具有不同名称的自定义环境):
\documentclass[acmtog, anonymous, review]{acmart}
\usepackage{thmtools}
\makeatletter
\AtEndPreamble{
% Modified from definition of acmplain
% acmart documentation, page 110
% https://mirror.las.iastate.edu/tex-archive/macros/latex/contrib/acmart/acmart.pdf
\newtheoremstyle{mystyle}%
{.5\baselineskip\@plus.2\baselineskip
\@minus.2\baselineskip}% space above
{.5\baselineskip\@plus.2\baselineskip
\@minus.2\baselineskip}% space below
{\normalfont}% body font
{\@acmplainindent}% indent amount
{\scshape}% head font
{.}% punctuation after head
{.5em}% spacing after head
{\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
\theoremstyle{mystyle}
\declaretheorem[name=Theorem, parent=section]{thm}
\declaretheorem[name=Definition, qed=$\square$, sibling=thm]{defn}
\declaretheorem[name=Remark, qed=$\square$, sibling=thm]{remark}
}
\makeatother
\begin{document}
\section{}
\begin{thm}
A theorem.
\begin{proof}
\end{proof}
\end{thm}
\begin{defn}
A definition.
\end{defn}
\begin{remark}
A remark.
\end{remark}
\end{document}