Как добавить «квадрат qed» в конце определения?

Как добавить «квадрат qed» в конце определения?

Я использую acmartdocumentclass для отправки статьи на конференцию. Я привел простой пример (код ниже), который в настоящее время отображает следующий вывод:

введите описание изображения здесь

Вопросы:

  1. Как изменить среду «определение» так, чтобы текст «Определение» выглядел так же, как текст «Теорема» (убрать курсив, и шрифт тоже будет отличаться)?
  2. Как добавить новую среду «Замечание», которая отображает то же самое, что и уже существующие (теорема, лемма, следствие, ...)?
  3. Как можно добавить «квадрат 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}

введите описание изображения здесь

Примечания.

  1. Стандартный стиль теоремы — acmplain.
  2. Доказательство не относится к теореме.

решение2

Я понял ваш вопрос так, что вы хотите, чтобы теоремы, определения и замечания быливсеимеют тот же стиль. В таком случае я отвечу на ваши вопросы не по порядку:

  1. Как добавить новую среду «Замечание», которая отображает то же самое, что и уже существующие (теорема, лемма, следствие, ...)?

Редактировать: основываясь на вашем комментарии, я полагаю, что вы хотите, чтобы во всех трех средах заголовки были написаны маленькими заглавными буквами, а основной текст — не курсивом.

Во-первых, вам нужно будет определить новый стиль теоремы, поскольку ни один из acmartпредопределенных стилей теоремы не соответствует вашим потребностям.acmartдокументация классапредоставляет исходный код для определения acmplainстиля теоремы (на странице 110, я полагаю), так что вы можете скопировать-вставить это определение в свой собственный код и изменить его по своему усмотрению. Затем вы можете использовать \theoremstyle{your-style-name}для установки стиля ваших собственных сред теорем.

  1. Как изменить среду «определение» так, чтобы текст «Определение» выглядел так же, как текст «Теорема» (убрать курсив, и шрифт тоже будет отличаться)?

Поскольку нет простого способа изменить определение среды теоремы, вам придется определить стиль definitiontheorem) самостоятельно. У вас есть два варианта:

  1. Определите свои собственные определения и среды теорем с другими именами, чтобы они не конфликтовали с существующими средами. Я рекомендую этот вариант, поскольку он самый простой и не перезаписывает существующие определения (на случай, если это может вызвать проблемы с вашей отправкой).
  2. Подавите существующие определения окружения с помощью опции class acmthm=false. Затем вы можете определить свое собственное definitionи theoremокружение без конфликта с существующими окружениями. Обратите внимание, что это подавляетвсе среды теоремы определеныacmart, включая theorem, proposition, definition, example, и т. д. Таким образом, если вы выберете этот вариант, вам придется самостоятельно определить все остальные среды по мере необходимости.
  1. Как можно добавить «квадрат 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}

MWE OP с желаемым стилем и символами QED

Связанный контент