
Я использую 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
) самостоятельно. У вас есть два варианта:
- Определите свои собственные определения и среды теорем с другими именами, чтобы они не конфликтовали с существующими средами. Я рекомендую этот вариант, поскольку он самый простой и не перезаписывает существующие определения (на случай, если это может вызвать проблемы с вашей отправкой).
- Подавите существующие определения окружения с помощью опции class
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}